Temperature 通过缩放 logits 来控制概率分布的"尖锐度": `logits = logits[:, -1,:]/ temperature` 1. temperature = 1.0(默认值) - 不改变 logits,保持原始概率分布 - 平衡的随机性 2. temperature < 1.0(例如 0.5) - logits 被放大(除以小于1的数) - 经过 softmax 后,概率分布更加尖锐/集中 - 模型更倾向选择最可能的 token - 输出更确定、保守、重复性高 3. temperature > 1.0(例如 1.5) - logits 被缩小(除以大于1的数) - 经过 softmax 后,概率分布更加平滑/均匀 - 模型会考虑更多可能性较低的 token - 输出更多样、创造性、但可能不连贯 是一个用于控制模型回答的"随机性"或"创造性"的参数。 - 当温度接近 0 时,模型更倾向于选择概率最高的词语,回答会相对保守、确定性较高且重复率可能较高。 - 当温度较高时,模型回答会更具多样性和创意,可能更有"发散思维",但同时不确定性也增加,回答可能显得更不稳定。 结果验证:`model_gpt.generate` 将基于 GPT-2 继续生成文本。`max_length=50` 指定总长度上限(包含初始prompt的tokens)。对贪婪搜索,模型每一步都选概率最高的词,输出确定;对随机采样,我们设置了 `do_sample=True`,并使用 top-k 和 top-p (nucleus) 采样方法来引入随机选择(top_k=50表示每步仅从概率最高的50个词中抽样,top_p=0.9表示从累计概率0.9的候选中抽样),这些技术通常使文本更有趣且避免太离谱的词。 您会看到两段不同的续写,例如: ```Java 贪婪生成: In a distant future, humans and robots are not the only ones who have been living in the past. The world is a place where people are not allowed to be... 随机采样生成: In a distant future, humans and robots wage war side by side. The last remnants of humanity dwell in bunkers beneath a scarlet sky, while autonomous machines patrol the wastelands... ```