3个控制LLM生成随机性的语言模型参数

你可能已经使用 ChatGPT 或任何其他主要的LLM来构建系统、执行分类任务、回答问题或将其用作各种创造性和信息性任务的辅助。 然而,控制这些模型的输出以满足特定要求或匹配所需的风格至关重要。 在本文中,我们将重点关注影响语言模型输出的三个基本参数:top-k、top-p 和温度。

在我们深入了解这些参数之前,我们需要了解贪婪采样(greedy sampling)和随机采样(random sampling)之间的区别。 贪婪采样优先考虑最高概率的标记,确保输出集中,而随机采样(使用 top-k 或 top-p)添加随机性元素,从而产生更加多样化和创造性的输出。 现在大多数 LLM(例如 GPT、Llama-2、Claude 等)都使用贪婪采样,因此我们需要 top-p 和 top-k 参数来控制这种随机性。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包

1、控制随机性:Top-k 和 Top-p

top-k 参数将模型的预测限制为生成的每个步骤中前 k 个最可能的标记。 通过设置 k 的值,你可以指示模型仅考虑 k 个最有可能的标记。 这可以帮助微调生成的输出并确保其遵循特定的模式或约束。

Top-p,也称为核心采样,控制生成令牌的累积概率。 该模型会生成令牌,直到累积概率超过所选阈值 (p)。 这种方法允许对生成的文本的长度进行更动态的控制,并在必要时通过包含不太可能的标记来鼓励输出的多样性。

注意:Top-k 通过考虑固定数量的最可能标记来提供受控随机性,而 top-p 允许动态控制所考虑的标记数量,从而导致生成的文本具有不同级别的多样性。

让我们考虑一个只有 4 个单词和相关概率的简化词汇表:

  • 位置 1 — blue, 概率:0.3
  • 位置 2 — limit,概率:0.4
  • 位置 3 — clear, 概率:0.2
  • 位置 4 — overcast:0.1
任务:用 1 个词完成句子 - "The sky is…."

请注意,在我们的场景中,LLM 的生成配置是随机采样,而不是贪婪的。 因此,有 40% 的机会选择 limit,但由于随机(加权)采样,模型选择了第一个位置的单词 blue

我们将探讨调整 top-k 和 top-p(核采样)参数将如何影响模型在此受限词汇中的响应。

Top-k 参数:

  • 设置Top-k = 2(每一步仅考虑前 2 个可能的单词)
  • 将 top-k 参数设置为 2 时,模型在文本生成过程中的每一步将仅考虑前 2 个可能的单词。
  • 因此,生成的输出将由限制或蓝色组成。

Top-p参数:

  • 设置Top-p= 0.2(考虑令牌直到累积概率达到 0.2)
  • 因此,在这种情况下,所有情况下生成的输出都只会是蓝色。

3、温度

温度参数还用于控制输出的随机性。 但是,它会影响模型为下一个标记计算的概率分布的形状,而不是限制标记选择。 温度值是一个缩放因子,应用于模型的最终 softmax 层,影响下一个标记的概率分布的形状。 较高的温度 (~1) 会导致生成的文本具有更多的随机性和多样性,因为模型更有可能探索更广泛的可能标记。 相反,较低的温度 (<1) 会产生更加集中和确定性的输出,强调最可能的标记。

4、结束语

对于创造性任务,较高的 top-p 和温度值会鼓励多样性,有助于创造力。 适度的 top-k 值可以平衡创造力和连贯性。

对于确定性输出,较低的 top-k 值(k = 1 或 2)、非常低的 top-p 值(接近 0)以及接近 0 的低温可确保最可能和确定性的响应。


原文链接:3个控制随机性的LLM参数 - BimAnt

你可能感兴趣的:(人工智能)