Deepytorch是阿里云自研的AI加速器,面向生成式AI和大模型场景,提供了显著的训练和推理加速能力。本文主要介绍安装并使用Deepytorch的操作方法。
前提条件
已创建阿里云GPU实例,且GPU实例需满足以下要求:
- 操作系统为Alibaba Cloud Linux、CentOS 7.x、Ubuntu 18.04或更高版本。
- 已安装NVIDIA Driver、CUDA 11.1或更高版本。
- 已安装Pytorch且满足相应的版本要求。
支持的版本列表
Deepytorch支持多种PyTorch、CUDA以及Python版本。版本对应关系如下所示:
PyTorch Version |
CUDA Runtime Version |
Python Version |
1.10.x |
11.1/11.3 |
3.8/3.9 |
1.11.x |
11.3 |
3.8/3.9/3.10 |
1.12.x |
11.3/11.6 |
3.8/3.9/3.10 |
1.13.x |
11.6/11.7 |
3.8/3.9/3.10 |
2.0.x |
11.7/11.8 |
3.8/3.9/3.10/3.11 |
安装Deepytorch
以Deepgpu安装包2.0.2rcl版本为例,执行pip install命令即可安装Deepytorch。
说明:Deepytorch属于Deepgpu工具包,系统会根据您当前的软件环境自动匹配对应的Deepytorch安装包。
pip install deepgpu==2.0.2rc1
使用Deepytorch
您仅需要在模型的训练脚本中增加一行代码,即可启用Deepytorch优化功能,增加的代码如下所示:
import deepytorch # 导入deepytorch库
下文以开源项目(stanford_alpaca)为例,在两台8卡A800的机型测试平台上,展示如何使用Deepytorch训练llama-7b模型,以及使用Deeyptorch优化功能后的性能效果。官方默认的训练配置代码示例如下:
# https://github.com/tatsu-lab/stanford_alpaca pip install deepspeed deepspeed --hostfile=hostfile --master_addr=<your_master_addr> --num_nodes=2 --num_gpus=8 train.py \ --model_name_or_path <your_path_to_hf_converted_llama_ckpt_and_tokenizer> \ --data_path ./alpaca_data.json \ --bf16 True \ --output_dir <your_output_dir> \ --num_train_epochs 1 \ --per_device_train_batch_size 4 \ --per_device_eval_batch_size 4 \ --gradient_accumulation_steps 8 \ --evaluation_strategy "no" \ --save_strategy "steps" \ --save_steps 2000 \ --save_total_limit 1 \ --learning_rate 2e-5 \ --weight_decay 0. \ --warmup_ratio 0.03 \ --deepspeed "./configs/default_offload_opt_param.json" \ --tf32 True
相比较llama-7b模型本身默认的训练配置,使用Deepytorch优化功能训练该模型时,您仅需要简单修改训练脚本(train.py)即可,具体说明如下:
- 优化前:使用llama-7b模型默认配置的train.py训练脚本(仅展示部分代码
import torch import transformers import utils from torch.utils.data import Dataset from transformers import Trainer ...
- 优化后:使用Deepytorch优化功能的train.py训练脚本(仅展示部分代码)
import torch import deepytorch # 新增代码行 import transformers import utils from torch.utils.data import Dataset from transformers import Trainer ...
模型训练完成后,显示结果如下所示,表示模型训练优化前后的一个轮次(epoch)的性能数据有所不同。
- 优化前:模型的训练吞吐性能数据为16.0 samples/sec。
- 优化后:模型的训练吞吐性能数据为18.461 samples/sec。
由上图对比可以看出,相比较llama-7b模型默认的训练配置(即优化前),使用Deepytorch优化功能(即优化后)训练该模型,其训练吞吐性能获得了显著提升。
好啦!小弹的分享到此为止。我们更欢迎您分享您对阿里云产品的设想、对功能的建议或者各种吐槽,请扫描提交问卷并获得社区积分或精美礼品一份。https://survey.aliyun.com/apps/zhiliao/P4y44bm_8
【扫码填写上方调研问卷】
欢迎每位来到弹性计算的开发者们来反馈问题哦~