当前位置: 首页 > news >正文

开发输出防护栏以检测GPT-4o幻觉

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

输出防护栏是一组规则和检查机制,旨在确保大型语言模型(LLM)的输出准确、适当,并符合用户期望。在本次指南中,重点介绍如何开发一个特定检查幻觉的输出防护栏。

1. 构建评估集

假设这是一个为客户支持团队开发的自动化支持代理。我们将为这个代理提供关于如何处理退货、退款、反馈等事宜的政策知识库,并期望模型在与客户互动时遵循这些政策。首先,使用GPT-4o生成一组需要遵循的政策。

system_input_prompt = """
你是一名能为虚构公司生成支持代理政策的助手。你将收到一个主题(如退货、退款、反馈),并为该主题生成一个处理客户咨询的示例政策。政策应包含处理客户问题的逐步说明,包括客户属于某一类别时的决策逻辑,并提供采取具体行动的要求。
"""user_policy_example_1 = "退货政策"
assistant_policy_example_1 = """
退货政策1. **询问客户为什么要更换订单**- 将他们的问题分类为以下几种情况之一:- 损坏:他们收到的产品有损坏- 满意度:客户对产品不满意,不喜欢产品- 不必要:他们不再需要该物品
2a. **如果退货类别为“损坏”**- 询问客户是否有损坏物品的照片- 如果物品确实损坏,继续执行步骤3- 如果物品未损坏,通知客户这不符合我们的退货要求,他们不符合退款条件- 跳过步骤3,直接进入步骤4
2b. **如果退货类别为“满意度”或“不必要”**- 询问客户是否可以提供产品质量的反馈- 如果订单是在30天内下的,通知他们可以获得全额退款- 如果订单是在31-60天内下的,通知他们可以获得50%的部分退款- 如果订单超过60天,通知他们不符合退款条件
3. **如果客户符合退货或退款条件**- 询问客户是否确认他们想要退货或退款- 一旦确认,处理他们的请求
4. **在结束工单前提供额外的支持**- 询问客户是否还有其他需要帮助的地方。
"""# 生成政策的函数
def generate_policy(policy: str) -> str:input_message = user_policy_input.replace("{{POLICY}}", policy)response = client.chat.completions.create(messages= [{"role": "system", "content": system_input_prompt},{"role": "user", "content": user_policy_example_1},{"role": "assistant", "content": assistant_policy_example_1},{"role": "user", "content": input_message},],model="gpt-4o")return response.choices[0].message.content# 生成多种政策
def generate_policies() -> List[str]:policies = ['产品反馈政策', '运输政策', '保修政策', '账户删除', '投诉处理']with ThreadPoolExecutor() as executor:policy_instructions_list = list(executor.map(generate_policy, policies))return policy_instructions_listpolicy_instructions = generate_policies()

接下来,我们利用这些政策生成遵循或不遵循这些指示的客户互动示例。

2. 构建幻觉防护栏

开发防护栏时的指导原则包括:提供描述性指标以评估响应的准确性,确保关键术语的一致性,以及从最先进的模型开始开发。通过这些原则,我们构建出一个防护栏系统,并测量其性能。

guardrail_system_message = """你是一名高度专业化的助手,负责审查聊天机器人回复以识别和标记任何不准确或幻觉。在分析用户消息时,请彻底分析响应内容,考虑以下几点:1. 知识准确性:消息是否准确反映了知识库中的信息?不仅要评估直接提及的内容,还要评估上下文推断的知识。2. 相关性:消息是否直接回应用户的问题或陈述?检查响应是否逻辑上符合用户的最后一条消息,保持对话连贯性。3. 政策合规性:消息是否遵循公司政策?评估是否存在错误信息、过度承诺或逻辑不一致。确保响应礼貌、不歧视且实用。为执行任务,你将收到以下信息:1. 知识库文章 - 这些是验证助手消息内容的真理来源。2. 聊天记录 - 提供用户与助手之间对话的上下文。3. 助手消息 - 需要审核的助手消息。对于助手最近响应的每一句话,请根据以下标准评分:1. 事实准确性:句子是否符合知识库中的内容?2. 相关性:句子是否直接回应用户的问题或陈述?3. 政策合规性:句子是否符合公司政策?4. 上下文连贯性:句子是否保持或增强了对话的连贯性?
返回的响应必须为JSON格式数组,其中每个JSON对象代表一个评估的句子。
"""

接下来,我们使用以上逻辑生成并测试一批客户互动,并计算幻觉检测的精度和召回率。

# 计算精度和召回率
precision = precision_score(df['accurate'], df['hallucination'])
recall = recall_score(df['accurate'], df['hallucination'])print(f"\nPrecision: {precision:.2f}, Recall: {recall:.2f}")

结果分析

最终结果显示,防护栏系统具有很高的精度和召回率,表明它能够准确识别模型输出中的幻觉。这些防护栏为大型语言模型的输出提供了强有力的保障,确保输出的准确性和一致性。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于springboot3实现单点登录(二):认证服务端搭建
  • 【递归】什么是递归-C语言为例
  • Linux安全与高级应用(九)Linux远程访问与控制:安全与最佳实践
  • 通过python管理mysql
  • 【Qt中2D绘图的类有哪些】
  • 【面试之算法篇】寻找二叉树中两个节点的最低公共祖先
  • JSON 提取器:从文本中提取 JSON 内容的实用工具
  • Android系统Android.bp文件详解
  • el-tree自定义节点内容
  • Java的线程实现
  • 实时捕捉与追溯:得物基于 eBPF 打造云上网络连接异常摄像头
  • Android常用面试题
  • 2024年8月一区SCI-海市蜃楼优化算法Fata morgana algorithm-附Matlab免费代码
  • C 语言中的头文件
  • Qt QSettings操作配置文件详细介绍
  • SegmentFault for Android 3.0 发布
  • 0基础学习移动端适配
  • AWS实战 - 利用IAM对S3做访问控制
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • mockjs让前端开发独立于后端
  • mysql innodb 索引使用指南
  • Mysql数据库的条件查询语句
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Vue--数据传输
  • windows下如何用phpstorm同步测试服务器
  • Zepto.js源码学习之二
  • 初识 webpack
  • 电商搜索引擎的架构设计和性能优化
  • 理清楚Vue的结构
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 微信小程序--------语音识别(前端自己也能玩)
  • 详解NodeJs流之一
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • C# - 为值类型重定义相等性
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #NOIP 2014# day.1 T2 联合权值
  • #vue3 实现前端下载excel文件模板功能
  • (10)STL算法之搜索(二) 二分查找
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (C语言)字符分类函数
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十一)图像的罗伯特梯度锐化
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)详解PHP处理密码的几种方式
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)