跳转到内容

LLM推理参数

1. 一、 控制随机性与创造力 (Randomness & Creativity)

Section titled “1. 一、 控制随机性与创造力 (Randomness & Creativity)”

这三个参数(Temperature, Top_p, Top_k)决定了模型如何选择下一个 token(字/词)。

  • 定义: 控制模型预测概率分布的平滑程度。
  • 通俗理解: “创造力旋钮”“胆量值”
  • 取值范围: 通常是 0 到 2(不同模型略有不同)。
    • 0 (或极低): 贪婪采样(Greedy Sampling)。模型总是选择概率最高的那个词。输出非常 确定、死板、重复,适合代码生成、数学解题。
    • 较低 (0.1 - 0.5): 严谨,适合事实性问答、摘要。
    • 中等 (0.7 - 0.8): 默认值,平衡了连贯性和创造性。
    • 较高 (1.0 - 2.0): 增加随机性,模型会选择一些“不那么可能”的词。适合创意写作、头脑风暴,但容易出现幻觉或胡言乱语。
  • 定义: 模型不看所有可能的词,而是只从累积概率达到 $P$ 的前几个词中进行选择。
  • 通俗理解: “智能候选池”
  • 工作原理: 假设 $Top_p = 0.9$。模型会将所有可能的下一个词按概率排序,然后从高到低加起来,直到总概率达到 90%。它只在这 90% 的词里随机选,把剩下那 10% 概率极低、极不通顺的词直接切掉。
  • 作用: 相比 Temperature,它能更稳健地剔除完全不靠谱的词,同时保留语言的多样性。
  • 建议: 一般建议 Temperature 和 Top_p 只调其中一个,不要同时大幅调整。
  • 定义: 无论概率如何,只从概率最高的 $K$ 个词中进行选择。
  • 通俗理解: “硬性入围名单”
  • 工作原理: 如果 $Top_k = 40$,模型只看概率榜单前 40 名的词,第 41 名即使概率只差一点点也会被无视。
  • 特点: Gemini 和一些开源模型很喜欢用这个参数。它能有效防止模型生成极度生僻或离谱的词,使输出更聚焦。
  • 优先级: 通常先生效 Top_k(筛选前 N 名),再生效 Top_p(在 N 名里选累积概率),最后应用 Temperature。

2. 二、 控制长度与停止 (Length & Stopping)

Section titled “2. 二、 控制长度与停止 (Length & Stopping)”

2.1. Max Output Tokens (最大输出 Token 数)

Section titled “2.1. Max Output Tokens (最大输出 Token 数)”
  • 定义: 限制模型一次回复生成的最大长度。
  • 作用:
    • 省钱: 防止模型废话连篇消耗额度。
    • 强制简洁: 强迫模型在有限字数内说完。
  • 注意: 如果设置太短(如 50),模型的话可能会被强行截断(话说一半)。
  • 定义: 告诉模型“遇到这些字符就立刻闭嘴”。
  • 应用场景:
    • 角色扮演: 防止模型扮演用户。设置 ["User:", "Human:"] 为停止词。
    • 格式控制: 生成 JSON 时,可以设置 } 为停止词(虽然现在有 JSON Mode 了)。

3. 三、 控制重复度 (Repetition Control)

Section titled “3. 三、 控制重复度 (Repetition Control)”

这两个参数用于防止模型像复读机一样重复某句话或某个词。

  • 定义: 根据一个词 已经出现的次数 来惩罚它。
  • 作用: 次数越多,惩罚越重。这会降低模型逐字重复同一句话的可能性。
  • 适用: 防止模型陷入“复读机死循环”。
  • 定义: 只要一个词 出现过(哪怕只有一次),就惩罚它。
  • 作用: 鼓励模型使用 新词,转换话题,而不是总是围绕同一个主题兜圈子。
  • 适用: 创意写作,或者要求模型从不同角度论述。

  • 作用: 尝试让输出 可复现
  • 原理: 计算机的随机数是伪随机的。如果你固定 Seed 值(例如 12345)并保持其他参数不变,模型(理论上)每次应该生成完全相同的文本。这对于测试和调试非常有用。

4.2. System Instruction / System Prompt (系统提示词)

Section titled “4.2. System Instruction / System Prompt (系统提示词)”
  • 作用: 设定模型的“人设”、“岗位职责”或“底层规则”。
  • 位置: 在用户对话之前输入,权重通常很高。
  • 例子: “你是一个资深的 Python 程序员,只输出代码,不解释。”
  • 作用: 手动干预特定 Token 的出现概率。
  • 用法: 你可以指定某个词的得分为 -100(绝对禁止它出现)或 +100(强制它出现)。
  • 场景: 严格的关键词过滤或强制包含。

如果你想要…调整建议
精确的数学/代码答案Temperature = 0, Top_p = 0.1
标准的文案/客服回复Temperature = 0.7, Top_p = 0.9
天马行空的创意故事Temperature = 1.2, Presence Penalty > 0
防止模型车轱辘话Frequency Penalty > 0.5
防止模型废话太多Max Output Tokens 调小
稳定的测试结果固定 Seed 值