绝区捌--将GPT幻觉的发生率从20%以上降低到2%以下

总结:我们没有使用微调,而是结合使用提示链和预处理/后处理来将幻觉发生率降低一个数量级,但这确实需要对 OpenAI 进行 3-4 倍的调用。还有很大的改进空间!

使用 GPT 等大型语言模型面临的最大挑战之一是它们倾向于捏造信息。

这对于生成用于创意写作或头脑风暴会议的文本等用例来说可能没什么问题,但当输出用于客户支持等商业应用时,这可能是灾难性的。幻觉或虚假信息的产生在这些情况下尤其有害,并可能导致严重后果。

即使一次虚假信息的产生也可能损害公司的声誉、导致法律责任并损害客户的利益。

有几种方法可以解决这一挑战。

一种常用方法是使用微调来提高模型在特定领域数据集上的准确性。微调的问题在于,当你拥有多租户 SaaS 产品时,收集特定领域的数据集很困难,因为每个客户的用例和用户角色都略有不同。所以我们必须找到其他方法来解决这个问题。

以下是我们目前所做的工作

提示词链接(Prompt Chaining)

我们尝试的第一件事是使用提示链技术将复杂的提示分解成几个部分,并让 GPT 在每一步“检查其答案”。

例如,我们不是使用用户输入和注入的内容单独调用 GPT,而是首先要求 GPT 评估它是否可以回答问题并证明其响应的合理性。我们目前有 3 个步骤——预处理步骤、评估步骤和响应步骤。

以下是我们在评估步骤中使用的提示示例。它只是要求 GPT 回答它是否可以根据提供的内容回答问题。"""<|im_start|>system You found the following content by searching through documentation. Use only this content to construct your response. {content}<|im_end|>
<|im_start|>user First, determine if the content found is sufficient to resolve the issue. Second, respond with a JSON in the format:
{
"content_contains_answer": boolean, // true or false. Whether the information in the content is sufficient to resolve the issue.
"justification": string // Why you believe the content you found is or is not sufficient to resolve the issue.
}
The inquiry: {inquiry}<|im_end|><|im_start|>assistant {
"content_contains_answer":<|im_end|>"""

请注意,我们要求 GPT 以 JSON 格式返回答案,并使用预期结构为助手的答案提供种子。这确保我们能够解析响应,并且几乎 100% 的时间都有效。

我们还注意到,content_contains_answer即使我们不使用它做任何事情,只需要求模型提供理由就可以提高其预测的准确性。你只需要叫出 GPT 的胡说八道!

这种方法将幻觉的发生率从20%降低到了5%。


后期处理

接下来帮助我们将效率从 5% 降至 2% 的是对 GPT 的输出进行后处理。这有几个步骤:

  1. 检查 token 的 e^(logprob) 是否true低于 90%。如果是,我们重新运行评估提示并强制content_contains_answer为假。我们发现这可以减少误报,而不会对误报产生太大影响。
  2. 如果content_contains_answer为假,我们将使用返回的理由并再次调用 GPT API 来重新措辞理由以将其定位到用户。这减少了我们最终输出出现奇怪措辞(如“用户应该……”)的可能性。这不完全是幻觉,也不是最佳体验。

预处理

这是我们最近添加的步骤,使我们的幻觉率低于 2%。我们做的第一件事是让 GPT 对用户查询的意图进行分类。根据意图,我们将在评估和响应步骤中使用不同的提示。

我们还在尝试对用户输入进行额外的预处理,使其更有可能在搜索步骤中找到相关结果。这可以通过从用户的查询中提取实体并在稀疏嵌入上以更高的权重运行向量搜索来实现。这有助于解决技术性问题并涉及特定标记组合(如) ,因为对于这些情况,关键字搜索比语义搜索更有用。这一切都是通过 Pinecone 的新混合搜索功能keras.save_model实现的。

最后的想法

最后一条可能有用的提示是将内容包装在 <Content></Content> 标签中。这有助于 GPT 理解不同来源之间的差异,甚至返回稍后可以str.replace()使用链接的占位符(例如 Content1)。您还可以对注入提示的任何其他数据执行此操作。

