在 temperature=0 时, GPT.generate() 发生崩溃,而不是进行贪婪解码
作者: NikhilSKashyap创建于 2026年6月17日更新于 2026年6月17日
** 说明**
减记
页:1
GPT.generate ()'无条件将对数除以温度'。 与
温度=0'——确定性/贪婪解码的标准公约 (OpenAI,Hugging Face,LLaMA.cpp都把0当作"argmax")——这是一分. 乘以零:对数成为inf'/nan'、软最大产量nan'概率;
t,多分相加. 所以,最自然的方式 要求决定性
输出崩溃而不是工作 。
- 复制步骤
导入火炬
从模型导入 GBT, GPTConfig
cfg = GPTConfig(块 大小=16个), vocab 大小=32个,n layer=1个,n 头=1个,
n embd=16, 退学=0.0, 偏向=虚假)
m = GPT( cfg). eval ()
idx = 火炬. zelos ((1, 1), dtype=torch.
m.generate( idx, max new tokens=5, 温度=0.0) # boom
实际行为
运行时错误:概率计含有 " inf " 、 " nan " 或元素 < 0
预期行为
温度=0'应进行贪婪的解码(从日志中取出argmax'),
没有坠毁——与所有其他重大取样执行一致。
根原因 GPT.generate()中的`model.py':
logits = logits [:-1,:] / 温度 # 温度 = 0 - > inf/nan
建议改正 短路"温度"==0"到"分会"前贪腐解码:
logits = logits [: -- 1, :]
如果温度 = 0.0:
idx next=ture.argmax(日志,dim=-1, keepdim=True) 互联网档案馆的存檔,存档日期2013-12-1.
其他情况:
对数=对数/温度
# 有顶- k + 多名路径
内容来源: karpathy/nanoGPT