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

场景介绍

方案概览

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

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

本文档适用于OBS+SFS Turbo的数据存储方案,不适用于仅使用OBS的存储方案。通过OBS对象存储服务(Object Storage Service)与SFS Turbo文件系统联动,可以实现数据灵活管理、高性能读取数据等。通过OBS上传训练所需的模型文件、训练数据等,再将OBS中的数据文件导入到SFS Turbo,然后在训练作业中挂载SFS Turbo到容器对应ckpt目录,实现分布式读取训练数据文件。

约束限制

  • 如果要使用自动重启功能,资源规格必须选择八卡规格。
  • 适配的CANN版本是cann_8.0.rc3,驱动版本是23.0.6。
  • 本案例仅支持在专属资源池上运行。

文档更新内容

6.3.908版本相对于6.3.907版本新增如下内容:

  • 文档和代码中新增对mistral和mixtral模型的适配,并添加训练推荐配置。
  • 文档准备镜像步骤中,仅提供:直接使用基础镜像方案、ECS中构建新镜像方案,删除使用Notebook创建镜像方案。
  • 文档中新增对 llama3 支持长序列文本(sequence_length > 32k)训练内容,例如新增参数context-parallel-size。
  • 文档中针对数据集预处理时,handler-name参数的说明,新增不同 handler 对训练数据的拼接和推理prompt的构造等说明。

支持的模型列表

本方案支持以下模型的训练,如表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

操作流程

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

阶段

任务

说明

准备工作

准备资源

本教程案例是基于ModelArts Standard运行的,需要购买并开通ModelArts专属资源池和OBS桶。

准备数据

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

准备权重

准备所需的权重文件。

准备代码

准备AscendSpeed训练代码。

准备镜像

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

准备Notebook

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

预训练

预训练

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

微调训练

SFT全参微调

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

LoRA微调训练

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

相关文档