Deepspeed使用

最近在调试deepspeed进行训练,正好工作的项目中也用到了deepspeed,所以记录一下deepspeed的用法等。
pytorch 的DDP比较复杂,所以简单易用的deepspeed应运而生。
本文仍然是不完整的,随着学习将会持续更新内容。

Deepspeed使用

目前只使用过单机多卡的情况,故本文主要介绍单机多卡的使用。
尝试过类似命令行
deepspeed --num_gpus=2 your_program.py <normal cl args> --deepspeed ds_config.json
类似的方法,但是这样配置使用的GPU的时候会莫名报错,很麻烦,所以最终选择了如下的使用方法,简洁方便:
1、第一步是需要有一个deepspeed 的config文件,有很多策略,比如说zero2、zero3等,这里面参数很多,想具体看的话可以去官方文档详细学习,这里我就是用的一个zero3,一般是可以通用的配置:

{
    "bf16": {
        "enabled": "auto"
    },
    "optimizer": {
        "type": "AdamW",
        "params": {
            "lr": "auto",
            "betas": "auto",
            "eps": "auto",
            "weight_decay": "auto"
        }
    },

    "scheduler": {
        "type": "WarmupLR",
        "params": {
            "warmup_min_lr": "auto",
            "warmup_max_lr": "auto",
            "warmup_num_steps": "auto"
        }
    },

    "zero_optimization": {
        "stage": 3,
        "offload_optimizer": {
            "device": "cpu",
            "pin_memory": true
        },
        "offload_param": {
            "device": "cpu",
            "pin_memory": true
        },
        "overlap_comm": true,
        "contiguous_gradients": true,
        "sub_group_size": 1e9,
        "reduce_bucket_size": "auto",
        "stage3_prefetch_bucket_size": "auto",
        "stage3_param_persistence_threshold": "auto",
        "stage3_max_live_parameters": 1e9,
        "stage3_max_reuse_distance": 1e9,
        "stage3_gather_16bit_weights_on_model_save": true
    },

    "gradient_accumulation_steps": "auto",
    "gradient_clipping": "auto",
    "steps_per_print": 20,
    "train_batch_size": "auto",
    "train_micro_batch_size_per_gpu": "auto",
    "wall_clock_breakdown": false
}

2、在你的args里加入config:如下

TrainingArguments(..., deepspeed= "/path/to/ds_config.json" )

3、最后一步:
命令行中输入如下,就可以运行啦,其中的1,2代表你要使用的gpu

deepspeed --include localhost:1,2 train_lora.py

待更新。。。。。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DeepSpeed 是一个用于训练大规模模型的优化库,它提供了一种加速深度学习训练的方法。下面是 DeepSpeed 的启动过程: 1. 安装 DeepSpeed:首先,你需要在你的系统上安装 DeepSpeed。你可以从 DeepSpeed 的官方网站(https://www.deepspeed.ai/)上下载最新版本的 DeepSpeed,并按照官方文档中的指示进行安装。 2. 导入 DeepSpeed:在你的 Python 代码中,首先需要导入 DeepSpeed 库。你可以使用以下代码行导入 DeepSpeed: ``` import deepspeed ``` 3. 配置 DeepSpeed:在你的代码中,你需要配置 DeepSpeed 的一些参数,例如批量大小、学习率等。你可以使用 DeepSpeed 提供的配置文件来设置这些参数,或者直接在代码中设置。 4. 初始化 DeepSpeed:在你的代码中,你需要使用以下代码行来初始化 DeepSpeed: ``` ds_config = { "deepspeed_config": "path/to/deepspeed_config.json", "zero_optimization": { "stage": 0, "cpu_offload": true } } model_engine, optimizer, _, _ = deepspeed.initialize(args=ds_config, model=model, optimizer=optimizer) ``` 这将使用 DeepSpeed 配置文件 `deepspeed_config.json` 来初始化 DeepSpeed。`model` 是你的模型,`optimizer` 是你的优化器。 5. 启动训练:一旦 DeepSpeed 初始化完成,你可以像往常一样开始训练你的模型。DeepSpeed 会自动应用一些优化技术,如分布式训练、混合精度计算等,以加速训练过程。 这就是 DeepSpeed 的启动过程。通过使用 DeepSpeed,你可以显着提高大规模深度学习模型的训练效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值