OpenAI GPT 模型 API 接口新增参数 top_logprobs 和 logprobs

news/2024/5/20 8:08:18 标签: OpenAI, ChatGPT, API 调用, top_logprobs, logprobs

文章目录

  • 一、前言
  • 二、主要内容
  • 三、总结

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


一、前言

在最新的 OpenAI 官方 APIs 文档中,Create chat completion 中新增了 logprobs>top_logprobslogprobs 这两个关键参数。

在这里插入图片描述

官方文档地址:https://platform.openai.com/docs/api-reference/chat/create

  • logprobs:是否返回 output tokens 的对数概率(布尔类型,默认为 False)。如果为真,则返回消息内容中返回的每个 output token 的对数概率。目前 gpt-4-vision-preview 模型还不支持此选项。
  • logprobs>top_logprobs:一个介于 0 到 5 之间的整数,指定在每个 token 位置返回最有可能的 tokens,并且每个 token 都有一个关联的对数概率。如果使用了这个参数,logprobs 就必须设置为 True

显然,这两个参数被设计为协同工作。理论上,调整 logprobs>top_logprobslogprobs 不应导致输出的 tokens 数量增加,从而避免了额外的 API 调用成本。


二、主要内容

OpenAI 的 GPT 模型 API 接口新增的 logprobs>top_logprobslogprobs 参数可以帮助我们理解和调试大模型的输出结果,减轻幻觉问题,提高输出的确定性和可靠性。

分享要点:

  • OpenAI 的 GPT 模型 API 接口新增的 logprobs>top_logprobslogprobs 参数可帮助理解和调试大语言模型的输出。返回每个 token 及其后续 n 个单词的概率,判断是否输出幻觉结果。
  • 使用这两个参数可减轻大模型幻觉问题。通过设置合适的 temperature 值和观察每个 token 的概率,判断输出的确定性和可靠性,避免与直觉不符的结果。
  • 在实际应用中,这两个参数非常有价值。聊天应用可设置较高 temperature 值,增加多样性;回答科学问题可设置较低 temperature 值,避免错误信息。
  • logprobs>top_logprobslogprobs 参数提高了大模型应用的可控性,之前无法获得每个 token 位置返回最有可能的 tokens。
  • 通过困惑度解释生成结果具有一定应用价值,根据每个 token 的对数概率计算困惑度,判断输出的确定性。
  • 这两个参数降低幻觉问题,提高输出的确定性,增强模型的实用性和可靠性。在实际应用中,可以根据需求和场景设置参数,以达到最佳输出效果和应用效果。

这个 Notebook 演示了在「Create chat completion API」中使用 logprobs 参数。启用了 logprobs,则 API 将返回每个输出令牌的对数概率,以及在每个令牌位置上最有可能的有限数量的令牌及其对数概率。logprobs 的关键点:

  • 更高的对数概率表明在该上下文中 token 生成的可能性更大。
  • logprob 可以是任何负数或 0.0,0.0 对应于 100% 概率。
  • logprobs 允许我们计算作为对数概率的单个 token 的总和的序列的联合概率
  • 此外,还重点介绍了 logprobs 在分类任务、检索评分和自动补全中的应用,以及如何基于 logprobs 评估模型的置信度和模型对特定问题的捕捉程度。

三、总结

这篇博客介绍了如何使用 Chat Completions API 的 logprobslogprobs>top_logprobs 参数来获取输出 tokens 的概率信息,以及如何利用这些信息来实现不同的应用场景。这篇博客的要点有:

  • logprobs 参数的作用logprobs 参数可以让 API 返回每个输出 token 的对数概率,以及每个 token 位置的最有可能的几个候选 tokens 及其对数概率。这些信息可以帮助用户评估模型的置信度,探索模型的备选响应,计算输出序列的整体概率,以及处理特殊字符或表情符号等。
  • logprobs 参数的用例logprobs 参数可以用于多种场景,例如:
    • 分类任务logprobs 参数可以提供每个类别预测的概率,让用户可以设置自己的分类或置信阈值。
    • 检索任务logprobs 参数可以用于自我评估检索内容是否包含足够的信息来回答问题,从而减少基于检索的幻觉和提高准确性。
    • 自动完成任务logprobs 参数可以用于动态地推荐下一个单词或 token,但只在模型对下一个单词很有把握的时候。
  • bytes 参数的作用:bytes 参数可以返回每个输出 token 的 ASCII(十进制 utf-8)值,这些值可以用于编码和解码每个 token,特别是包含表情符号或特殊字符的 token。

