检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
NPU_Flash_Attn融合算子约束 query、key、value都需要梯度。默认开启重计算,则前向时qkv没有梯度,如果需要关闭重计算,可以在yaml配置 `disable_gradient_checkpointing: true` 关闭,但显存占用会直线上升。 attn
BF16和FP16说明 在大模型训练中,BF16(Brain Floating Point)和FP16(Float16)都是使用的半精度浮点数格式,但它们在结构和适用性上有一些重要的区别。 BF16:具有8个指数位和7个小数位。在处理大模型时有优势,能够避免在训练过程中数值的上溢
4096]). 需要在训练开始前,修改llm_train/AscendSpeed/yi/3_training.sh文件,并添加--tokenizer-not-use-fast参数。修改后如图1所示。 图1 修改Yi 模型3_training.sh文件 ChatGLMv3-6B 在训
可调整参数:SEQ_LEN要处理的最大的序列长度(seq-length),参数值过大很容易发生显存溢出的错误。 可添加参数:在3_training.sh文件中添加开启重计算的参数。其中recompute-num-layers的值为模型网络中num-layers的参数值。 --
网卡名称错误 当训练开始时提示网卡名称错误。或者通信超时。可以使用ifconfig命令检查网卡名称配置是否正确。 比如,ifconfig看到当前机器IP对应的网卡名称为enp67s0f5,则可以设置环境变量指定该值。 图1 网卡名称错误 export GLOO_SOCKET_IFNAME=enp67s0f5
llama2-70b 预训练为例。 表1 模型训练脚本参数 参数 示例值 参数说明 ORIGINAL_TRAIN_DATA_PATH /home/ma-user/ws/training_data/pretrain/alpaca.parquet 必须修改。训练时指定的输入数据路径。请根据实际规划修改。
RUN_TYPE pretrain、sft、lora 数据预处理区分: 预训练场景下数据预处理,默认参数:pretrain 微调场景下数据预处理,默认:sft / lora ORIGINAL_TRAIN_DATA_PATH /home/ma-user/ws/training_data/${用户自定义的数据集路径和名称}
数据预处理区分: 预训练场景下数据预处理,默认参数:pretrain 微调场景下数据预处理,默认:sft / lora ORIGINAL_TRAIN_DATA_PATH /home/ma-user/work/training_data/finetune/moss_LossCompare.jsonl
ECS获取和上传基础镜像 Step1 创建镜像组织 在SWR服务页面创建镜像组织。 图1 创建镜像组织 Step2 登录ECS服务器 根据创建ECS服务器创建完成ECS服务器后,单击“远程登录”,可使用华为CloudShell远程登录如图所示。后续安装Docker、获取镜像、构建镜像等操作均在该ECS上进行。
/home/ma-user/ws/llm_train/saved_dir_for_output/llama2-13b/saved_models/pretrain_hf/ 目录下查看转换后的权重文件。 权重转换完成后,需要将例如saved_models/pretrain_hf中的文件与原始Hugging
本文详细介绍如何将本地已经制作好的模型包导入ModelArts的开发环境Notebook中进行调试和保存,然后将保存后的镜像部署到推理。本案例仅适用于华为云北京四和上海一站点。 操作流程如下: Step1 在Notebook中复制模型包 Step2 在Notebook中调试模型 Step3 Notebook中保存镜像
ECS获取和上传基础镜像 Step1 创建ECS 下文中介绍如何在ECS中构建一个训练镜像,请参考ECS文档购买一个Linux弹性云服务器。完成网络配置、高级配置等步骤,可根据默认选择,或进行自定义。创建完成后,单击“远程登录”,后续安装Docker等操作均在该ECS上进行。 注
数据预处理区分: 预训练场景下数据预处理,默认参数:pretrain 微调场景下数据预处理,默认:sft / lora ORIGINAL_TRAIN_DATA_PATH /home/ma-user/work/training_data/finetune/moss_LossCompare.jsonl
可调整参数:SEQ_LEN要处理的最大的序列长度(seq-length),参数值过大很容易发生显存溢出的错误。 可添加参数:在3_training.sh文件中添加开启重计算的参数。其中recompute-num-layers的值为模型网络中num-layers的参数值。 --
128 24 chatglm3-6b 1 64 1 128 25 glm-4-9b 1 32 1 128 26 baichuan2-7b 1 8 1 32 27 baichuan2-13b 2 4 1 4 28 yi-6b 1 64 1 128 29 yi-9b 1 32 1 64
overwrite_output_dir: true ### train per_device_train_batch_size: 1 gradient_accumulation_steps: 8 learning_rate: 2.0e-5 num_train_epochs: 10.0 lr_scheduler_type:
RUN_TYPE pretrain、sft、lora 数据预处理区分: 预训练场景下数据预处理,默认参数:pretrain 微调场景下数据预处理,默认:sft / lora ORIGINAL_TRAIN_DATA_PATH /home/ma-user/ws/training_data/${用户自定义的数据集路径和名称}
可调整参数:SEQ_LEN要处理的最大的序列长度(seq-length),参数值过大很容易发生显存溢出的错误。 可添加参数:在3_training.sh文件中添加开启重计算的参数。其中recompute-num-layers的值为模型网络中num-layers的参数值。 --
数据预处理区分: 预训练场景下数据预处理,默认参数:pretrain 微调场景下数据预处理,默认:sft / lora ORIGINAL_TRAIN_DATA_PATH /home/ma-user/work/training_data/finetune/moss_LossCompare.jsonl
不同模型推荐的参数与NPU卡数设置 表1 不同模型推荐的参数与NPU卡数设置 模型 Template 模型参数量 训练策略类型 序列长度cutoff_len 梯度累积值 优化工具 (Deepspeed) 规格与节点数 Qwen-VL Qwen-VL 7B full 2048 gr