快速结论
官方确定性采样路径要求同时启用批次不变、关闭可变长度 MTP,并为 SamplingParams 固定 seq_seed;当前标注仅限 NVIDIA。
- DEEPINFER_BATCH_INVARIANT=1 用于批次不变推理。
- 确定性采样还要求 DEEPINFER_ENABLE_MTP_VARLEN=0。
- 相同文本不一定代表经过编码后的输入 Token 完全相同。
本次更新:增加 5537415 严格开关与首次读取缓存的复现配置说明。
本教程依据 DeepInfer README和 SamplingParams 源码,讨论离线框架中的复现准备。它不是托管 API 参数教程,也没有运行模型。
1. 先区分两个目标
批次不变推理关注同一个请求与不同请求组成批次时,模型结果是否保持一致。确定性采样进一步关注:相同输入 Token 和采样参数,能否得到相同输出。
README 当前将这两项路径标注为 NVIDIA only。框架支持昇腾 950,不代表每个特性都已对两种平台开放。
2. 在运行环境设置两个开关
按官方说明,在启动离线任务的同一环境设置:
export DEEPINFER_BATCH_INVARIANT=1
export DEEPINFER_ENABLE_MTP_VARLEN=0
第二项关闭可变长度 MTP。不能一边省略这一要求,一边把其他推测解码设置下的结果描述为遵循了官方确定性配置。
3. 为序列固定种子
以下仅创建参数对象,模型加载和请求提交仍按所用提交的完整示例接入:
from deepinfer.sampling_params import SamplingParams
params = SamplingParams(
temperature=0.6,
top_p=0.95,
max_tokens=256,
seq_seed=42,
)
源码中,未提供 seq_seed 时会生成随机 64 位种子。将温度设低不能代替对种子、输入和环境的完整记录;固定参数也不代表输出一定正确。
4. 用三组运行定位差异
以下为本站编辑设计的检查顺序:先重复运行同一请求;再改变批次中的其他请求;最后比较输出 Token、结束原因及文本差异。每次只改变一个条件,保存原始结果。
记录权重修订、分词与协议编码、仓库和子模块提交、驱动与算子版本、硬件和并行配置。不要将某一环境的一致性推断为跨硬件、跨库版本的无条件保证。
5. 与准确率评测分开报告
复现成功只是运行一致,不等于答案正确。需要能力分数时,另按离线评测协议处理数据、答案提取和覆盖率;需要吞吐时,再单独记录负载与计时窗口。
10 月 25 日:避免开关拼写影响复现配置
5537415 将 _bool 改为严格解析;本页示例中的 1 和 0 仍在支持集合内。改成 yes、off 或带空格的值会报错,未设置则使用对应默认值,不能与空字符串混淆。
环境描述符首次读取后会缓存结果。修改配置后用新的目标进程确认有效设置,再比较批次与种子;不要把配置未生效造成的差异解释为采样保证本身发生变化。
参考资料
本文依据以下资料整理,版本与接口信息请以来源页面的现行说明为准。