[错误]: 在扩展步骤结束时,VBWS 返回空输出
□ 系统信息
- CPU 架构: x86 64
- GPU: NVIDIA RTX PRO5000 72GB 布莱克威尔
- NVIDIA司机:580.126.09
- TensorRT-LLM: 1.3.0rc26 号机车
- 后端: PyTorch, 单一GPU
- PyTorch:2.12.0+cu130
- 变压器:5.5.4
- Python: 3.12.7 (英语).
- OS: Linux 5.10.134, glibc 2.39 (英语).
- 重叠调度器:启用(默认)
□谁能相助?
@NVIDIA/trt-LLM-devs (英语).
□ 资讯
- [ 官方示例脚本
- 我自己修改过的脚本
□任务
- [ " 例如 " 文件夹中的一项得到官方支持的任务
- 我的任务或数据集( 问题在于 模型和数据集在登录后独立)
□再现.
Variable-Beam-Width 搜索返回所请求的输出槽数,但当生成在拓宽的一步上终止时,许多输出有空 “ token ids ” 。
一个最小的LLM API设置是:
[Python] 导入 Os
从 lomorrt llm 导入 LLM, 取样包
model = os.environ ["MODEL PATH"] # 任何本地可用的因子 LM;与Quen3一起被观测到. LLM = LLM (英语: 型号=型号, 标致剂=型号, dtype="bfloat16","at". 最大值 批量 大小=1, 最大输入 伦=128, 最大 seq len=131, (中文(简体) ). 最大( B) (中文(简体) ).
采样 参数=采样Params( n=100, (单位:千美元) 最佳为100; bam width array=[16],32,100], (中文(简体) ). 使用( B) 最大值( T) : 温度=0.0, 忽略( E) (中文(简体) ).
请检查access-date=中的日期值 (帮助) LLM.generate(["你好",采样-参数) [0] 长度 = [len(output.token ids) 用于请求 output.outputs]中输出 打印( len( request output.outputs) ) 打印( { 长度: 长度. 计数( 长度) )
profile (request output.outputs) ==100 (中文(简体) ). 表示所有( 长度为 3)
随着"波姆-搜索-抽样-批量-cba"周围的轻量级仪器,预期的"(波姆-width-in,波姆-width-out)"过渡为:
页:1
(1、16)、(16、32)、(32、100)由于默认重叠调度器,观测到的过渡是:
页:1 (1,16),(16,16),(16,32)
最后一步创造出32个梁,但"` prepare beam history cba ()"之后只收集了16个活路径. 在五次重复的请求中,最终输出长度直方图一致:
页:1
{3: 16, 0: 84} (韩语).同一请求的固定时间表为 " [100、100、100] " ,返回100个非空的三进制产出。
设置“ TLLM DEBUG MODE=1” 用于附加日志 。
□ 预期行为
Beam width array=[16,32,100]'和max tokens=3':
- 抽样应执行 " 1 - > 16 " 、 " 16 - > 32 " 和 " 32 - > 100 " 等宽度。
- 最后答复应包括100项产出。
- 每个产出应包含三个生成的符号;任何产出都不应有一个空的 " token ids " 列表。
□ 实际行为
重叠路径重复了第二个采样步骤的第一个被配置的宽度,因此最后一步只从16个拓宽到32个. 最终化后再用输入宽度(16)来切出当前步骤快照,再去掉额外的16个路径. 其余的输出槽仍被固定并暴露为空“token ids”。
□ 附加注释
这看来是两个问题 . . . . . . .
内容来源: NVIDIA/TensorRT-LLM