更新时间:2024-10-12 GMT+08:00
分享

准备代码

本教程中用到的模型软件包如下表所示,请提前准备好。

获取模型软件包

本方案支持的模型对应的软件和依赖包获取地址如表1所示。

表1 模型对应的软件包和依赖包获取地址

代码包名称

代码说明

下载地址

AscendCloud-6.3.907-xxx.zip

说明:

软件包名称中的xxx表示时间戳。

包含了本教程中使用到的模型训练代码。代码包具体说明请参见模型软件包结构说明

获取路径:Support-E

说明:

如果上述软件获取路径打开后未显示相应的软件信息,说明您没有下载权限,请联系您所在企业的华为方技术支持下载获取。

模型软件包结构说明

AscendCloud-6.3.907代码包中AscendCloud-LLM代码包结构介绍如下,训练脚本以分类的方式集中在scripts文件夹中:
|──llm_train                 # 模型训练代码包
          |──AscendSpeed         # 基于AscendSpeed的训练代码
                 |──ascendcloud_patch/   # 针对昇腾云平台适配的功能补丁包
                 |──scripts/             # 训练需要的启动脚本
                      |──llama2          # llama2系列模型执行脚本的文件夹
                      |──llama3          # llama3系列模型执行脚本的文件夹
                      |──qwen            # Qwen系列模型执行脚本的文件夹
                      |──qwen1.5         # Qwen1.5系列模型执行脚本的文件夹
                      |── ...
                      |── dev_pipeline.sh  # 系列模型共同调用的多功能的脚本
                      |── install.sh       # 环境部署脚本
                 |——src/                 # 启动命令行封装脚本,在install.sh里面自动构建
|──llm_inference                 # 推理代码包
|──llm_tools                     # 推理工具

修改代码

将AscendSpeed代码包AscendCloud-LLM-xxx.zip在本地解压缩后。在上传代码前,需要对解压后的训练脚本代码进行修改。具体文件为:llm_train/AscendSpeed/scripts/obs_pipeline.sh,具体修改代码内容以及位置,如下所示。

  1. 训练作业中存在2个代码目录,一个是从OBS上传到ModelArts Standard训练容器中的代码目录OBS_CODE_DIR,一个是后续构建新镜像步骤ECS中构建新镜像(二选一)中镜像的代码目录CODE_DIR。修改代码如图1
    图1 修改区分训练作业中2个代码目录
  2. 使用环境变量SAVE_PATH重新覆盖权重文件保存路径,作为最终的权重保存路径。修改代码如图2
    图2 修改权重保存路径
  3. 多机训练场景下,需要将CODE_DIR修改为OBS_CODE_DIR目录,则可以使用scripts/tools/sync_with_obs.py工具将其它节点的权重文件同步上传到主节点。修改代码如图3
    图3 多机同步权重文件

代码上传至OBS

将llm_train文件上传至OBS中。

结合准备数据准备权重准备代码,将数据集、原始权重、代码文件都上传至OBS后,OBS桶的目录结构如下。

<bucket_name>
|──llm_train                       # 解压代码包后自动生成的代码目录,无需用户创建
      |── AscendSpeed              # 代码目录
              |──ascendcloud_patch/   # 针对昇腾云平台适配的功能代码包
              |──scripts/             # 训练需要的启动脚本
# 以下目录结构,用户自己创建
|── training_data                                           #原始数据目录,需要用户手动创建并上传,后续操作步骤中会提示
      |── train-00000-of-00001-a09b74b3ef9c3b56.parquet    #预训练时预处理后的数据存放地址
      |── alpaca_gpt4_data.json                            #微调数据文件
|── models                                                   #原始权重及tokenizer目录,需要用户手动创建并上传,后续操作步骤中会提示
      ├── llama2-13b-hf            
|── tokenizers                                              #tokenizer目录,需要用户手动创建,后续操作步骤中会提示
      |── llama2-13b-hf

相关文档