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

场景介绍

方案概览

本文档利用训练框架PyTorch_npu+华为自研Ascend Snt9B硬件,为用户提供了常见主流开源大模型在ModelArts Standard上的预训练和全量微调方案。

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

提示:本文档适用于仅使用OBS对象存储服务(Object Storage Service)作为存储的方案,OBS用于存储模型文件、训练数据、代码、日志等,提供了高可靠性的数据存储解决方案。

约束限制

  • 如果要使用自动重启功能,资源规格必须选择八卡规格,只有llama3-8B/70B支持该功能。
  • 适配的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 Standard运行的,需要购买并开通ModelArts专属资源池和OBS桶。

准备数据

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

准备权重

准备所需的权重文件。

准备代码

准备AscendSpeed训练代码。

准备镜像

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

准备Notebook

本案例需要创建一个Notebook,以便能够通过它访问SFS Turbo服务。随后,通过Notebook将OBS中的数据上传至SFS Turbo,并对存储在SFS Turbo中的数据执行编辑操作。

预训练

预训练

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

微调训练

SFT全参微调

介绍如何进行SFT全参微调,包括训练数据处理、超参配置、创建训练任务及性能查看。

LoRA微调训练

介绍如何进行LoRA微调训练,包括训练数据处理、超参配置、创建训练任务及性能查看。

相关文档