更新时间:2024-11-21 GMT+08:00
分享

场景介绍

方案概览

本文档利用训练框架PyTorch_npu+华为自研Ascend Snt9B硬件,为用户提供了常见主流开源大模型在ModelArts Lite Cluster上的训练方案。训练框架使用的是ModelLink。

本方案目前仅适用于企业客户,完成本方案的部署,需要先联系您所在企业的华为方技术支持。

约束限制

  • 本文档适配昇腾云ModelArts 6.3.910版本,请参考表1获取配套版本的软件包,请严格遵照版本配套关系使用本文档。
  • 本文档中的模型运行环境是ModelArts Lite Cluster。
  • 本文档中的CCE集群版本选择v1.27~1.28。版本使用的容器引擎为Containerd。
  • 镜像适配的Cann版本是cann_8.0.rc3,驱动版本是23.0.6。
  • 确保集群可以访问公网。

文档更新内容

6.3.910版本相对于6.3.909版本新增如下内容:

  • 文档中新增对Qwen2.5的适配(包括0.5B、7B, 14B, 32B, and 72B),支持sft、lora、预训练。
  • 文档中新增对Llama3.2的适配(包括1B和3B),支持sft、lora、预训练。
  • 代码中ModelLink、MindSpeed已升级到最新版本,Python三方依赖版本已升级,其中:
    • MindSpeed的版本升级到commitID=4ea42a23
    • ModelLink的版本升级到commitID=8f50777
    • transformers版本升级到4.45.0
    • peft版本升级到0.12.0

训练支持的模型列表

本方案支持以下模型的训练,如表1所示。

表1 支持的模型列表

序号

支持模型

支持模型参数量

权重文件获取地址

1

llama2

llama2-7b

https://huggingface.co/meta-llama/Llama-2-7b-chat-hf

2

llama2-13b

https://huggingface.co/meta-llama/Llama-2-13b-chat-hf

3

llama2-70b

https://huggingface.co/meta-llama/Llama-2-70b-hf

https://huggingface.co/meta-llama/Llama-2-70b-chat-hf (推荐)

4

llama3

llama3-8b

https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct

5

llama3-70b

https://huggingface.co/meta-llama/Meta-Llama-3-70B-Instruct

6

Qwen

qwen-7b

https://huggingface.co/Qwen/Qwen-7B-Chat

7

qwen-14b

https://huggingface.co/Qwen/Qwen-14B-Chat

8

qwen-72b

https://huggingface.co/Qwen/Qwen-72B-Chat

9

Qwen1.5

qwen1.5-7b

https://huggingface.co/Qwen/Qwen1.5-7B-Chat

10

qwen1.5-14b

https://huggingface.co/Qwen/Qwen1.5-14B-Chat

11

qwen1.5-32b

https://huggingface.co/Qwen/Qwen1.5-32B-Chat

12

qwen1.5-72b

https://huggingface.co/Qwen/Qwen1.5-72B-Chat

13

Yi

yi-6b

https://huggingface.co/01-ai/Yi-6B-Chat

14

yi-34b

https://huggingface.co/01-ai/Yi-34B-Chat

15

ChatGLMv3

glm3-6b

https://huggingface.co/THUDM/chatglm3-6b

16

Baichuan2

baichuan2-13b

https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat

17

Qwen2

qwen2-0.5b

https://huggingface.co/Qwen/Qwen2-0.5B-Instruct

18

qwen2-1.5b

https://huggingface.co/Qwen/Qwen2-1.5B-Instruct

19

qwen2-7b

https://huggingface.co/Qwen/Qwen2-7B-Instruct

20

qwen2-72b

https://huggingface.co/Qwen/Qwen2-72B-Instruct

21

GLMv4

glm4-9b

https://huggingface.co/THUDM/glm-4-9b-chat

说明:

glm4-9b模型必须使用版本4b556ad4d70c38924cb8c120adbf21a0012de6ce

22

mistral

mistral-7b

https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2

23

mixtral

mixtral-8x7b

https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1

24

llama3.1

llama3.1-8b

https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct

25

llama3.1-70b

https://huggingface.co/meta-llama/Meta-Llama-3.1-70B-Instruct

26

Qwen2.5

qwen2.5-0.5b

https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct

27

qwen2.5-7b

https://huggingface.co/Qwen/Qwen2.5-7B-Instruct

28

qwen2.5-14b

https://huggingface.co/Qwen/Qwen2.5-14B-Instruct

29

qwen2.5-32b

https://huggingface.co/Qwen/Qwen2.5-32B-Instruct

30

qwen2.5-72b

https://huggingface.co/Qwen/Qwen2.5-72B-Instruct

31

llama3.2

llama3.2-1b

https://huggingface.co/meta-llama/Llama-3.2-1B-Instruct

32

llama3.2-3b

https://huggingface.co/meta-llama/Llama-3.2-3B-Instruct

操作流程

图1 操作流程图
表2 操作任务流程说明

阶段

任务

说明

准备工作

准备环境

本教程案例是基于ModelArts Lite k8s Cluster运行的,需要购买并开通k8s Cluster资源。

准备代码

准备AscendSpeed训练代码、分词器Tokenizer和推理代码。

准备数据

准备训练数据,可以用本案使用的数据集,也可以使用自己准备的数据集。

准备镜像

准备训练模型适用的容器镜像。

预训练

预训练

介绍如何进行预训练,包括训练数据处理、超参配置、训练任务、性能查看。

微调训练

SFT全参微调

介绍如何进行SFT全参微调、超参配置、训练任务、性能查看。

LoRA微调训练

介绍如何进行LoRA微调、超参配置、训练任务、性能查看。

相关文档