加载中

温度(Temperature)是一个强大的参数,它控制着Claude响应的创造性或确定性程度。理解如何有效使用它可以显著改善您的AI应用程序。

Claude如何生成文本

在深入探讨温度之前,了解Claude的文本生成过程会很有帮助。当您向Claude发送类似"你怎么看?"这样的提示时,它会经历三个阶段:

  • 分词(Tokenization): 将您的输入分解成更小的块
  • 预测(Prediction): 计算可能的下一个令牌的概率
  • 采样(Sampling): 根据这些概率选择一个令牌

在上图中,您可以看到Claude如何为潜在的下一个令牌分配不同的概率。单词"about"有30%的概率,"would"有20%,以此类推。这个过程会对每个令牌重复进行,直到响应完成。

温度的作用

温度是一个介于0和1之间的小数值,它直接影响这些令牌选择的概率。可以把它想象成一个创造力调节旋钮:

  • 低温度(接近0): 使概率最高的令牌更有可能被选中
  • 高温度(接近1): 使概率在所有可能的令牌之间更均匀地分布

在温度为0时,Claude变得具有确定性——它将始终选择概率最高的令牌。在温度为1时,概率较低的令牌有更大的机会被选中,从而产生更具创造性和多样化的输出。

温度范围与使用场景

不同的任务需要不同的温度设置:

低温度(0.0 - 0.3)

  • 事实性响应
  • 编码辅助
  • 数据提取
  • 内容审核

中等温度(0.4 - 0.7)

  • 摘要总结
  • 教育内容
  • 问题解决
  • 有约束的创意写作

高温度(0.8 - 1.0)

  • 头脑风暴
  • 创意写作
  • 营销内容
  • 笑话生成

在代码中设置温度

默认情况下,Claude的温度设置为1.0,这意味着最大的创造性。您可以通过在推理配置中添加temperature来覆盖此设置:

python
def chat(messages, system=None, temperature=1.0):
    params = {
        "modelId": model_id,
        "messages": messages,
        "inferenceConfig": {"temperature": temperature}
    }
    
    if system:
        params["system"] = [{"text": system}]
    
    response = client.converse(**params)
    return response["output"]["message"]["content"][0]["text"]

温度的实际应用

这里有一个使用电影创意生成的实际示例。当温度设置为默认值(1.0)时,您可能会得到这样富有创意的响应:

"一位隐居的折纸大师发现她精致的纸艺作品在夜晚会活过来,这带领她踏上了一段神奇的旅程,去拯救她们微型世界,使其免受一个神秘阴影生物的威胁,该生物正威胁着要让它们的存在消散。"

但当您为同一提示将温度设置为0.0时,您会始终得到更可预测的响应:

"一位穿越时空的考古学家必须阻止古代文物被一位科技亿万富翁窃取,该富翁正利用这些文物建造一台利用其被遗忘力量的末日装置。"

多次运行低温度版本会产生非常相似的响应,通常会重复出现"穿越时空的历史学家"或"穿越时空的考古学家"等主题。

关键要点

温度让您能够直接控制Claude的创造力水平。当您需要一致、事实性的响应时,使用较低的温度;当您想要创造性、多样化的输出时,使用较高的温度。默认温度1.0会最大化创造性,因此对于需要精确性和一致性的任务,请考虑降低温度。