08|温度与采样:为什么同一句话结果不同

08|温度与采样:为什么同一句话结果不同 本篇目标学会控制 AI 的“脑洞”。无论是想要它严谨地写代码还是天马行空地写文案你只需要调这一个参数。一、为什么它每次说的都不一样你有没有发现同样的 Prompt“给我讲个笑话”你发给 AI 两次它会讲两个不同的笑话。但如果你问它“11等于几”它永远回“2”。这是因为 AI 生成内容时引入了随机性Randomness。而控制这个随机性的开关就叫Temperature温度。1. 它是怎么“猜”下一个词的当你说“今天天气很”AI 会预测下一个词的概率“好”50%“差”30%“热”10%“棒”5%“紫色”0.001%离谱但存在2. 温度Temperature的作用温度参数通常在 0.0 到 1.0 之间有的模型到 2.0决定了 AI敢不敢选概率低的词。低温Temperature ≈ 0保守派。AI 只选概率最高的词50% 的“好”。结果非常稳定、严谨、重复。适合写代码、数学题、逻辑推理、JSON 格式化。高温Temperature ≈ 0.8 ~ 1.0狂野派。AI 有机会选概率较低的词10% 的“热”甚至 5% 的“棒”。结果多样化、有创意、但也容易胡说八道。适合写小说、创意文案、头脑风暴。二、另一个开关Top-p核采样除了温度还有一个参数叫Top-p也叫 Nucleus Sampling。它的作用和温度类似但机制不同。建议新手只调一个不要两个一起调。Top-p 0.1只在概率总和为前 10% 的词里挑。效果接近低温稳Top-p 0.9在概率总和为前 90% 的词里挑。效果接近高温浪简单记忆想稳Temperature 设 0。想浪Temperature 设 0.8。Top-p 一般默认 1.0 不动它或者设 0.9。三、写代码该用什么温度这是新手最容易踩的坑。写代码千万别用高温1. 为什么代码要“冷”代码是逻辑严密的语言。def后面大概率跟函数名。if后面大概率跟条件。如果 AI 突然“有创意”了一下选了一个概率极低的词你的代码就跑不通了Syntax Error。2. 推荐设置写代码CodingTemperature 0或0.1。我们要的是准确、可复现。代码解释ExplanationTemperature 0.3。稍微自然一点不要像机器人念经。写测试数据Test DataTemperature 0.7。这时候需要一点随机性生成各种奇奇怪怪的名字和地址。四、如何调整这些参数1. 在网页版Chat里ChatGPT / Claude通常不让你调。它们默认设置在 0.6 ~ 0.7 左右为了兼顾聊天和干活。所以有时候写代码会不稳定。DeepSeek 网页版在输入框下面有个“深度思考R1”开关或者在设置里能找到“温度”。2. 在 IDE / API 里Cursor / VS Code 插件在设置Settings里搜Temperature通常默认是 0因为它知道你是来写代码的。API 调用这是最灵活的。responseclient.chat.completions.create(modelgpt-4o,messages[...],temperature0.0# 在这里改)本篇产出场景化参数推荐表以后调用 API 或设置 Agent 时查这张表任务场景TemperatureTop-p理由代码生成/补全0.0 - 0.10.1逻辑必须严密拒绝随机错误。数学解题0.00.111 必须等于 2。数据提取 (JSON)0.00.1格式错一点就解析失败。代码解释/文档0.3 - 0.50.5需要通顺的人话但不要太发散。文案润色/翻译0.70.8需要词汇丰富地道的表达。头脑风暴/创意0.9 - 1.00.9给我惊喜哪怕是惊吓。五、实战演示温度对代码的影响任务写一个 Python 函数计算斐波那契数列。Temperature 0.0稳如老狗deffibonacci(n):ifn1:returnnelse:returnfibonacci(n-1)fibonacci(n-2)非常标准教科书式的写法。Temperature 1.2开始发癫deffib_seq_generator_cool(num):# 嘿让我们来算算兔子a,b0,1result[]whileanum:result.append(a)a,bb,ab# 哇哦魔法发生的地方returnresult变量名变奇怪了加了奇怪的注释甚至逻辑可能变成了“生成小于 num 的序列”而不是“第 n 项”。结论写代码请保持冷静低温。下一步搞懂了“怎么让它说”下一章我们要搞懂“它到底在想什么”。LLM 是怎么被训练出来的为什么它不是在“查数据库”而是在“推理”这将彻底颠覆你对 AI 的认知。