此 notebook 演示了 Chat Completions API 中 logprobs
参数的用法。启用 logprobs
后,API 会返回每个输出 token 的对数概率,以及每个 token 位置上有限数量的最有可能的 token 及其对数概率。相关的请求参数是
logprobs
: 是否返回输出 token 的对数概率。如果为 true,则返回消息内容中返回的每个输出 token 的对数概率。top_logprobs
: 一个介于 0 和 5 之间的整数,指定在每个 token 位置返回的最有可能的 token 的数量,每个 token 都带有相关的对数概率。如果使用此参数,则必须将logprobs
设置为 true。
输出 token 的对数概率表示在给定上下文的情况下,每个 token 在序列中出现的可能性。 简单来说,对数概率是 log(p)
,其中 p
= token 基于上下文中之前的 token 在特定位置出现的概率。关于 logprobs
的一些要点:
- 更高的对数概率表明 token 在该上下文中的可能性更高。这使用户能够衡量模型对其输出的置信度,或探索模型考虑的替代响应。
- 对数概率可以是任何负数或
0.0
。0.0
对应于 100% 的概率。 - 对数概率允许我们将序列的联合概率计算为各个 token 的对数概率之和。 这对于评分和对模型输出进行排名很有用。另一种常见的方法是取句子中每个 token 的平均对数概率来选择最佳生成结果。
- 我们可以检查分配给不同候选 token 的
logprobs
,以了解模型认为哪些选项是合理或不合理的。
虽然 logprobs
有广泛的用例,但本 notebook 将重点介绍其在以下方面的应用:
- 分类任务
- 大型语言模型擅长许多分类任务,但准确衡量模型对其输出的置信度可能具有挑战性。
logprobs
为每个类别预测提供相关的概率,使用户能够设置自己的分类或置信度阈值。
- 检索 (问答) 评估
logprobs
可以辅助检索应用中的自我评估。在问答示例中,模型输出一个虚构的布尔值has_sufficient_context_for_answer
,它可以作为答案是否包含在检索内容中的置信度评分。这种类型的评估可以减少基于检索的幻觉并提高准确性。
- 自动完成
logprobs
可以帮助我们决定如何在用户键入时建议单词。
- Token 高亮显示和输出字节
- 用户可以使用启用
logprobs
时内置的 token 化功能轻松创建 token 高亮显示器。此外,bytes 参数包含每个输出字符的 ASCII 编码,这对于再现表情符号和特殊字符特别有用。
- 计算困惑度
logprobs
可用于帮助我们评估模型对结果的总体置信度,并帮助我们比较来自不同提示的结果的置信度。