检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
执行训练任务 步骤一 上传训练权重文件和数据集 如果在准备代码和数据阶段已经上传权重文件、自定义数据集,可以忽略此步骤。 未上传训练权重文件,具体参考上传代码和权重文件到工作环境。 使用自定义数据集训练未上传自定义数据集。具体参考上传自定义数据到指定目录章节并更新dataset_info
准备环境 本文档中的模型运行环境是ModelArts Lite Server。请参考本文档要求准备资源环境。 资源规格要求 计算规格:不同模型训练推荐的NPU卡数请参见表2。 硬盘空间:至少200GB。 Ascend资源规格: Ascend: 1*ascend-snt9b表示Ascend单卡。
准备代码 本教程中用到的训练推理代码和如下表所示,请提前准备好。 获取模型软件包 本方案支持的模型对应的软件和依赖包获取地址如表1所示,模型列表、对应的开源权重获取地址如表1 支持的模型列表所示。 表1 模型对应的软件包和依赖包获取地址 代码包名称 代码说明 下载地址 AscendCloud-6
准备镜像 准备训练模型适用的容器镜像,包括获取镜像地址,了解镜像中包含的各类固件版本,配置物理机环境操作。 镜像地址 本教程中用到的训练和推理的基础镜像地址和配套版本关系如下表所示,请提前了解。 表1 基础容器镜像地址 镜像用途 镜像地址 基础镜像 swr.cn-southwest-2
附录:训练常见问题 问题1:在训练过程中遇到NPU out of memory 解决方法: 容器内执行以下命令,指定NPU内存分配策略的环境变量,开启动态内存分配,即在需要时动态分配内存,可以提高内存利用率,减少OOM错误的发生。 export PYTORCH_NPU_ALLOC_CONF
准备代码 本教程中用到的训练推理代码和如下表所示,请提前准备好。 获取模型软件包和权重文件 本方案支持的模型对应的软件和依赖包获取地址如表1所示,模型列表、对应的开源权重获取地址如表1所示。 表1 模型对应的软件包和依赖包获取地址 代码包名称 代码说明 下载地址 AscendCloud-6
在Lite Cluster资源池上使用Snt9B完成分布式训练任务 场景描述 本案例介绍如何在Snt9B上进行分布式训练任务,其中Cluster资源池已经默认安装volcano调度器,训练任务默认使用volcano job形式下发lite池集群。训练测试用例使用NLP的bert模型,详细代码和指导可参考Bert。
GPU服务器上配置Lite Server资源软件环境 场景描述 本文旨在指导如何在GPU裸金属服务器上,安装NVIDIA、CUDA驱动等环境配置。由于不同GPU预置镜像中预安装的软件不同,您通过Lite Server算力资源和镜像版本配套关系章节查看已安装的软件。下面为常见的软件
guided-decoding 什么是guided-decoding Guided Decoding是一种用于生成文本的策略,通过提供额外的上下文或约束,来引导模型生成更符合预期的结果。 比如使用openai启动服务,通过配置guided_json参数使用JSON Schema的架构来举例。
执行SFT全参微调训练任务 Step1 上传训练权重文件和数据集 如果在准备代码和数据阶段已经上传权重文件和数据集到容器中,可以忽略此步骤。 如果未上传训练权重文件和数据集到容器中,具体参考上传代码和权重文件到工作环境和上传数据到指定目录章节完成。训练脚本中会自动执行训练前的权重转换操作和数据处理操作。
训练启动脚本说明和参数配置 本代码包中集成了不同模型(包括llama2、llama3、Qwen、Qwen1.5 ......)的训练脚本,并可通过不同模型中的训练脚本一键式运行。训练脚本可判断是否完成预处理后的数据和权重转换的模型。如果未完成,则执行脚本,自动完成数据预处理和权重转换的过程。
训练的数据集预处理说明 以llama2-13b举例,使用训练作业运行:0_pl_pretrain_13b.sh训练脚本后,脚本检查是否已经完成数据集预处理。 如果已完成数据集预处理,则直接执行预训练任务。如果未进行数据集预处理,则会自动执行 scripts/llama2/1_preprocess_data
训练中的权重转换说明 以 llama2-13b 举例,运行 0_pl_pretrain_13b.sh 脚本。脚本同样还会检查是否已经完成权重转换的过程。 如果已完成权重转换,则直接执行预训练任务。如果未进行权重转换,则会自动执行 scripts/llama2/2_convert_mg_hf
训练tokenizer文件说明 在训练开始前,需要针对模型的tokenizer文件进行修改,不同模型的tokenizer文件修改内容如下,您可在创建的Notebook中对tokenizer文件进行编辑。 Yi模型 在使用Yi模型的chat版本时,由于transformer 4.3
NPU_Flash_Attn融合算子约束 query、key、value都需要梯度。默认开启重计算,则前向时qkv没有梯度,如果需要关闭重计算,可以在yaml配置 `disable_gradient_checkpointing: true` 关闭,但显存占用会直线上升。 attn_mask
训练tokenizer文件说明 在训练开始前,需要针对模型的tokenizer文件进行修改,不同模型的tokenizer文件修改内容如下,您可在创建的Notebook中对tokenizer文件进行编辑。 Yi模型 在使用Yi模型的chat版本时,由于transformer 4.3
显存溢出错误 在训练过程中,常见显存溢出报错,示例如下: RuntimeError: NPU out of memory. Tried to allocate 1.04 GiB (NPU 4; 60.97 GiB total capacity; 56.45 GiB already
网卡名称错误 当训练开始时提示网卡名称错误。或者通信超时。可以使用ifconfig命令检查网卡名称配置是否正确。 比如,ifconfig看到当前机器IP对应的网卡名称为enp67s0f5,则可以设置环境变量指定该值。 图1 网卡名称错误 export GLOO_SOCKET_IFNAME=enp67s0f5
训练启动脚本说明和参数配置 本代码包中集成了不同模型的训练脚本,并可通过不同模型中的训练脚本一键式运行。训练脚本可判断是否完成预处理后的数据和权重转换的模型。若未完成,则执行脚本,自动完成数据预处理和权重转换的过程。 若用户进行自定义数据集预处理以及权重转换,可通过编辑 1_preprocess_data
训练的数据集预处理说明 以 llama2-13b 举例,运行:0_pl_pretrain_13b.sh 训练脚本后,脚本检查是否已经完成数据集预处理的过程。 若已完成数据集预处理,则直接执行预训练任务。若未进行数据集预处理,则会自动执行 scripts/llama2/1_preprocess_data