📚️ 参考链接:

  • OpenAI 的 GPT 模型 API 接口新增的 logprobs>top_logprobslogprobs 参数有什么用?为什么说可以减轻大模型幻觉问题
  • OpenAI Cookbook - Using logprobs
  • API reference - Create chat completion
  • 沈向洋:致 AI 时代的我们 —— 请不要忽视写作的魅力

http://www.niftyadmin.cn/n/5288480.html

相关文章

LLaMA-2 下载demo使用

LLaMA-2 下载&demo使用 1. LLaMA-2 下载&demo使用1.1 meta官网1.2 huggingface1.3 其他源1.4 huggingface下载模型和数据加速 1. LLaMA-2 下载&demo使用 1.1 meta官网 llama2下载 在meta的官网 Meta website 进行下载申请(注意地区不要选择China会被…

写一个java状态模式的详细实例

以下是一个示例的 Java 状态模式实现: java Copy code // 定义状态接口 interface State { void handleState(Context context); } // 具体状态类 1 class ConcreteState1 implements State { public void handleState(Context context) { System…

Linux操作系统基础(二)系统的基础设置

结合上一节内容,这一节就对一些常见的linux操作设置进行讲解,内容有限,只做引导和抛砖引玉。 一、输入法的安装和设置 Linux 中安装中文输入法的方法有很多,常用的有以下几种: 使用软件包管理器安装 大多数 Linux …

关于:云原生

【引言】 云原生是近年来兴起的一种软件开发和部署的理念和方法,它旨在将应用程序设计和构建为以云为基础的环境中运行。云原生的核心原则是实现敏捷性、可扩展性和弹性,以便应对不断变化的需求和规模。 【云原生的定义】 云原生是指将应用程序设计和构…

西南科技大学计算机网络实验四(交换机基本配置与VLAN配置)

一、实验目的 熟悉交换机的各种基本配置与VLAN配置。 二、实验环境 使用RouterSim Network Visualizer软件来模拟网络设备与网络环境。 三、实验内容 1、交换机的基础配置 2、单台交换机上的简单VLAN设置 3、多台交换机上进行VLAN设置 四、实验步骤 4.1 交换机的基础配置…

TypeScript学习(面试篇)

在当今的 Web 开发世界中,TypeScript 作为一种强大的工具为自己赢得了一席之地,它弥补了 JavaScript 的灵活性和静态类型语言的鲁棒性之间的差距(至少在 JavaScript 实现自己的类型之前)。 随着技术格局的不断发展,对…

中国发电厂分布POI数据,shp矢量数据和excel格式均有,已清洗加工,可直接用于数据分析

数据名称: 中国发电厂分布poi数据 数据格式: shpexcel 数据几何类型: 点 数据坐标系: WGS84 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1mc名称2idid3lon经度4lat纬度5fdlx发电类型6fdlxbc发电类型别称7jcsj建成时间8ssqlr所属权利人…

macos Apple开发证书 应用签名p12证书 获取生成方法 codesign 证书获取

在开发macos应用的时候必须要对自己开发的应用进行签名才能使用, 下面介绍个人如何获取Apple开发签名证书. 必备条件, 你需要先安装 xcode , 注册一个苹果开发者账号 免费的就可以, 以下为获取流程 You need to create a cert through xcode. Additionally, you need to have…