整网数据采集比对
找到logits精度存在明显差异的Token后,通过dump标杆模型、ATB模型的整网精度数据,再使用compare工具进行精度比对,定位问题。
以模型A为例,将dump第3个token的整网精度数据。
- 采集标杆模型整网数据。代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
import torch from msit_llm import DumpConfig, register_hook from transformers import AutoTokenizer, AutoModelForCausalLM # 在推理模型完成初始化之前,启动确定性计算 from msit_llm import seed_all seed_all(seed=2345) # 配置dump参数,其中: # token_range=list([3]) 表示采集第3个Token的整网数据 # dump_path="/data/golden_dump_all_path",为dump数据保存路径,请根据实际情况替换 dump_config = DumpConfig(token_range=list([3]), dump_path="/data/golden_dump_all_path") # 推理模型初始化 model_weight_path="/data/model_path" # model_weight_path为模型A权重路径,请根据实际情况替换 tokenizer = AutoTokenizer.from_pretrained(model_weight_path) model = AutoModelForCausalLM.from_pretrained(model_weight_path).cuda() register_hook(model, dump_config) # model是要dump中间tensor的模型实例,在模型初始化后添加代码 with torch.no_grad(): # 推理流程代码
- 采集ATB模型整网数据。
代码示例如下,其中ATB_DUMP_ALL_PATH为dump数据保存路径。
msit llm dump --exec "bash run.sh" -er 3,3 -o {ATB_DUMP_ALL_PATH} -seed 2345
- 使用compare工具比对整网精度数据。
示例如下,其中GOLDEN_DUMP_ALL_PATH为dump标杆模型整网数据的保存路径,COMPARE_PATH是比对结果保存路径。
msit llm compare -gp {GOLDEN_DUMP_ALL_PATH}/msit_dump_{TIMESTAMP}/torch_tensors/cuda{device_id}_{PID}/ -mp {ATB_DUMP_ALL_PATH}/msit_dump_{TIMESTAMP}/tensors/{device_id}_{PID} -o {COMPARE_PATH}
- 比对完成后,会生成比对结果文件msit_cmp_report_{TIMESTAMP},保存在比对结果保存路径下。
- 确认算子名称后,使用msit llm opcheck工具对算子的精度进行预检,判断加速库算子精度是否达标。
父主题: 采用msit工具定位