华为云用户手册

  • 步骤三:启动容器镜像 启动容器镜像前请先按照参数说明修改${}中的参数。可以根据实际需要增加修改参数。启动容器命令如下。 export work_dir="自定义挂载的工作目录" #容器内挂载的目录,例如/home/ma-user/ws export container_work_dir="自定义挂载到容器内的工作目录" export container_name="自定义容器名称" export image_name="镜像名称" docker run -itd \ --device=/dev/davinci0 \ --device=/dev/davinci1 \ --device=/dev/davinci2 \ --device=/dev/davinci3 \ --device=/dev/davinci4 \ --device=/dev/davinci5 \ --device=/dev/davinci6 \ --device=/dev/davinci7 \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ --cpus 192 \ --memory 1000g \ --shm-size 200g \ --net=host \ -v ${work_dir}:${container_work_dir} \ --name ${container_name} \ $image_name \ /bin/bash 参数说明: --name ${container_name} 容器名称,进入容器时会用到,此处可以自己定义一个容器名称,例如llamafactory。 -v ${work_dir}:${container_work_dir} 代表需要在容器中挂载宿主机的目录。宿主机和容器使用不同的文件系统。work_dir为宿主机中工作目录,目录下存放着训练所需代码、数据等文件。container_work_dir为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载/home/ma-user目录,此目录为ma-user用户家目录。 driver及npu-smi需同时挂载至容器。 不要将多个容器绑到同一个NPU上,会导致后续的容器无法正常使用NPU功能。 ${image_name} 为docker镜像的ID,在宿主机上可通过docker images查询得到。 --shm-size:表示共享内存,用于多进程间通信。由于需要转换较大内存的模型文件,因此大小要求200g及以上。 修改目录权限,上传代码和数据到宿主机时使用的是root用户,如用ma-user用户训练,此处需要执行如下命令统一文件权限。 #统一文件权限 chmod -R 777 ${work_dir} # ${work_dir}:/home/ma-user/ws 宿主机代码和数据目录 #例如: chmod -R 777 /home/ma-user/ws 通过容器名称进入容器中。启动容器时默认用户为ma-user用户。 docker exec -it ${container_name} bash 使用ma-user用户安装依赖包。 #进入scripts目录 cd /home/ma-user/ws/llm_train/LLaMAFactory #执行安装命令,安装依赖包及/LLaMAFactory代码包 sh install.sh
  • 步骤一:检查环境 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装NPU设备和驱动,或释放被挂载的NPU。 检查docker是否安装。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
  • Step2 修改训练超参配置 以Llama2-70b和Llama2-13b的SFT微调为例,执行脚本为0_pl_sft_70b.sh 和 0_pl_sft_13b.sh 。 修改模型训练脚本中的超参配置,必须修改的参数如表1所示。其他超参均有默认值,可以参考表1按照实际需求修改。 表1 训练超参配置说明 参数 示例值 参数说明 ORIGINAL_TRAIN_DATA_PATH /home/ma-user/ws/training_data/alpaca_gpt4_data.json 必须修改。训练时指定的输入数据路径。请根据实际规划修改。 ORIGINAL_HF_WEIGHT /home/ma-user/ws/models/llama2-13B 必须修改。加载Hugging Face权重(可与tokenizer相同文件夹)时,对应的存放地址。请根据实际规划修改。 TOKENIZER_PATH /home/ma-user/ws/tokenizers/llama2-13B 该参数为tokenizer文件的存放地址。默认与ORIGINAL_HF_WEIGHT路径相同。如果用户需要将Hugging Face权重与tokenizer文件分开存放时,则需要修改参数。 INPUT_PRO CES SED_DIR /home/ma-user/ws/llm_train/processed_for_input/llama2-13b 该路径下保存“数据转换”和“权重转换”的结果。示例中,默认生成在“processed_for_input”文件夹下。如果用户需要修改,可添加并自定义该变量。 OUTPUT_SAVE_DIR /home/ma-user/ws/llm_train/saved_dir_for_output/ 该路径下统一保存生成的 CKPT、P LOG 、LOG 文件。示例中,默认统一保存在“saved_dir_for_output”文件夹下。如果用户需要修改,可添加并自定义该变量。 CKPT_SAVE_PATH /home/ma-user/ws/llm_train/saved_dir_for_output/saved_models/llama2-13b 保存训练生成的模型 CKPT 文件。示例中,默认保存在“saved_dir_for_output/saved_models”文件夹下。如果用户需要修改,可添加并自定义该变量。 LOG_SAVE_PATH /home/ma-user/ws/llm_train/saved_dir_for_output/saved_models/llama2-13b/log 保存训练过程记录的日志 LOG 文件。示例中,默认保存在“saved_models/llama2-13b/log”文件夹下。如果用户需要修改,可添加并自定义该变量。 ASCEND_PROCESS_LOG_PATH /home/ma-user/ws/llm_train/saved_dir_for_output/plog 保存训练过程中记录的程序堆栈信息日志 PLOG 文件。示例中,默认保存在“saved_dir_for_output/plog”文件夹下。如果用户需要修改,可添加并自定义该变量。 CONVERT_MG2HF TRUE 训练完成的权重文件默认不会自动转换为Hugging Face格式权重。如果需要自动转换,则在运行脚本添加变量CONVERT_MG2HF并赋值TRUE。如果用户后续不需要自动转换,则在运行脚本中必须删除CONVERT_MG2HF变量。 对于Yi系列模型、ChatGLMv3-6B和Qwen系列模型,还需要手动修改训练参数和tokenizer文件,具体请参见训练tokenizer文件说明。
  • 训练启动脚本说明和参数配置 本代码包中集成了不同模型(包括llama2、llama3、Qwen、Qwen1.5 ......)的训练脚本,并可通过不同模型中的训练脚本一键式运行。训练脚本可判断是否完成预处理后的数据和权重转换的模型。如果未完成,则执行脚本,自动完成数据预处理和权重转换的过程。 若用户进行自定义数据集预处理以及权重转换,可通过Notebook环境编辑 1_preprocess_data.sh 、2_convert_mg_hf.sh中的具体python指令,并在Notebook环境中运行执行。本代码中有许多环境变量的设置,在下面的指导步骤中,会展开进行详细的解释。 若用户希望自定义参数进行训练,可直接编辑对应模型的训练脚本,可编辑参数以及详细介绍如下。以llama2-13b预训练为例: 表1 模型训练脚本参数 参数 示例值 参数说明 ORIGINAL_TRAIN_DATA_PATH /home/ma-user/work/training_data/pretrain/ train-00000-of-00001-a09b74b3ef9c3b56.parquet 必须修改。训练时指定的输入数据路径。请根据实际规划修改。 ORIGINAL_HF_WEIGHT /home/ma-user/work/model/llama-2-13b-chat-hf 必须修改。加载tokenizer与Hugging Face权重时,对应的存放地址。请根据实际规划修改。 MODEL_NAME llama2-13b 对应模型名称。 RUN_TYPE pretrain 表示训练类型。可选择值:[pretrain, sft, lora]。 DATA_TYPE [GeneralPretrainHandler, GeneralInstructionHandler, MOSSMultiTurnHandler] 示例值需要根据数据集的不同,选择其一。 GeneralPretrainHandler:使用预训练的alpaca数据集。 GeneralInstructionHandler:使用微调的alpaca数据集。 MOSSMultiTurnHandler:使用微调的moss数据集。 MBS 4 表示流水线并行中一个micro batch所处理的样本量。在流水线并行中,为了减少气泡时间,会将一个step的数据切分成多个micro batch。 该值与TP和PP以及模型大小相关,可根据实际情况进行调整。 GBS 512 表示训练中所有机器一个step所处理的样本量。影响每一次训练迭代的时长。 TP 8 表示张量并行。 PP 1 表示流水线并行。一般此值与训练节点数相等,与权重转换时设置的值相等。 LR 2.5e-5 学习率设置。 MIN_LR 2.5e-6 最小学习率设置。 SEQ_LEN 4096 要处理的最大序列长度。 MAX_PE 8192 设置模型能够处理的最大序列长度。 SN 1200 必须修改。指定的输入数据集中数据的总数量。更换数据集时,需要修改。 EPOCH 5 表示训练轮次,根据实际需要修改。一个Epoch是将所有训练样本训练一次的过程。 TRAIN_ITERS SN / GBS * EPOCH 非必填。表示训练step迭代次数,根据实际需要修改。 SEED 1234 随机种子数。每次数据采样时,保持一致。 不同模型推荐的训练参数和计算规格要求如表2所示。规格与节点数中的1*节点 & 4*Ascend表示单机4卡,以此类推。 表2 不同模型推荐的参数与NPU卡数设置 序号 支持模型 支持模型参数量 文本序列长度 并行参数设置 规格与节点数 1 llama2 llama2-7b SEQ_LEN=4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1*节点 & 4*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=4 1*节点 & 8*Ascend 2 llama2-13b SEQ_LEN=4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 1*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 1*节点 & 8*Ascend 3 llama2-70b SEQ_LEN=4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 4*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 8*节点 & 8*Ascend 4 llama3 llama3-8b SEQ_LEN=4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1*节点 & 4*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1*节点 & 4*Ascend 5 llama3-70b SEQ_LEN=4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 4*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 8*节点 & 8*Ascend 6 Qwen qwen-7b SEQ_LEN=4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1*节点 & 4*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1*节点 & 4*Ascend 7 qwen-14b SEQ_LEN=4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 1*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 1*节点 & 8*Ascend 8 qwen-72b SEQ_LEN=4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 4*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 8*节点 & 8*Ascend 9 Qwen1.5 qwen1.5-7b SEQ_LEN=4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1*节点 & 4*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1*节点 & 4*Ascend 10 qwen1.5-14b SEQ_LEN=4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 1*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 1*节点 & 8*Ascend 11 qwen1.5-32b SEQ_LEN=4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 2*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 2*节点 & 8*Ascend 12 qwen1.5-72b SEQ_LEN=4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 4*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 8*节点 & 8*Ascend 13 Yi yi-6b SEQ_LEN=4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1*节点 & 4*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=4 1*节点 & 8*Ascend 14 yi-34b SEQ_LEN=4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=4 2*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 4*节点 & 8*Ascend 15 ChatGLMv3 glm3-6b SEQ_LEN=4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1*节点 & 4*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=4 1*节点 & 8*Ascend 16 Baichuan2 baichuan2-13b SEQ_LEN=4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 1*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 1*节点 & 8*Ascend 17 Qwen2 qwen2-0.5b SEQ_LEN=4096 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=1 1*节点 & 2*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=1 1*节点 & 2*Ascend 18 qwen2-1.5b SEQ_LEN=4096 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=1 1*节点 & 2*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=1 1*节点 & 2*Ascend 19 qwen2-7b SEQ_LEN=4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1*节点 & 4*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1*节点 & 4*Ascend 20 qwen2-72b SEQ_LEN=4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 4*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 8*节点 & 8*Ascend 21 GLMv4 glm4-9b SEQ_LEN=4096 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=4 1*节点 & 8*Ascend SEQ_LEN=8192 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=4 1*节点 & 8*Ascend 父主题: 训练脚本说明
  • falcon-11B模型 在训练开始前,针对falcon-11B模型中的tokenizer文件,需要替换代码。替换文件{work_dir}/tokenizers/falcon-11B/config.json,具体步骤如下: 复制代码包目录下config.json至falcon-11B的tokenizer目录下,样例命令: 进入{work_dir}/.........../ascendcloud_patch/models/falcon2目录下: cd /home/ma-user/ws/llm_train/AscendFactory/src/acs_train_solution/ascendcloud_patch/models/falcon2 复制config.json文件至加载的权重文件/tokenizer目录下,参考路径上传代码和权重文件到工作环境中的步骤3。 cp -f config.json {work_dir}/model/falcon-11B/
  • MiniCPM系列 MiniCPM-2B和MiniCPM3-4B均未在Transformers仓注册,需提前手动打patch。 MiniCPM-2B # git clone 方式下载模型文件,如果已下载忽略此git clone步骤 git clone https://huggingface.co/openbmb/MiniCPM-2B-sft-bf16 # 打patch文件,${work_dir}为工作目录根据实际修改 cd MiniCPM-2B-sft-bf16 && git reset --hard 4ec1634 && git apply ${work_dir}/llm_train/AscendFactory/third-party/minicpm-2b.patch MiniCPM3-4B # git clone 方式下载模型文件 git clone https://huggingface.co/openbmb/MiniCPM3-4B # 打patch文件,${work_dir}为工作目录根据实际修改 cd MiniCPM3-4B && git reset --hard e571548 && git apply ${work_dir}/llm_train/AscendFactory/third-party/minicpm3-4b.patch
  • glm4-9b模型 在训练开始前,需要修改glm4-9b模型中的tokenizer文件modeling_chatglm.py内容,具体步骤如下: 进入到tokenizer目录下{work_dir}/model/glm4-9B/,命令如下: cd /home/ma-user/ws/model/glm4-9B 修改modeling_chatglm.py文件内容: vim modeling_chatglm.py # 注释掉以下两行内容 # if attention_mask is not None # attention_mask = ~attention_mask 样例图:
  • 上传数据集至SFS Turbo 准备数据集,例如根据Alpaca数据部分给出的预训练数据集、SFT全参微调训练、LoRA微调训练数据集下载链接下载数据集。可通过两种方式,将数据集上传至SFS Turbo中。 方式一:将下载的原始数据通过SSH直接上传至SFS Turbo中。具体步骤如下: 进入到/mnt/sfs_turbo/目录下。创建目录“training_data”,将原始数据存放在/mnt/sfs_turbo/training_data目录下。 通过拖拽文件的方式,上传文件。使用CloudShell或者其它SSH远程工具。数据存放参考目录: /mnt/sfs_turbo/training_data |── train-00000-of-00001-a09b74b3ef9c3b56.parquet # 训练原始数据集 |── alpaca_gpt4_data.json # 微调数据文件
  • 数据集下载 本教程使用Alpaca数据集,数据集的介绍及下载链接如下。 Alpaca数据集是由OpenAI的text-davinci-003引擎生成的包含52k条指令和演示的数据集。这些指令数据可以用来对语言模型进行指令调优,使语言模型更好地遵循指令。 预训练使用的Alpaca数据集下载:https://huggingface.co/datasets/tatsu-lab/alpaca/resolve/main/data/train-00000-of-00001-a09b74b3ef9c3b56.parquet,数据大小:24M左右。 SFT和LoRA微调使用的Alpaca数据集下载:https://huggingface.co/datasets/QingyiSi/Alpaca-CoT/blob/main/alpacaGPT4/alpaca_gpt4_data.json,数据大小:43.6 MB。
  • 方案概览 本文档利用训练框架PyTorch_npu+华为自研Ascend Snt9B硬件,以基于DeepSpeed的Qwen-VL模型为例,为用户提供了多模态理解模型在ModelArts Standard上的全量微调和LoRA微调方案。 本方案目前仅适用于部分企业客户,完成本方案的部署,需要先联系您所在企业的华为方技术支持。 本文档适用于OBS+SFS Turbo的数据存储方案,不适用于仅OBS存储方案。通过OBS 对象存储服务 (Object Storage Service)与SFS Turbo文件系统联动,可以实现灵活数据管理、高性能读取等。
  • 操作流程 图1 操作流程图 表2 操作任务流程说明 阶段 任务 说明 准备工作 准备资源 本教程案例是基于ModelArts Standard运行的,需要购买并开通ModelArts专属资源池和OBS桶。 准备数据 准备训练数据,可以用本案使用的数据集,也可以使用自己准备的数据集。 准备权重 准备所需的权重文件。 准备代码 准备AscendSpeed训练代码。 准备镜像 准备训练模型适用的容器镜像。 微调训练 SFT全参微调 介绍如何进行SFT全参微调,包括训练数据处理、超参配置、创建训练任务及性能查看。 LoRA微调训练 介绍如何进行LoRA微调训练,包括训练数据处理、超参配置、创建训练任务及性能查看。
  • Step2 权重格式离线转换(可选) 在GPU上AutoAWQ量化完成后,使用int32对int4的权重进行打包。昇腾上使用int8对权重进行打包,在线转换会增加启动时间,可以提前对权重进行转换以减少启动时间,转换步骤如下: 进入llm_tools/AutoAWQ代码目录下执行以下脚本: 执行时间预计10分钟。执行完成后会将权重路径下的原始权重替换成转换后的权重。如需保留之前权重格式,请在转换前备份。 python convert_awq_to_npu.py --model /home/ma-user/Qwen1.5-72B-Chat-AWQ 参数说明: model:模型路径。
  • 本地上传权重文件至SFS Turbo 通过以下两种方式将下载到本地的模型文件上传至SFS Turbo中。方式一操作简单,但是数据传输速度比较慢,费时间。方式二操作相对方式一复杂一些,但是数据传输速度较快。 方式一:将已下载的模型文件通过SSH直接上传至SFS Turbo中。具体步骤如下: 进入到/mnt/sfs_turbo/目录下。创建目录“training_data”,将原始数据存放在/mnt/sfs_turbo/model目录下。 通过拖拽文件的方式,上传文件。使用CloudShell或者其它SSH远程工具
  • 上传数据到指定目录 将下载的原始数据存放在/mnt/sfs_turbo/training_data目录下。具体步骤如下: 进入到/mnt/sfs_turbo/目录下。 创建目录“training_data”,并将原始数据放置在此处。 mkdir training_data 数据存放参考目录结构如下: ${workdir} |── training_data |── train-00000-of-00001-a09b74b3ef9c3b56.parquet # 训练原始数据集 |── alpaca_gpt4_data.json # 微调数据文件
  • Alpaca数据集 本教程使用Alpaca数据集,数据集的介绍及下载链接如下。 Alpaca数据集是由OpenAI的text-davinci-003引擎生成的包含52k条指令和演示的数据集。这些指令数据可以用来对语言模型进行指令调优,使语言模型更好地遵循指令。 预训练使用的Alpaca数据集下载:https://huggingface.co/datasets/tatsu-lab/alpaca/resolve/main/data/train-00000-of-00001-a09b74b3ef9c3b56.parquet,数据大小:24M左右。 SFT和LoRA微调使用的Alpaca数据集下载:https://huggingface.co/datasets/QingyiSi/Alpaca-CoT/blob/main/alpacaGPT4/alpaca_gpt4_data.json,数据大小:43.6 MB。
  • 模型推荐的参数与NPU卡数设置 不同模型推荐的训练参数和计算规格要求如表2所示。规格与节点数中的1*节点 & 4*Ascend表示单机4卡,以此类推。 表2 不同模型推荐的参数与NPU卡数设置 序号 支持模型 支持模型参数量 训练策略类型 文本序列长度(SEQ_LEN) 并行参数设置 micro batch size (MBS) 规格与节点数 1 llama2 llama2-7b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 2 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=4 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=2 PP(pipeline model parallel size)=4 2 1*节点 & 8*Ascend 2 llama2-13b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend 3 llama2-70b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 2 4*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 1 8*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend 4 llama3 llama3-8b pretrain/sft 4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend 5 llama3-70b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 2 4*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 1 8*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend 6 Qwen qwen-7b pretrain/sft 4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend 7 qwen-14b pretrain/sft 4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=2 2 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=2 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=2 2 1*节点 & 8*Ascend 8 qwen-72b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 2 4*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 1 8*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend 9 Qwen1.5 qwen1.5-7b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 2 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1 1*节点 & 8*Ascend 10 qwen1.5-14b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend 11 qwen1.5-32b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 2 2*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 4 2*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 1 2*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 2 2*节点 & 8*Ascend 12 qwen1.5-72b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 2 4*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 1 8*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend 13 Yi yi-6b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 2 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=2 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1 1*节点 & 8*Ascend 14 yi-34b pretrain/sft 4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=4 1 2*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=4 2 2*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 2 4*节点 & 8*Ascend 15 ChatGLMv3 glm3-6b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=2 1 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=2 2 1*节点 & 4*Ascend pretrain/sft 8192 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=2 1 1*节点 & 4*Ascend 16 Baichuan2 baichuan2-13b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 1 2*节点 & 8*Ascend 17 Qwen2 qwen2-0.5b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 2 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 2 1*节点 & 4*Ascend pretrain/sft 8192 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend 18 qwen2-1.5b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 2 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 2 1*节点 & 4*Ascend pretrain/sft 8192 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend 19 qwen2-7b pretrain/sft 4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=2 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=2 2 1*节点 & 8*Ascend 20 qwen2-72b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 2 4*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 1 8*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 1 8*节点 & 8*Ascend 21 GLMv4 glm4-9b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=2 1 1*节点 & 4*Ascend pretrain/sft 8192 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=2 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=2 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend 22 mistral mistral-7b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=4 2 1*节点 & 8*Ascend 23 mixtral mixtral-8x7b pretrain/sft 4096 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=8 1 2*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=2 PP(pipeline model parallel size)=8 1 2*节点 & 8*Ascend 24 llama3.1 llama3.1-8b pretrain/sft 4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend 25 llama3.1-70b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 4 2*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 1 8*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 2 2*节点 & 8*Ascend 26 Qwen2.5 qwen2.5-0.5b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 2 1*节点 & 4*Ascend pretrain/sft 8192 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend 27 qwen2.5-7b pretrain/sft 4096 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=4 PP(pipeline model parallel size)=2 1 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=2 2 1*节点 & 8*Ascend 28 qwen2.5-14b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend lora TP(tensor model parallel size)=4 PP(pipeline model parallel size)=1 4 1*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=1 2 1*节点 & 8*Ascend 29 qwen2.5-32b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 2 2*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 4 2*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 1 2*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=2 2 2*节点 & 8*Ascend 30 qwen2.5-72b pretrain/sft 4096 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 1 4*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 4 4*节点 & 8*Ascend pretrain/sft 8192 TP(tensor model parallel size)=8 PP(pipeline model parallel size)=8 1 8*节点 & 8*Ascend lora TP(tensor model parallel size)=8 PP(pipeline model parallel size)=4 2 4*节点 & 8*Ascend 31 llama3.2 llama3.2-1b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 2 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 2 1*节点 & 4*Ascend pretrain/sft 8192 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend 32 llama3.2-3b pretrain/sft 4096 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=2 2 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 2 1*节点 & 4*Ascend pretrain/sft 8192 TP(tensor model parallel size)=1 PP(pipeline model parallel size)=2 1 1*节点 & 4*Ascend lora TP(tensor model parallel size)=1 PP(pipeline model parallel size)=1 1 1*节点 & 4*Ascend
  • 模型软件包结构说明 本教程需要使用到的AscendCloud-6.3.910中的AscendCloud-LLM-xxx.zip软件包和算子包AscendCloud-OPP,AscendCloud-LLM关键文件介绍如下。 |——AscendCloud-LLM |──llm_train # 模型训练代码包 |──LLaMAFactory # 基于LLaMAFactory的训练代码 |──ascendcloud_patch/ # 针对昇腾云平台适配的功能补丁包 |──demo.yaml # 样例yaml配置文件 |──demo.sh # 指令微调启动shell脚本 |──intall.sh # 需要的依赖包 |──LLaMA-Factory # LLaMAFactory的代码目录 |──AscendSpeed # 基于AscendSpeed的训练代码
  • 获取模型软件包和权重文件 本方案支持的模型对应的软件和依赖包获取地址如表1所示,模型列表、对应的开源权重获取地址如表1所示。 表1 模型对应的软件包和依赖包获取地址 代码包名称 代码说明 下载地址 AscendCloud-6.3.910-xxx.zip 说明: 软件包名称中的xxx表示时间戳。 包含了本教程中使用到的模型训练代码、推理部署代码和推理评测代码。代码包具体说明请参见模型软件包结构说明。 AscendSpeed是用于模型并行计算的框架,其中包含了许多模型的输入处理方法。 获取路径:Support-E,在此路径中查找下载ModelArts 6.3.910 版本。 说明: 如果上述软件获取路径打开后未显示相应的软件信息,说明您没有下载权限,请联系您所在企业的华为方技术支持下载获取。
  • 工作目录介绍 详细的工作目录参考如下,建议参考以下要求设置工作目录。 ${workdir}(例如/home/ma-user/ws ) |──llm_train #解压代码包后自动生成的代码目录,无需用户创建 |── LLaMAFactory # 代码目录 |──ascendcloud_patch/ # 针对昇腾云平台适配的功能代码包 |──demo.sh # 指令微调启动shell脚本 |──demo.yaml # 样例yaml配置文件 |──intall.sh # 需要的依赖包 |──LLaMA-Factory # 执行install.sh后生成此目录,容器内执行参考步骤三 启动容器镜像 |──data # 原始数据目录,如使用自定义数据,参考准备数据(可选) |── tokenizers #原始权重/tokenizer目录,用户手动创建,用户根据实际规划目录修改,后续操作步骤中会提示 |── Qwen2-72B # 输出权重及日志路径,用户可根据实际自行规划,无需手动创建,此路径对应表1表格中output_dir参数值 |── saved_dir_for_output_lf # 训练输出保存权重,目录结构会自动生成,无需用户创建 |── ${model_name} # 模型名称,根据实际训练模型创建,训练完成权重文件及日志目录
  • 上传代码和权重文件到工作环境 使用root用户以SSH的方式登录Server。 将AscendCloud代码包AscendCloud-xxx-xxx.zip上传到${workdir}目录下并解压缩,如:/home/ma-user/ws目录下,以下都以/home/ma-user/ws为例,请根据实际修改。 unzip AscendCloud-*.zip unzip AscendCloud-LLM-*.zip 上传tokenizers文件到工作目录中的/home/ma-user/ws/tokenizers/{Model_Name}目录,用户根据自己实际规划路径修改;如Qwen2-72B。 具体步骤如下: 进入到${workdir}目录下,如:/home/ma-user/ws,创建tokenizers文件目录将权重和词表文件放置此处,以Qwen2-72B为例。 cd /home/ma-user/ws mkdir -p tokenizers/Qwen2-72B
  • 模型软件包结构说明 本教程需要使用到的AscendCloud-6.3.907中的AscendCloud-LLM-xxx.zip软件包和算子包AscendCloud-OPP,AscendCloud-LLM关键文件介绍如下。 |——AscendCloud-LLM ├──llm_inference # 推理代码 ├──ascend_vllm ├── vllm_npu # 推理源码 ├── ascend_vllm-0.5.0-py3-none-any.whl # 推理安装包 ├── build.sh # 推理构建脚本 ├── vllm_install.patch # 社区昇腾适配的补丁包 ├── Dockerfile # 推理构建镜像dockerfile ├── build_image.sh # 推理构建镜像启动脚本 ├──llm_tools # 推理工具包 ├──AutoSmoothQuant # W8A8量化工具 ├── ascend_autosmoothquant_adapter # 昇腾量化使用的算子模块 ├── autosmoothquant # 量化代码 ├── build.sh # 安装量化模块的脚本 ├──AutoAWQ # W4A16量化工具 ├──convert_awq_to_npu.py # awq权重转换脚本 ├──quantize.py # 昇腾适配的量化转换脚本 ├──build.sh # 安装量化模块的脚本 ├──llm_evaluation # 推理评测代码包 ├──benchmark_tools #性能评测 ├── benchmark.py # 可以基于默认的参数跑完静态benchmark和动态benchmark ├── benchmark_parallel.py # 评测静态性能脚本 ├── benchmark_serving.py # 评测动态性能脚本 ├── benchmark_utils.py # 抽离的工具集 ├── generate_datasets.py # 生成自定义数据集的脚本 ├── requirements.txt # 第三方依赖 ├──benchmark_eval #精度评测 ├──opencompass.sh #运行opencompass脚本 ├──install.sh #安装opencompass脚本 ├──vllm_api.py #启动vllm api服务器 ├──vllm.py #构造vllm评测配置脚本名字
  • 支持的模型列表和权重文件 本方案支持vLLM的v0.5.0版本。不同vLLM版本支持的模型列表有差异,具体如表3所示。 表3 支持的模型列表和权重获取地址 序号 模型名称 是否支持fp16/bf16推理 是否支持W4A16量化 是否支持W8A8量化 是否支持 kv-cache-int8量化 开源权重获取地址 1 llama-7b √ √ √ √ https://huggingface.co/huggyllama/llama-7b 2 llama-13b √ √ √ √ https://huggingface.co/huggyllama/llama-13b 3 llama-65b √ √ √ √ https://huggingface.co/huggyllama/llama-65b 4 llama2-7b √ √ √ √ https://huggingface.co/meta-llama/Llama-2-7b-chat-hf 5 llama2-13b √ √ √ √ https://huggingface.co/meta-llama/Llama-2-13b-chat-hf 6 llama2-70b √ √ √ √ https://huggingface.co/meta-llama/Llama-2-70b-hf https://huggingface.co/meta-llama/Llama-2-70b-chat-hf (推荐) 7 llama3-8b √ √ √ √ https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct 8 llama3-70b √ √ √ √ https://huggingface.co/meta-llama/Meta-Llama-3-70B-Instruct 9 yi-6b √ √ √ √ https://huggingface.co/01-ai/Yi-6B-Chat 10 yi-9b √ √ √ √ https://huggingface.co/01-ai/Yi-9B 11 yi-34b √ √ √ √ https://huggingface.co/01-ai/Yi-34B-Chat 12 deepseek-llm-7b √ x x x https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat 13 deepseek-coder-33b-instruct √ x x x https://huggingface.co/deepseek-ai/deepseek-coder-33b-instruct 14 deepseek-llm-67b √ x x x https://huggingface.co/deepseek-ai/deepseek-llm-67b-chat 15 qwen-7b √ √ √ x https://huggingface.co/Qwen/Qwen-7B-Chat 16 qwen-14b √ √ √ x https://huggingface.co/Qwen/Qwen-14B-Chat 17 qwen-72b √ √ √ x https://huggingface.co/Qwen/Qwen-72B-Chat 18 qwen1.5-0.5b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-0.5B-Chat 19 qwen1.5-7b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-7B-Chat 20 qwen1.5-1.8b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat 21 qwen1.5-14b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-14B-Chat 22 qwen1.5-32b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-32B/tree/main 23 qwen1.5-72b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-72B-Chat 24 qwen1.5-110b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-110B-Chat 25 qwen2-0.5b √ √ √ x https://huggingface.co/Qwen/Qwen2-0.5B-Instruct 26 qwen2-1.5b √ √ √ x https://huggingface.co/Qwen/Qwen2-1.5B-Instruct 27 qwen2-7b √ √ x x https://huggingface.co/Qwen/Qwen2-7B-Instruct 28 qwen2-72b √ √ √ x https://huggingface.co/Qwen/Qwen2-72B-Instruct 29 baichuan2-7b √ x x x https://huggingface.co/baichuan-inc/Baichuan2-7B-Chat 30 baichuan2-13b √ x x x https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat 31 gemma-2b √ x x x https://huggingface.co/google/gemma-2b 32 gemma-7b √ x x x https://huggingface.co/google/gemma-7b 33 chatglm2-6b √ x x x https://huggingface.co/THUDM/chatglm2-6b 34 chatglm3-6b √ x x x https://huggingface.co/THUDM/chatglm3-6b 35 glm-4-9b √ x x x https://huggingface.co/THUDM/glm-4-9b-chat 36 mistral-7b √ x x x https://huggingface.co/mistralai/Mistral-7B-v0.1 37 mixtral-8x7b √ x x x https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1 38 falcon-11b √ x x x https://huggingface.co/tiiuae/falcon-11B/tree/main 39 qwen2-57b-a14b √ x x x https://huggingface.co/Qwen/Qwen2-57B-A14B-Instruct 40 llama3.1-8b √ x x x https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct 41 llama3.1-70b √ x x x https://huggingface.co/meta-llama/Meta-Llama-3.1-70B-Instruct 说明:当前版本中yi-34b、qwen1.5-32b模型暂不支持单卡启动。
  • 镜像版本 本教程中用到基础镜像地址和配套版本关系如下表所示,请提前了解。 表2 基础容器镜像地址 配套软件版本 镜像用途 镜像地址 配套 获取方式 6.3.908版本 基础镜像 swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc3-py_3.9-hce_2.0.2312-aarch64-snt9b-20240824153350-cebb080 cann_8.0.rc3 pytorch_2.1.0 驱动23.0.6 从SWR拉取 不同软件版本对应的基础镜像地址不同,请严格按照软件版本和镜像配套关系获取基础镜像。
  • 资源规格要求 本文档中的模型运行环境是ModelArts Lite的Server。推荐使用“西南-贵阳一”Region上的资源和Ascend Snt9B。 如果使用Server资源,请参考Lite Server资源开通,购买Server资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。 当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据。
  • 镜像版本 本教程中用到基础镜像地址和配套版本关系如下表所示,请提前了解。 表1 基础容器镜像地址 镜像用途 镜像地址 配套版本 基础镜像 swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc2-py_3.9-hce_2.0.2312-aarch64-snt9b-20240727152329-0f2c29a cann_8.0.rc2
  • 软件配套版本 本方案支持的软件配套版本和依赖包获取地址如表2所示。 表2 软件配套版本和获取地址 软件名称 说明 下载地址 AscendCloud-6.3.907-xxx.zip 说明: 软件包名称中的xxx表示时间戳。 包含了本教程中使用到的推理部署代码和推理评测代码、推理依赖的算子包。代码包具体说明请参见模型软件包结构说明。 获取路径:Support-E 说明: 如果上述软件获取路径打开后未显示相应的软件信息,说明您没有下载权限,请联系您所在企业的华为方技术支持下载获取。
  • 约束限制 本方案目前仅适用于部分企业客户。 本文档适配昇腾云ModelArts 6.3.907版本,请参考软件配套版本获取配套版本的软件包,请严格遵照版本配套关系使用本文档。 资源规格推荐使用“西南-贵阳一”Region上的Server和昇腾Snt9B资源。 推理部署使用的服务框架是vLLM。vLLM支持v0.5.0版本。 支持FP16和BF16数据类型推理。 Server驱动版本要求23.0.6。
  • 步骤四 根据config.yaml启动作业 启动作业命令如下。首先会根据config.yaml创建pod,继而在pod容器内自动启动训练作业。 kubectl apply -f config.yaml 启动后,可通过以下命令获取所有已创建的pod信息。若pod已全部启动,则状态为:Running。 kubectl get pod -A -o wide 若查看启动作业日志信息,可通过以下命令打印正在启动的日志信息。其中${pod_name}为上述pod信息中的NAME,例如vcjob-main-0。 kubectl logs -f ${pod_name}
  • 单模型性能测试工具Mindspore lite benchmark 在模型精度对齐后,针对Stable Diffusion模型性能调优,您可以通过AOE工具进行自助性能调优,进一步可以通过profiling工具对于性能瓶颈进行分析,并针对性地做一些调优操作。 您可以直接使用benchmark命令测试mindir模型性能,用来对比调优前后性能是否有所提升。 # shell cd /home_host/work benchmark --modelFile=diffusers/scripts/mindir_models/text_encoder.mindir --device=Ascend 上述命令中:modelFile指定生成的mindir模型文件;device指定运行推理的设备。其他用法请参考benchmark文档。 测试结果如下所示: 图1 测试结果 父主题: 性能调优
  • 训练支持的模型列表 本方案支持以下模型的训练,如表1所示。 表1 支持的模型列表及权重文件地址 支持模型 Template 支持模型参数量 权重文件获取地址 Llama3 llama3 llama3-8b https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct llama3-70b https://huggingface.co/meta-llama/Meta-Llama-3-70B-Instruct Qwen1.5 qwen qwen1.5-0.5b https://huggingface.co/Qwen/Qwen1.5-0.5B qwen1.5-1.8b https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat qwen1.5-4b https://huggingface.co/Qwen/Qwen1.5-4B qwen1.5-7b https://huggingface.co/Qwen/Qwen1.5-7B-Chat qwen1.5-14b https://huggingface.co/Qwen/Qwen1.5-14B-Chat Yi yi yi-6b https://huggingface.co/01-ai/Yi-6B-Chat yi-34b https://huggingface.co/01-ai/Yi-34B-Chat Qwen2 qwen qwen2-0.5b https://huggingface.co/Qwen/Qwen2-0.5B-Instruct qwen2-1.5b https://huggingface.co/Qwen/Qwen2-1.5B-Instruct qwen2-7b https://huggingface.co/Qwen/Qwen2-7B-Instruct qwen2-72b https://huggingface.co/Qwen/Qwen2-72B-Instruct Falcon2 falcon falcon-11B https://huggingface.co/tiiuae/falcon-11B
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全