你可能已经使用 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虚拟轴心开发包
top-k 参数将模型的预测限制为生成的每个步骤中前 k 个最可能的标记。 通过设置 k 的值,你可以指示模型仅考虑 k 个最有可能的标记。 这可以帮助微调生成的输出并确保其遵循特定的模式或约束。
Top-p,也称为核心采样,控制生成令牌的累积概率。 该模型会生成令牌,直到累积概率超过所选阈值 (p)。 这种方法允许对生成的文本的长度进行更动态的控制,并在必要时通过包含不太可能的标记来鼓励输出的多样性。
注意:Top-k 通过考虑固定数量的最可能标记来提供受控随机性,而 top-p 允许动态控制所考虑的标记数量,从而导致生成的文本具有不同级别的多样性。
让我们考虑一个只有 4 个单词和相关概率的简化词汇表:
任务:用 1 个词完成句子 - "The sky is…."
请注意,在我们的场景中,LLM 的生成配置是随机采样,而不是贪婪的。 因此,有 40% 的机会选择?limit
,但由于随机(加权)采样,模型选择了第一个位置的单词?blue
。
我们将探讨调整 top-k 和 top-p(核采样)参数将如何影响模型在此受限词汇中的响应。
Top-k 参数:
Top-p参数:
温度参数还用于控制输出的随机性。 但是,它会影响模型为下一个标记计算的概率分布的形状,而不是限制标记选择。 温度值是一个缩放因子,应用于模型的最终 softmax 层,影响下一个标记的概率分布的形状。 较高的温度 (~1) 会导致生成的文本具有更多的随机性和多样性,因为模型更有可能探索更广泛的可能标记。 相反,较低的温度 (<1) 会产生更加集中和确定性的输出,强调最可能的标记。
对于创造性任务,较高的 top-p 和温度值会鼓励多样性,有助于创造力。 适度的 top-k 值可以平衡创造力和连贯性。
对于确定性输出,较低的 top-k 值(k = 1 或 2)、非常低的 top-p 值(接近 0)以及接近 0 的低温可确保最可能和确定性的响应。