QA对(question-answer pair)、知识库alpha(混合检索策略)、以及知识库kms(召回分值阈值)

AI系统中三个关键部分的设计:QA对(question-answer pair)、知识库alpha(混合检索策略)、以及知识库kms(召回分值阈值),并介绍了如何结合这些部分来处理用户问题。

1. QA对(question-answer pair)

QA对是系统中用于处理特定常见问题和回答的直接匹配方式。比如用户输入一个常见问题“你是谁?”,系统可以直接匹配预设的答案,而不需要经过复杂的检索或模型生成。这种方式有几个好处:

  • 准确性和幂等性:QA对的回答是预定义的,确保每次触发都能得到一致的答案。
  • 最高优先级:如果系统在用户问题中匹配到QA对,它会立即返回预设的回答,并停止进一步的处理,比如不经过检索(RAG管道)或大语言模型的生成。因此,QA对的触发比其他处理流程优先级更高。

分值要求:为了保证准确触发,QA对的匹配分数门槛较高(如0.95),表示只有当用户输入的问题非常接近预定义的QA对时,才会触发这条规则。

2. 知识库alpha(混合检索策略)

知识库alpha中使用了混合检索,这意味着系统同时使用了BM25和相似度匹配两种不同的检索方式来查找与用户问题相关的知识库内容。

  • BM25:BM25是一种基于关键字的传统检索方式,适合处理书面化的用户输入。例如,如果用户输入的内容是非常正式、明确的书面表达,BM25能够很好地匹配出相关内容,因此可以设置较低的分值要求。

  • 相似度匹配:相似度匹配适合处理用户输入的口语化或模糊问题。它利用语义理解和嵌入向量来找到与用户问题语义上相似的内容。因此,当用户输入的问题不太正式或表述模糊时,相似度匹配能更好地找到相关信息,分值要求可以相对提高。

这意味着系统可以根据用户输入的特性动态调整BM25和相似度匹配的权重,以适应不同的场景。

3. 知识库kms(召回分值阈值)

Kms代表知识库召回的最低分值阈值(knowledge-min-score)。在知识检索过程中,系统会对召回的知识库内容进行评分,系统只有当召回的chunk(知识片段)分值超过阈值时,才会将这些内容与用户的问题送入大模型进行生成处理。

  • 高于kms的情况:如果系统召回的chunk分值高于设定的kms阈值(如0.61),这些chunk将会被用于大模型的生成处理,最终给出更详细的回答。

  • 低于kms的情况:如果所有召回的chunk分值都低于kms,那么系统不会进入大模型生成流程,而会根据配置的**“回复方式”**进行不同的操作:

4. 回复方式

系统在召回的chunk分值低于kms时有两种主要的处理方式:

  • 自定义回复:系统返回一个自定义的回复,例如“抱歉,知识库里面暂时没有该问题的答案!” 这种方式非常严谨,确保系统不会给出错误的或幻觉性的回答,是应对大模型幻觉的有效手段。

  • LLM辅助回答:系统将用户的问题直接交给大语言模型(LLM)进行生成回答。虽然这种方式更灵活,但由于没有足够的知识库支持,生成的内容可能会出现幻觉,即生成不准确或错误的信息。这种处理方式适用于一些对答案准确性要求不高的场景。

总结

整个流程的设计通过QA对、混合检索(BM25+相似度匹配)、kms分值阈值以及不同的回复方式,为用户问题提供灵活的处理机制,以确保在不同场景下的准确性和效率。

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

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

相关文章

疾病防控|基于springBoot的疾病防控综合系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书(可指定任意题目) 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 在如今社会上,关于信息上面的处理,没有任何…

基于SpringBoot+Vue的农场管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

通过Fiddler抓包采集某音作品列表,视频列表

声明:文章仅用于学习交流,如有侵权请联系删除 今天分享下某音app作品列表采集方法,我只详细说一下大步骤,细节就不多说了,留着大家去试吧 我们通过Fiddler 快捷方式 配置好代理 打开抖音进行抓包,随便找个达人打开主…

计算机的错误计算(一百一十七)

摘要 算式“(5^25*(1/25)^(1/5)*3^25(1/25)^(1/5)*5^25*3^(251/5)-(9/25)^(1/5)*3^25*5^25-(1/25)^(1/5)*3^25*5.0^25*(13^(1/5)-3^(2/5.0)))” 的准确值是0. 但是,Python 与 Excel 均输出了错误结果:一个含有15位整数,一个含有14位整数。 …

stm32学习笔记-RTC实时时钟

文章目录 一、RTC基础知识1.1 RTC简介1.2 RTC的晶振 二、stm32的RTC2.1 RTC和后备寄存器2.2 stm32 RTC结构框图及特性 三、stm32 RTC编程2.1 RTC初始化2.2 RTC控制程序 一、RTC基础知识 1.1 RTC简介 实时时钟的缩写是RTC(Real_Time Clock)。RTC 是集成电路,通常称…

【机器学习】深度学习、强化学习和深度强化学习?