总体而言,我们发现,结合使用提示链、预处理和后处理可以很好地降低幻觉风险并提高 GPT 的准确性。缺点是它需要更多的 API 调用,但随着最近价格下降 90%,这现在非常可行。


欢迎你分享你的作品到我们的平台上:www.shxcj.com 或者 www.2img.ai 让更多的人看到你的才华。

创作不易,觉得不错的话,点个赞吧!!!



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Python绘制QQ图并分析数据

使用Python绘制QQ图并分析数据 在这篇博客中&#xff0c;我们将探讨如何使用Python中的pandas库和matplotlib库来绘制QQ图&#xff08;Quantile-Quantile Plot&#xff09;&#xff0c;并分析数据文件中的内容。QQ图是一种常用的统计图表&#xff0c;用于检查一组数据是否服从…

C# 下sendmessage和postmessage的区别详解与示例

文章目录 1、SendMessage2、PostMessage3、两者的区别&#xff1a; 总结 在C#中&#xff0c;SendMessage和PostMessage是两个用于Windows编程的API&#xff0c;它们用于向窗口发送消息。这两个方法都位于System.Windows.Forms命名空间中&#xff0c;通常用于自动化Windows应用程…

科普文:分布式系统的架构设计模式

一、分布式架构基本概念 分布式架构是一种计算机系统设计方法&#xff0c;它将一个复杂的系统划分为多个自治的组件或节点&#xff0c;并通过网络进行通信和协作。每个组件或节点在功能上可以相互独立&#xff0c;但又能够通过消息传递或共享数据来实现协同工作。分布式架构主要…

值传递与引用传递:深入理解Java中的变量赋值和参数传递机制

在Java中&#xff0c;理解值传递&#xff08;值拷贝&#xff09;与引用传递&#xff08;地址拷贝&#xff09;之间的区别对于正确处理数据结构和对象至关重要。本文将通过示例代码深入探讨这两种机制&#xff0c;并解释它们如何影响程序的行为。 值传递&#xff08;值拷贝&…

虚拟机因断电进入./#状态解决办法

现象&#xff1a; 解决&#xff1a;先查看错误日志&#xff1a;journalctl -p err -b查看自己虚拟机中标黄部分的名字 之后运行&#xff1a;xfs_repair -v -L /dev/sda #这里sda用你自己标黄的 最后重启 reboot 即可。

在Linux上运行macOS:深度解析OSX-KVM项目

在Linux上运行macOS&#xff1a;深度解析OSX-KVM项目 在现代开发和测试环境中&#xff0c;能够在不同操作系统之间无缝切换是至关重要的。对于开发者而言&#xff0c;如何在Linux系统上运行macOS一直是一个挑战。然而&#xff0c;OSX-KVM项目为我们提供了一种高效的解决方案&a…

R包:ggsci期刊配色

介绍 不同期刊配色大多数时候不一样&#xff0c;为了更好符合期刊图片颜色的配色&#xff0c;有人开发了ggsci这个R包。它提供以下函数&#xff1a; scale_color_palname() scale_fill_palname() 对应不同期刊的color和fill函数。 导入数据R包 library("ggsci")…

2024年全面导入APS系统:提升工厂生产效率的策略

在快速变化的市场环境中&#xff0c;急单、插单、订单设计变更、订单交期变更、订单取消、供应链移动等问题已经是制造业时时刻刻都在面对的问题&#xff0c;在订单量下降的市场环境下&#xff0c;企业本身的业务工作反而越来越忙碌。在此背景下&#xff0c;当今制造业企业亟需…

【pytorch24】Visdom可视化

TensorboardX pytorch有一个工具借鉴了tensorboard pip install tensorboardX 有查看变量的数值、监听曲线等功能 如何使用 新建SummaryWriter()实例 要把监听的数据&#xff0c;比如说要监听dummy_s1[0]&#xff08;y 坐标&#xff09;存放到data/scalar1中&#xff0c;…

