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

news2024/10/1 23:31:29

总结:我们没有使用微调,而是结合使用提示链和预处理/后处理来将幻觉发生率降低一个数量级,但这确实需要对 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.coloradmin.cn/o/1912839.html

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

相关文章

328. 奇偶链表

https://leetcode.cn/problems/odd-even-linked-list/https://leetcode.cn/problems/odd-even-linked-list/ 解题思路&#xff1a; 把第一个和第二个节点分别作为奇数、偶数的头节点&#xff0c;当遇到奇节点&#xff0c;删除&#xff0c;并插入到奇数头节点后&#xff0c;这样…

【深度学习基础】环境搭建 Linux报错bash: conda: command not found...

目录 一、 问题描述二、 解决方法1. 在.bashrc文件中添加环境变量2. 卸载重装anconda 三、总结 一、 问题描述 在linux环境下安装anaconda时候报错&#xff1a;bash: conda: command not found… 二、 解决方法 1. 在.bashrc文件中添加环境变量 参考链接&#xff1a;【解决】…

HTML语言常见标签

语法 HEAD部分的HTML标签 1 标题标签 <title>标题内容</title> 2 段落标签 <meta charset"utf-8"/> BODY部分的HTML标签 1标题标签&#xff08;独占一行&#xff09;<h1>标题内容</h1> 2段落标签&#xff08;独占一行&#xff09;…

AI论文作图——如何表示模型参数冻结状态

一、LOGO &#x1f525; win10win11 ❄️ win10win11 二、注意事项&#xff1a; 根据电脑系统&#xff0c;选择对应的版本。 参考&#xff1a; 【AI论文作图】如何表示模型参数冻结状态&#xff1f;

51单片机-第二节-数码管

一、数码管介绍&#xff1a; 1.什么是数码管&#xff1f; 多个LED组合成8字显示器。 2.一位数码管的引脚&#xff08;只有一个8&#xff09;&#xff1a; 数码管的引脚为1-10&#xff0c;其中公共极为3,8&#xff0c;其余八位分别对应一个二极管&#xff0c;如下图&#xff…

第一个基于FISCOBCOS的前后端项目(发行转账)

本文旨在介绍一个简单的基于fiscobcos的前后端网站应用。Springbootjs前后端不分离。 所使用到的合约也是一个最基本的。首先您需要知道的是完整项目分为三部分&#xff0c;1是区块链平台webase搭建&#xff08;此项目使用节点前置webase-front即可&#xff09;&#xff0c;2是…

论文阅读2-《Dynamic Multimodal Fusion》

摘要 &#xff08;DynMM&#xff09;&#xff0c;一种新的方法&#xff0c;自适应融合多模态数据和 d在推理过程中生成依赖于数据的前向路径。为此&#xff0c;我们提出了一种门控功能来提供基于多模态特征和一个的模态级或融合级决策提高计算效率的源感知损失函数。 细节 模…

Java技术栈总结:JVM虚拟机篇

一、Java的四种引用类型 1、强引用 最常见的引用&#xff0c;类似Object obj new Object()、String str “hello”。如果一个对象具有强引用&#xff0c;垃圾回收器绝对不会回收它。即使抛出“OutOfMemoryError”错误&#xff0c;程序终止&#xff0c;也不会随意回收具有强引…

【鸿蒙学习笔记】使用动画

官方文档&#xff1a;使用动画 目录标题 属性动画&#xff1a;通用属性发生改变时而产生的属性渐变效果animationanimateTo自定义属性动画 AnimatableExtend 转场动画&#xff1a;是页面或组件的切换动画 , 显示/隐藏 切换时的动画出现/消失转场&#xff1a;实现一个组件出现或…

数据可视化之智慧农业的窗口与引擎

在科技日新月异的今天,农业作为国民经济的基础产业,正逐步向智能化、数字化转型。农业为主题的数据可视化大屏看板,作为这一转型过程中的重要工具,不仅为农业管理者提供了全面、实时的农田信息,还促进了农业资源的优化配置和农业生产效率的提升。本文将深入探讨农业数据可…

Linux_网络编程_TCP

服务器客户端模型&#xff1a; client / server brow / ser b / s http p2p socket——tcp 1、模式 C/S 模式 》服务器/客户端模型 server :socket()-->bind()--->listen()-->accept()-->recv()-->close()client :socket()-->conn…

Mock 测试技术

一、Mock 类框架的使用场景 在实际软件开发中&#xff0c;要进行测试的方法存在外部依赖&#xff08;如 db&#xff0c;redis&#xff0c;第三方接口调用等&#xff09;&#xff0c;这些外部依赖可能存在各种问题&#xff0c;例如不稳定、缺乏数据、难以模拟等等&#xff0c;所…

Python29 Tensorflow的基本知识和使用

1. TensorFlow TensorFlow 是一个开源的机器学习框架&#xff0c;由 Google Brain 团队开发。它用于数据流图的计算&#xff0c;尤其擅长深度学习任务。在 TensorFlow 中&#xff0c;数据流图&#xff08;Data Flow Graph&#xff09;是其核心概念之一&#xff0c;它定义了计算…

(图文详解)小程序AppID申请以及在Hbuilderx中运行

今天小编给大家带来了如何去申请APPID&#xff0c;如果你是小程序的开发者&#xff0c;就必须要这个id。 申请步骤 到小程序注册页面&#xff0c;注册一个小程序账号 微信公众平台 填完信息后提交注册 会在邮箱收到 链接激活账号 确认。邮箱打开链接后&#xff0c;会输入实…

宜春旅游集散中心展厅OLED透明屏方案设计

一、项目概述 为提升宜春旅游集散中心展厅的现代化展示水平&#xff0c;增强游客的参观体验&#xff0c;我们计划在展厅的核心区域引入OLED透明屏技术。该方案旨在通过高科技的视觉呈现方式&#xff0c;将展品信息以虚拟与现实相结合的方式展现&#xff0c;打造出一个既具科技感…

Junior.Crypt.2024 CTF Web方向 题解WirteUp 全

Buy a cat 题目描述&#xff1a;Buy a cat 开题 第一思路是抓包改包 Very Secure App 题目描述&#xff1a;All secrets become clear 开题 乱输一个密码就登陆成功了&#xff08;不是弱口令&#xff09; 但是回显Your role is: user 但是有jwt&#xff01;&#xff01;&a…

【ROS2】中级-编写动作服务器和客户端(C++)

目标&#xff1a;用 C实现一个动作服务器和客户端。 教程级别&#xff1a;中级 时间&#xff1a;15 分钟 目录 背景 先决条件 任务 1. 创建 custom_action_cpp 包2. 编写动作服务器3. 编写动作客户端 摘要 相关内容 背景 动作是 ROS 中异步通信的一种形式。动作客户端向动作服务…

每日Attention学习9——Efficient Channel Attention

模块出处 [CVPR 20] [link] [code] ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks 模块名称 Efficient Channel Attention (ECA) 模块作用 通道注意力 模块结构 模块代码 import torch import torch.nn as nn import torch.nn.functional …

LeetCode之无重复字符的最长子串

1.题目链接 3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/ 2.题目解析 题目主要思路其实是滑动窗口&#xff0c;使用两个指针维护一个动态区间&#xff0c;使…

uniapp使用高德地图(公众号+h5)

选择微信小程序的话后果就是你的地图出不来&#xff0c;出来了就报key异常 下面直接放配置和代码&#xff1a; 打包后的高德uni-app,uniCloud,serverless,高德地图,申请高德地图Key,配置使用高德地图,参数说明,高德开放平台用户名,百度地图,申请百度地图Key,配置使用百度地图,…