检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
工具介绍及准备工作 本章节主要介绍针对LLaMAFactory开发的测试工具benchmark,支持训练、性能对比、下游任务评测、loss和下游任务对比能力。对比结果以excel文件呈现。方便用户验证发布模型的质量。所有配置都通过yaml文件设置,用户查看默认yaml文件即可知道最优性能的配置。
使用kv-cache-int8量化 kv-cache-int8是实验特性,在部分场景下性能可能会劣于非量化。当前支持per-tensor静态量化和per-tensor+per-head静态量化,支持kv-cache-int8量化和FP16、BF16、AWQ、smoothquant的组合。
使用llm-compressor工具量化 当前版本使用llm-compressor工具量化仅支持Deepseek-v2系列模型的W8A8量化。 本章节介绍如何在GPU的机器上使用开源量化工具llm-compressor量化模型权重,然后在NPU的机器上实现推理量化。 具体操作如下:
使用llm-compressor工具量化 当前版本使用llm-compressor工具量化仅支持Deepseek-v2系列模型的W8A8量化。 本章节介绍如何在GPU的机器上使用开源量化工具llm-compressor量化模型权重,然后在NPU的机器上实现推理量化。 具体操作如下:
性能调优总体原则和思路 PyTorch在昇腾AI处理器的加速实现方式是以算子为粒度进行调用(OP-based),即通过Python与C++调用CANN层接口Ascend Computing Language(AscendCL)调用一个或几个亲和算子组合的形式,代替原有GPU的实现
训练中的权重转换说明 以 llama2-13b 举例,运行 0_pl_pretrain_13b.sh 脚本。脚本同样还会检查是否已经完成权重转换的过程。 如果已完成权重转换,则直接执行预训练任务。如果未进行权重转换,则会自动执行 scripts/llama2/2_convert_mg_hf
模型NPU卡数取值表 不同模型推荐的训练参数和计算规格要求如表1所示。规格与节点数中的1*节点 & 4*Ascend表示单机4卡,以此类推 表1 模型NPU卡数取值表 支持模型 支持模型参数量 文本序列长度 训练类型 Zero并行 规格与节点数 llama3 70B cutoff_len=4096
各个模型训练前文件替换 在训练开始前,因模型权重文件可能与训练框架不匹配或有优化,因此需要针对模型的tokenizer文件进行修改或替换,不同模型的tokenizer文件修改内容如下。 falcon-11B模型 在训练开始前,针对falcon-11B模型中的tokenizer文件
multi-step 什么是multi-step vLLM的调度和输入准备的CPU开销可能会导致NPU利用率不足,开启multi-step调度可以有效解决这个问题,开启multi-step调度后会在执行一次调度和输入准备后,连续n步运行模型。通过NPU在n步之间连续处理,而无需等
Chunked Prefill 什么是Chunked Prefill Chunked Prefill(Splitfuse)特性的目的是将长prompt request分解成更小的块,并在多个forward step中进行调度,只有最后一块的forward完成后才开始这个prompt
各个模型训练前文件替换 在训练开始前,因模型权重文件可能与训练框架不匹配或有优化,因此需要针对模型的tokenizer文件进行修改或替换,不同模型的tokenizer文件修改内容如下。 falcon-11B模型 在训练开始前,针对falcon-11B模型中的tokenizer文件
网卡名称错误 当训练开始时提示网卡名称错误。或者通信超时。可以使用ifconfig命令检查网卡名称配置是否正确。 比如,ifconfig看到当前机器IP对应的网卡名称为enp67s0f5,则可以设置环境变量指定该值。 export GLOO_SOCKET_IFNAME=enp67s0f5
训练性能测试 流程图 训练性能测试流程图如下图所示: 图1 训练性能测试流程 执行训练任务 进入test-benchmark目录执行训练命令,可以多次执行,卡数及其它配置参考NPU卡数取值表按自己实际情况决定。 单机<可选>: # 默认8卡 benchmark-cli train
录制Profiling Ascend PyTorch Profiler是针对PyTorch框架开发的性能数据采集和解析工具,通过在PyTorch训练脚本中插入Ascend PyTorch Profiler接口,执行训练的同时采集性能数据,完成训练后直接输出可视化的性能数据文件,提升了性能分析效率。
类型type、属性properties,必须属性required 、定义definitions等,JSON Schema通过定义对象属性、类型、格式的方式来引导模型生成一个包含用户信息的JSON对象。 如果希望使用JSON Schema,guided_json的写法可参考outlines: Structured
使用AWQ量化工具转换权重 AWQ(W4A16/W8A16)量化方案能显著降低模型显存以及需要部署的卡数。降低小batch下的增量推理时延。支持AWQ量化的模型列表请参见支持的模型列表和权重文件。 本章节介绍如何在Notebook使用AWQ量化工具实现推理量化。 量化方法:W4A16
类型type、属性properties,必选属性required 、定义definitions等,JSON Schema通过定义对象属性、类型、格式的方式来引导模型生成一个包含用户信息的JSON对象。 若希望使用JSON Schema,guided_json的写法可参考outlines: Structured
使用SmoothQuant量化工具转换权重 SmoothQuant(W8A8)量化方案能降低模型显存以及需要部署的卡数。也能同时降低首token时延和增量推理时延。支持SmoothQuant(W8A8)量化的模型列表请参见支持的模型列表和权重文件。 本章节介绍如何在Noteboo
类型type、属性properties,必选属性required 、定义definitions等,JSON Schema通过定义对象属性、类型、格式的方式来引导模型生成一个包含用户信息的JSON对象。 如果希望使用JSON Schema,guided_json的写法可参考outlines: Structured
使用kv-cache-int8量化 kv-cache-int8是实验特性,在部分场景下性能可能会劣于非量化。当前支持per-tensor静态量化,支持kv-cache-int8量化和FP16、BF16、AWQ、smoothquant的组合。 kv-cache-int8量化支持的模型请参见支持的模型列表和权重文件。