【React】React18 Hooks 之 useContext

目录 useContext1、Provider和 useContext2、Provider 和Consumer3、Provider 嵌套4、React.createContext提供的Provider和class的contextType属性5、读、写Context&#xff08;1&#xff09;父组件修改Context&#xff08;2&#xff09;子组件修改Context 好书推荐 useContex…

NPDP有什么价值?究竟值不值得去考?

NPDP其实就是产品经理国际资格认证&#xff0c;是美国产品开发管理协会发起的&#xff0c;集理论、方法和实践一体&#xff0c;在新产品开发方面有一个很全面的知识体系。是国际公认的新产品开发专业认证&#xff0c;具有权威性。 NPDP能够很好地帮你在做新产品的道路上少走弯…

【已解决】腾讯云安装了redis,但是本地访问不到,连接不上

汇总了我踩过的所有问题。 查看配置文件redis.conf 1、把bind 127.0.0.1给注释掉&#xff08;前面加个#就是&#xff09;或者改成bind 0.0.0.0&#xff0c;因为刚下载时它是默认只让本地访问。&#xff08;linux查找文档里的内容可以输入/后面加需要匹配的内容&#xff0c;然后…

clickhouse-jdbc-bridge rce

clickhouse-jdbc-bridge 是什么 JDBC bridge for ClickHouse. It acts as a stateless proxy passing queries from ClickHouse to external datasources. With this extension, you can run distributed query on ClickHouse across multiple datasources in real time, whic…

Java基础-组件及事件处理(上)

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 Swing 概述 MVC 架构 Swing 特点 控件 SWING UI 元素 JFrame SWING 容器 说明 常用方法 示例&a…

服务器信息获取工具

功能介绍 SSH连接到远程服务器&#xff1a; 用户可以输入目标服务器的IP地址、用户名、密码以及SSH端口&#xff08;默认22&#xff09;。 工具会尝试连接到远程服务器&#xff0c;并在连接失败时显示错误信息。 运行命令并返回输出&#xff1a; 工具可以在远程服务器上运…

python (必看)10个提升接口自动化编写效率的脚本!

亲爱的开发者们&#xff0c;&#x1f44b; 在快速迭代的软件开发周期中&#xff0c;接口自动化测试扮演着至关重要的角色。今天&#xff0c;我们将分享10个实用的Python小脚本&#xff0c;它们能够显著提升你编写接口自动化测试的效率。无论是初学者还是资深工程师&#xff0c;…

算法体系-26 第二十六节:第26节:单调栈结构 (5节)

一 单调栈知识讲解 1.1描述 一个数组里面想的到每个位置与他最近的左边和右边比他小的最近的信息 1.2 分析 通过单调栈的特点&#xff0c;for遍历数组中的每个数&#xff0c;当前数来的时候对比单调栈中的数进行每个数的左右判断完满足条件的进行更新到当前i种的 int[][] re…

采用3种稀疏降噪模型对心电信号进行降噪(Matlab R2021B)

心电信号采集自病人体表&#xff0c;是一种无创性的检测手段。因此&#xff0c;心电信号采集过程中&#xff0c;本身也已经包含了机体内部其他生命活动带来的噪声。同时&#xff0c;由于采集设备和环境中存在电流的变化&#xff0c;产生电磁发射等物理现象&#xff0c;会对心电…

学习测试7-ADB的使用

ADB是什么&#xff1f; ADB&#xff0c;即 Android Debug Bridge&#xff08;安卓调试桥&#xff09; 是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具&#xff0c;它可为各种设备操作提供便利&#xff0c;如安装和调试应用&#xff0c;并提供对 Unix shell&…

最新全国1-5级标准河流水系矢量数据

2023最新全国一级&#xff5e;五级标准河流水系 shp 矢量数据 2023最新全国一级&#xff5e;五级标准河流水系 shp 矢量数据 Arcgis 五级河流水系全国合集和按省区分 坐标系&#xff1a;wgs84 更新年份&#xff1a;2023年 包含20230SM提取全国超详细水体 Arcgis 矢量数据&a…