一、温度与采样:随机性与创造力的开关

当我们调用 MiMo 这样的大语言模型 API 时,模型并非在“写作”,而是在进行一个复杂的概率计算。对于当前已生成的文本,模型会为词表中的每一个可能的“下一个词”计算一个概率分数。例如,在“今天天气真”之后,“好”、“不错”、“糟糕”可能分别拥有不同的概率。

温度(Temperature) 就是用来控制如何从这些概率中进行选择的核心参数。它作用于模型输出的原始概率分布(logits)。高温(如 temperature=1.5) 会将概率分布“平滑化”,让原本概率很低的词也有机会被选中,增加输出的随机性和创造性,但也可能带来不连贯或胡言乱语的风险。低温(如 temperature=0.2) 则会让概率分布“尖锐化”,让模型更倾向于选择概率最高的那个词,从而使输出更加确定、保守和聚焦,但也可能变得重复和乏味。

二、常见采样参数解析:你不是只有“温度”这一个旋钮

除了温度,MiMo API 通常还提供 top_p 和 top_k 等参数,它们共同构成了“采样策略”。理解它们的区别至关重要。

提示:通常建议不要同时大幅调整 temperature 和 top_p。选择其中一个作为主要调节手段,并将另一个设置为默认值(如 top_p=1.0 或 temperature=1.0),以避免不可预测的相互作用。MiMo 的默认配置(如 temperature=0.7, top_p=0.9)通常已经是一个很好的平衡点。

三、如何调优:从目标出发,而非盲试

调优不是随机地尝试数字,而应始于一个明确的目标:“我希望模型生成的内容是什么样的?”

四、代码实践:感受参数变化

下面的代码片段使用 OpenAI 的 SDK(与 MiMo API 兼容)来体验不同参数的效果。注意,你需要替换为自己的 API Key 和模型名称。

import openai

client = openai.OpenAI(api_key="YOUR_MIMO_API_KEY", base_url="YOUR_MIMO_BASE_URL")

prompt = "为一家名为‘星尘’的咖啡馆写一句广告语:"

# 低温、高top_p -> 确定、保守
response_conservative = client.chat.completions.create(
    model="mimo-chat",
    messages=[{"role": "user", "content": prompt}],
    temperature=0.2,
    top_p=1.0
)
print(f"保守模式: {response_conservative.choices[0].message.content}")

# 高温、低top_p -> 随机、创造性
response_creative = client.chat.completions.create(
    model="mimo-chat",
    messages=[{"role": "user", "content": prompt}],
    temperature=1.3,
    top_p=0.7
)
print(f"创意模式: {response_creative.choices[0].message.content}")

运行后,你可能会发现:“保守模式”的输出类似“品味醇香,尽在星尘”,而“创意模式”可能生成“在星光下沉入咖啡的海洋”这样更天马行空的句子。通过对比,你对参数的影响会有直观感受。

五、进阶提示与陷阱

首先,0 和 1 是另一类调节参数,它们通过惩罚高频词或已出现的词来抑制重复,常与温度和采样参数配合使用,可以进一步提升长文本的质量。

其次,一个常见的误区是认为“高 temperature 一定不好”。这取决于应用场景。在需要模型进行探索性思考的阶段(如设定情节方向),高温度是有益的;而在需要执行和固化结果的阶段(如生成最终文案),则需要降低温度。

最后,请记住,调优是一个实验过程。固定一个简单的测试提示,系统性地改变单一参数并对比输出,是建立直觉的最佳方法。大多数情况下,微调(从默认值上下调整 0.1-0.2)就能带来显著变化,无需走向极端。