深度学习、强化学习和深度强化学习是机器学习的三个重要子领域。它们有着各自独特的应用场景和研究目标,虽然都属于机器学习的范畴,但各自的实现方式和侧重点有所不同。 1. 深度学习(Deep Learning) 深度学习是一种基于神经网络的…

76.【C语言】perror函数介绍

1.cplusplus的官网介绍 cplusplus的介绍 点我跳转 2.翻译 函数 perror void perror ( const char * str ); 打印错误信息 将errno(最后一个错误数字)的值解释为错误信息,之后把它打印到stderr中(标准错误输出流,通常是控制台)(备注有关"流"的概念在75.【C语言】文件…

CMake 属性之目录属性

【写在前面】 CMake 的目录属性是指在特定目录(及其子目录)范围内有效的设置。 这些属性不同于全局变量或目标(Target)属性,它们提供了一种机制,允许开发者为项目中的不同部分定义不同的构建行为。 通过目录…

Jax(Random、Numpy)常用函数

目录 Jax vmap Array reshape Random PRNGKey uniform normal split choice Numpy expand_dims linspace jax.numpy.linalg[pkg] dot matmul arange interp tile reshape Jax jit jax.jit(fun, in_shardingsUnspecifiedValue, out_shardingsUnspecifiedVa…

docker compose一键部署容器监控 CAdvisor+InfluxDB+Granfana

docker compose一键部署容器监控 CAdvisorInfluxDBGranfana CAdvisor监控收集InfluxDB存储数据Granfana展示图表 1、原生命令 通过docker stats 命令可以查看当前宿主机上所有创建的容器的CPU,内存和网络流量等信息 docker stats 缺点:只能查看当前宿主机的全部…

Pyppeteer:如何在 Python 中使用 Puppeteer 和 Browserless?

Python 中的 Pyppeteer 是什么? Pyppeteer 是流行的 Node.js 库 Puppeteer 的 Python 移植版本,用于以编程方式控制无头 Chrome 或 Chromium 浏览器。 本质上,Pyppeteer 允许 Python 开发人员在 Web 浏览器中自动执行任务,例如抓…

多选框的单选操作 Element ui

文章目录 样式预览Q:为什么要这么做?实现原理探索路程 样式预览 Q:为什么要这么做? 单选框的样式不够好看单选框因为框架等原因,无法取消选择 实现原理 判断多选框绑定的 value,如果长度为2,那…

oracle-函数-instr()的妙用以及相似功能like

INSTR(C1,C2[,I[,J]]) 【功能】在一个字符串中搜索指定的字符,返回发现指定的字符的位置; 【说明】多字节符(汉字、全角符等),按1个字符计算 【参数】 C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 第J次出现的位置,默认为1 【…

RTSP RTP RTCP SDP基础知识

理论 流(Streaming ) 是近年在 Internet 上出现的新概念,其定义非常广泛,主要是指通过网络传输多媒体数据的技术总称。 流式传输分为两种 顺序流式传输 (Progressive Streaming) 实时流式传输 (Real time Streaming) ​​​​​…

国产长芯微LDC5422单通道、16位、电流源和电压输出DAC,HART连接完全P2P替代AD5422

描述 LDC5422是低成本、精密、完全集成、16位数模转换器(DAC),内置可编程电流源和可编程电压输出,设计用于满足工业过程控制应用的需要。 输出电流范围可编程设置为4 mA至20 mA、0 mA至20 mA或者超量程的0 mA至24 mA。 此产品的LFCSP版本有一个CAP2引脚…

胤娲科技:00后揭秘——AI大模型的可靠性迷局

当智能不再“靠谱”,我们该何去何从? 想象一下,你向最新的GPT模型提问:“9.9和9.11哪个大?”这本应是个小菜一碟的问题,却足以让不少高科技的“大脑”陷入沉思, 甚至给出令人啼笑皆非的答案。近…

vite学习教程06、vite.config.js配置

前言 博主介绍:✌目前全网粉丝3W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技术内容:Java后端、大数据、算法、分布式微服务、中间件、前端、运维等。 博主所有博客文件…

智能桥梁:Profinet至CanOpen,台达伺服无缝对接

在工业自动化领域,将西门子S7-1200系列PLC与具备CANOPEN通讯功能的伺服驱动器设备集成时,由于PLC默认采用PROFINET实时以太网通讯协议,直接连接存在协议不匹配问题。为解决这一挑战,开疆推出的Profinet转CANOPEN网关提供了高效便捷…

Java基础知识——String篇

一、String 1、是什么 String 是 Java 中用于表示字符串的类。Java 中的字符串是不可变的,也就是说一旦创建,字符串的内容无法更改。 2、如何构造 (1)无参数构造方法: String str new String(); //创建一个空字符…

sass学习笔记(1.0)

1.使用变量 sass可以像声明变量那样进行使用,这样同样的样式,就可以使用相同的变量来提高复用。 语法为:$ 变量名 在界面中也可以正常的显示 当然了,变量之间也可以相互引用,比如下面 div{$_color: #d45387;$BgColo…