云服务器内容精选
-
方案概览 本文档利用训练框架Pytorch_npu+华为自研Ascend Snt9b硬件,为用户提供了开箱即用的预训练和全量微调方案。 本文档以Llama2-70B为例,同时适用于Llama2-7B、Llama2-13B。模型运行环境是ModelArts Lite的DevServer。 本方案目前配套的是AscendCloud-3rdLLM系列版本,仅适用于部分企业客户,完成本方案的部署,需要先联系您所在企业的华为方技术支持。
-
操作流程 图1 操作流程图 表1 操作任务流程说明 阶段 任务 说明 准备工作 准备环境 本教程案例是基于ModelArts Lite DevServer运行的,需要购买并开通DevServer资源。 准备代码 准备AscendSpeed训练代码、分词器Tokenizer和推理代码。 准备数据 准备训练数据,可以用Alpaca数据集,也可以使用自己准备的数据集。 准备镜像 准备训练模型适用的容器镜像。 预训练 预训练 介绍如何进行预训练,包括训练数据处理、超参配置、训练任务、断点续训及性能查看。 微调训练 SFT全参微调 介绍如何进行SFT全参微调。 LoRA微调训练 介绍如何进行LoRA微调训练。 推理前的权重转换 - 模型训练完成后,可以将训练产生的权重文件用于推理。推理前参考本章节,将训练后生成的多个权重文件合并,并转换成Huggingface格式的权重文件。 如果无推理任务或者使用开源Huggingface权重文件进行推理,可以忽略此章节。和本文档配套的推理文档请参考《开源大模型基于DevServer的推理通用指导》。
-
Step4 启动训练脚本 请根据表1修改超参值后,再启动训练脚本。Llama2-70B建议为8机64卡训练。 多机启动 以Llama2-70B为例,多台机器执行训练启动命令如下。进入代码目录/home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed下执行启动脚本。 #第一台节点 MASTER_ADDR=xx.xx.xx.xx NNODES=8 NODE_RANK=0 MODEL_TYPE=70B RUN_TYPE=lora DATASET_PATH=/home/ma-user/ws/processed_for_ma_input/Llama2-70B/data/finetune/alpaca_ft TOKENIZER_PATH=/home/ma-user/ws/tokenizers/Llama2-70B MODEL_PATH=/home/ma-user/ws/processed_for_ma_input/Llama2-70B/converted_weights TRAIN_ITERS=200 MBS=2 GBS=1024 TP=8 PP=8 WORK_DIR=/home/ma-user/ws sh scripts/llama2/llama2.sh # 第二台节点 MASTER_ADDR=xx.xx.xx.xx NNODES=8 NODE_RANK=1 MODEL_TYPE=70B RUN_TYPE=lora DATASET_PATH=/home/ma-user/ws/processed_for_ma_input/Llama2-70B/data/finetune/alpaca_ft TOKENIZER_PATH=/home/ma-user/ws/tokenizers/Llama2-70B MODEL_PATH=/home/ma-user/ws/processed_for_ma_input/Llama2-70B/converted_weights TRAIN_ITERS=200 MBS=2 GBS=1024 TP=8 PP=8 WORK_DIR=/home/ma-user/ws sh scripts/llama2/llama2.sh ... ... # 第八台节点 MASTER_ADDR=xx.xx.xx.xx NNODES=8 NODE_RANK=7 MODEL_TYPE=70B RUN_TYPE=lora DATASET_PATH=/home/ma-user/ws/processed_for_ma_input/Llama2-70B/data/finetune/alpaca_ft TOKENIZER_PATH=/home/ma-user/ws/tokenizers/Llama2-70B MODEL_PATH=/home/ma-user/ws/processed_for_ma_input/Llama2-70B/converted_weights TRAIN_ITERS=200 MBS=2 GBS=1024 TP=8 PP=8 WORK_DIR=/home/ma-user/ws sh scripts/llama2/llama2.sh 以上命令多台机器执行时,只有${NODE_RANK}的节点ID值不同,其他参数都保持一致。 其中MASTER_ADDR、 NODE_RANK、 NODE_RANK、MODEL_TYPE 、RUN_TYPE、DATASET_PATH、TOKENIZER_PATH、MODEL_PATH为必填项。 TRAIN_ITERS、MBS、GBS、TP、PP、WORK_DIR为非必填,有默认值。 单机启动 对于Llama2-7B和Llama2-13B,操作过程与Llama2-70B相同,只需修改对应参数即可,可以选用单机启动,以Llama2-13B为例。 进入代码目录/home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed下执行启动脚本。先修改以下命令中的参数,再复制执行 #非必填参数,有默认值,如需修改请根据实际要求填入以下参数。 MBS=4 \ GBS=64 \ TP=8 \ PP=1 \ TRAIN_ITERS=200 \ WORK_DIR=/home/ma-user/ws \ #必填参数 MODEL_TYPE=13B \ RUN_TYPE=lora \ DATASET_PATH=/home/ma-user/ws/processed_for_ma_input/Llama2-13B/data/finetune/alpaca_ft \ TOKENIZER_PATH=/home/ma-user/ws/tokenizers/Llama2-13B \ MODEL_PATH=/home/ma-user/ws/processed_for_ma_input/Llama2-13B/converted_weights \ sh scripts/llama2/llama2.sh 训练完成后,请参考查看日志和性能章节查看LoRA微调训练的日志和性能。
-
Step2 LoRA微调权重转换 LoRA微调训练前,需要先把训练权重文件转换为Megatron格式。 LoRA微调训练和SFT全参微调使用的是同一个HuggingFace权重文件,转换为Megatron格式后的结果也是通用的。 如果在SFT微调任务中已经完成了HuggingFace权重转换操作,此处无需重复操作,可以直接使用SFT微调中的权重转换结果。 如果前面没有执行HuggingFace权重转换任务,可以参考SFT全参微调权重转换章节完成。
-
Step3 LoRA微调超参配置 LoRA微调训练脚本llama2.sh,存放在xxx-Ascend/llm_train/AscendSpeed/scripts/llama2/目录下。训练前,可以根据实际需要修改超参配置。 微调任务配置,操作同预训练配置类似,不同点为RUN_TYPE类型不同,以及输入输出路径的配置的不同。 表1 LoRA微调超参配置 参数 值 参数说明 DATASET_PATH /home/ma-user/ws/processed_for_ma_input/Llama2-70B/data/finetune/alpaca_ft 必填。训练时指定的输入数据路径。一般为数据地址/处理后的数据前缀名,不加文件类型后缀。 请根据实际规划修改。 TOKENIZER_PATH /home/ma-user/ws/tokenizers/Llama2-70B 必填。加载tokenizer时,tokenizer存放地址。请根据实际规划修改。 MODEL_PATH /home/ma-user/ws/processed_for_ma_input/Llama2-70B/converted_weights 必填。加载的权重文件路径。Step2 LoRA微调权重转换章节中将HuggingFace格式转化为Megatron格式的权重文件。 MODEL_TYPE 70B 必填。模型加载类型,根据实际填写7B、13B或70B。 TRAIN_ITERS 200 非必填。训练迭代周期。根据实际需要修改。 MBS 2 非必填。表示流水线并行中一个micro batch所处理的样本量。在流水线并行中,为了减少气泡时间,会将一个step的数据切分成多个micro batch。 该值与TP和PP以及模型大小相关,可根据实际情况进行调整。默认值为2。取值建议如下: Llama2-7B:4 Llama2-13B:4 Llama2-70B:2 GBS 1024 非必填。表示训练中所有机器一个step所处理的样本量。影响每一次训练迭代的时长。取值默认值: Llama2-7B:64 Llama2-13B:64 Llama2-70B:1024 TP 8 非必填。表示张量并行。默认值为8,取值建议: Llama2-7B:8 Llama2-13B:8 Llama2-70B:8 PP 8 非必填。表示流水线并行。取值建议: Llama2-7B:1,一般此值与运行节点数相等 Llama2-13B:1,一般此值与运行节点数相等 Llama2-70B:大于等于4,建议值为8,一般选用几台机器训练则值为几。 RUN_TYPE lora 必填。表示训练类型,lora表示LoRA微调训练。 MASTER_ADDR xx.xx.xx.xx 多机必填,单机忽略;指定主节点IP地址,多台机器中需要指定一个节点IP为主节点IP。 一般指定第一个节点IP为主节点IP。 NNODES 8 多机必填,单机忽略;节点总数,单机写1,双机写2,8机写8。 NODE_RANK 0 多机必填,单机忽略;节点序号,当前节点ID,一般从0开始,单机默认是0。以8机训练为例,节点ID依次为(0 1 2 3 4 5 6 7);一般ID为0的节点设置为主节点IP。 WORK_DIR /home/ma-user/ws 非必填。容器的工作目录。训练的权重文件保存在此路径下。默认值为:/home/ma-user/ws。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格