set_label代码插入说明
set_label API介绍
- 函数原型
set_label(data_src, data_id, data_val, tensor_path)
- 功能说明
- 参数说明
参数名
含义
是否必填
使用说明
data_src
数据来源
是
数据类型:str,可选值:acl、pta。acl表示加速库的数据,pta表示PyTorch Ascend的数据,即基准数据。
data_id
数据的id
是
数据类型:str,通过接口gen_id()生成,id一致的数据表示成对比较的数据。
data_val
数据的值
否
数据类型: torch.Tensor。当data_src是pta时,这个值是必填的。当data_src是acl时,若是high-level比对,需要必填。若是low-level比对,不需要填。
tensor_path
加速库侧数据dump的路径
否
数据类型:str,当data_src是acl时,进行low-level比对时,需要提供加速库侧dump的operation或kernel的数据路径。
- 返回值
精度比对命令行介绍
msit llm compare xx_args
可选参数如下:
参数名 |
含义 |
---|---|
--exec |
执行命令,用于拉起大模型推理脚本。建议使用bash xx.sh args或者python3 xx.py的方式拉起。 |
- 设置task_id。
- 在推理脚本中打标签。
以“patches/models/modeling_chatglm_model.py”为例,该脚本是model粒度的替换。
- high-level比对,比对model的输出与pta对应的model的输出的精度,找到相应的代码段,添加以下代码:
from msquickcmp.pta_acl_cmp.compare import set_label, gen_id data_id = gen_id() set_label("pta", data_id, hidden_states) set_label("acl", data_id, acl_model_out[0])
- high-level比对,比对model的输出与pta对应的model的输出的精度,找到相应的代码段,添加以下代码:
- 执行比对命令。
安装加速库的指导文档下载编译好加速库代码,进入“example/chatglm6b”目录,执行比对命令:
MSQUICKCMP_PATH=`python3 -c 'import msquickcmp; print(msquickcmp.__path__[0])'` # 需要dump加速库low-level数据时使用 export LD_PRELOAD=$MSQUICKCMP_PATH/libsavetensor.so:$LD_PRELOAD export ATB_SAVE_TENSOR=1 # 打开加速库dump开关,0为关闭dump功能(默认),1为开启; export ATB_SAVE_TENSOR_RANGE=0,1000 # 加速库接口dump数据轮数; export ATB_SAVE_TENSOR_IDS= # 加速库dump数据runner白名单,如20_2_3,21 msit llm compare --exec "bash run_performance.sh patches/models/modeling_chatglm_model.py"
- 在进行low-level比对时,需要先执行PTA model的推理,再执行加速库的推理,即set_label("acl", data_id, tensor_path)需要在加速库侧推理前执行。
- low-level比对的同时,需要设置high-level比对。
- 结果分析。
- 生成的csv报告如下:
图1 比对结果
- csv各列名称解释如下:
表2 字段说明 字段
含义
data_id
数据的ID。
pta_data_path
PTA数据的dump路径。
pta_dtype
PTA数据的类型。
pta_shape
PTA数据的Shape。
pta_max_value
PTA数据的最大值。
pta_min_value
PTA数据的最小值。
pta_mean_value
PTA数据的平均值。
acl_data_path
acl数据的dump路径。
acl_dtype
acl数据的类型。
acl_shape
acl数据的Shape。
acl_max_value
acl数据的最大值。
acl_min_value
acl数据的最小值。
acl_mean_value
acl数据的平均值。
cmp_flag
是否进行比较。
cosine_similarity
PTA与acl数据的余弦相似度值。
max_relative_error
PTA与acl数据的最大相对误差。
mean_relative_error
PTA与acl数据的绝对相对误差。
relative_euclidean_distance
PTA与acl数据的相对欧式距离。
cmp_fail_reason
比对失败的原因。
- 比对算法解释如下:
表3 比对算法 比对算法名称
说明
cosine_similarity
进行余弦相似度算法比对出来的结果。取值范围为[-1,1],比对的结果如果越接近1,表示两者的值越相近,越接近-1意味着两者的值越相反。
max_relative_error
表示最大相对误差。取值范围为[0, +∞),值越接近于0,表明越相近,值越大,表明差距越大。
mean_relative_error
表示平均相对误差。取值范围为[0, +∞),值越接近于0,表明越相近,值越大,表明差距越大。
relative_euclidean_distance
进行欧氏相对距离算法比对出来的结果。取值范围为[0, +∞),值越接近于0,表明越相近,值越大,表明差距越大。
- 生成的csv报告如下: