HiDeepSeekDev
空闲特惠
教程指南DeepSeekDeepInfer环境变量排障教程

DeepInfer 配置排查教程:true、false、空值与未设置怎样区分

结合 10 月 25 日严格解析修复,核对脚本、容器和作业平台中的布尔开关,解释空格、默认值与首次读取缓存对排查的影响。

快速结论

优先把布尔开关明确写成 0/1 或 true/false;保留未设置与空字符串的区别。改完配置后在新进程验证,别把其他类型参数一起替换。

  • 教程适用于 5537415 中通过 _bool 读取的值。
  • 大小写不敏感,但没有自动 trim 空格。
  • 环境描述符首次读取后缓存到类属性,运行中改环境不保证重新解析。

本次更新:10 月 25 日核对原始来源后新增,注明消息日期、适用版本及验证范围。

DeepInfer 10 月 25 日提交把布尔环境变量改为严格解析。本教程依据对应源码给出排查流程,没有安装或执行推理。

1. 确认字段确实是布尔值

先查看当前提交的 environ.py,区分 bool、int、str 和 choice。不要把 DEEPINFER_ACCELERATOR、模型路径或整数批次参数也替换成 0、1。

2. 把几个容易混淆的值分开

配置值 当前 _bool 行为
1、true 及其大小写变体 真
0、false 及其大小写变体 假
空字符串 假
未设置 使用该字段默认值
yes、off、2、带前后空格的 true 报 ValueError

错误通常携带变量名称。排查时保留脱敏后的字段和值形态,无需打印整个进程环境或所有凭据。

3. 逐层找出谁覆盖了配置

以下为编辑建议:依次核对 shell、容器 env、配置模板、作业平台覆盖项及启动包装脚本。只比较有关开关,记录最终启动进程读到的值。

需要启用批次不变并关闭可变长度 MTP 时,官方 README 的明确写法为:

export DEEPINFER_BATCH_INVARIANT=1
export DEEPINFER_ENABLE_MTP_VARLEN=0

这两个设置是 NVIDIA 确定性采样流程的一部分,完整复现还需固定 seq_seed 与输入,见复现教程。

4. 用新进程核对改动

环境描述符在第一次读取后会缓存解析结果。修改 shell 或编排配置后,应按自己的任务管理方式重新启动待验证进程,不能仅修改外部环境就认定正在运行的进程已采用新值。

记录源码提交、启动配置及首个错误;格式问题解决后再检查设备、依赖和模型。出现布尔解析异常,不代表权重文件损坏或模型能力发生变化。

参考资料

本文依据以下资料整理,版本与接口信息请以来源页面的现行说明为准。

  1. 01DeepInfer 10 月 25 日严格布尔解析提交github.com
  2. 02该提交 environ.py 源码github.com
  3. 03同提交 README 配置说明github.com
阅读至此返回学习中心