RAG 开发四大痛点及处置打算

  • 电脑网络维修
  • 2024-11-15

1、痛点1:常识缺失

常识库缺乏必要的高低文消息,造成 RAG 系统在不可找到确切答案时,或者会提供模棱两可的失误消息,而不是间接标明其无知。这种状况下,用户或者会接纳到误导性的消息,从而感到丧气。针对这一疑问,有以下两种处置打算:

处置打算一:优化数据品质

“渣滓输入,渣滓输入。” 若源数据品质不佳,比如:存在相互矛盾的消息,即使是再完美的 RAG 流程也不可从劣质数据中提炼出有价值的常识。以下提出的处置打算不只能处置这一难题,还能应答本文中提到的其余疑问。高品质的数据是确保 RAG 流程顺畅运转的关键。

以下是一些经常出现的数据优化战略:

1. 肃清噪音和有关消息:包括移除不凡字符、停用词(比如:“the”和“a”等经常出现词汇)以及 HTML 标签。

2. 识别并批改失误:触及拼写失误、打字失误和语法失误。拼写审核工具和言语模型等资源对此很有协助。

3. 去除反双数据:消弭可无能扰检索环节的重复或相似记载。

处置打算二:优化提醒词设计

由于常识库消息无余,系统或者会提供看似正当却失误的答案。在这种状况下,优化提醒词可以清楚优化系统体现。经过经常使用“若你不确定答案,请标明你不知道”等提醒词,可以疏导大模型抵赖其局限,并更明晰地表白不确定性。只管这不能确保答案的相对正确性,但在数据优化之后,设计失当的提醒词是提高系统透明度的有效手腕之一。

2、痛点2:更关系的常识没有检索进去

在初步检索阶段常识未能被检索进去。关键的文档或者没有在检索组件给出的初步结果中,造成正确答案被遗漏,大模型因此不可提供准确的照应。钻研指出:“疑问的答案其实就藏在文档里,只是由于它排名不够高,所以没有被出现给用户。”针对这一疑问,有以下两种处置打算:

处置打算一:调整 chunk_size 和 similarity_top_k 超参数

在 RAG 模型中,chunk_size 和 similarity_top_k 是控制数据检索效率和准确性的两个关键参数。对这些参数的调整会影响到计算效率和消息检索品质之间的平衡。

处置打算二:Rerank 重排序

在将检索结果传递给大言语模型(LLM)之前对其启动从新排序,可以清楚增强 RAG 系统的性能。LlamaIndex 的笔记提醒了有无从新排序的差异:

import osfrom llama _ index.postprocessor.cohere _ rerank import CohereRerankapi _ key = os.environ["COHERE _ API _ KEY"]cohere _ rerank = CohereRerank ( api _ key=api _ key , top _ n=2 ) # return top 2 nodes from rerankerquery _ engine = index.as _ query _ engine(similarity _ top _ k=10 ,# we can set a high top _ k here to ensure maximum relevant retrievalnode _ postprocessors= [ cohere _ rerank ],# pass the reranker to node _ postprocessors)response = query _ engine.query("What did Sam Altman do in this essay?" ,)

3、痛点3:格局失误

输入格局不正确。当大言语模型(LLM)未能遵照以特定格局(比如:表格或列表)提敞开息的指令时,咱们提出了以下四种处置打算:

处置打算一:优化提醒词设计

为了改善提醒词并处置这一疑问,可以采取以下几种战略:

处置打算二:输入解析方法

输入解析可以用于以下目的,以确保取得希冀的输入格局:

以下是一个经常使用 LangChain 输入解析模块的示例代码片段,该模块可在LlamaIndex 中运行。

from llama _ index.core import VectorStoreIndex , SimpleDirectoryReaderfrom llama _ index.core.output _ parsers import LangchainOutputParserfrom llama _ index.llms.openai import OpenAIfrom langchain.output _ parsers import StructuredOutputParser , ResponseSchema# load documents , build indexdocuments = SimpleDirectoryReader(" .. /paul _ graham _ essay/data").load _>

处置打算三:Pydantic 程序

Pydantic 程序是一个多配置的框架,它能够将输入的字符串转换成结构化的 Pydantic 对象。LlamaIndex 提供了几种不同类型的 Pydantic 程序:

LLM 文本补全 Pydantic 程序:这类程序担任处置输入的文本,并将其转换成用户自定义的结构化对象,这个环节联合了文本补全 API 和输入解析。

LLM 函数调用 Pydantic 程序:这些程序经过经常使用 LLM 函数调用 API 来处置输入文本,并将其转换成用户指定的结构化对象。

预制 Pydantic 程序:这些程序设计用于将输入文本转换成预约义的结构化对象。

以下是一个经常使用 OpenAI 的 Pydantic 程序的示例代码片段:

from pydantic import BaseModelfrom typing import Listfrom llama _ index.program.openai import OpenAIPydanticProgram# Define output schema ( without docstring )class Song(BaseModel) :title : strlength _ seconds : intclass Album(BaseModel) :name : strartist : strsongs : List [ Song ] # Define openai pydantic programprompt _ template _ str ="""\Generate an example album , with an artist and a list of songs.\Using the movie { movie _ name } as inspiration.\"""program = OpenAIPydanticProgram.from _ defaults(output _ cls=Album , prompt _ template _ str=prompt _ template _ str , verbose= True)# Run program to get structured outputoutput = program(movie _ name="The Shining" , description="Data model for an album.")

处置打算四:OpenAI JSON形式

经过OpenAI的 JSON 形式,咱们可以将`response_format`设置为`{ "type": "json_object" }`,从而激活照应的 JSON 形式。当启用 JSON 形式后,大模型将被限度仅生成可以解析为有效 JSON 对象的字符串。JSON 形式确保了输入格局的强迫性,但它并不允许依据特定形式启动验证。

4、痛点4:输入不完整

回答缺失完整性。只管局部回答没有失误,但它们并未蕴含一切必要的细节,即使这些消息在高低文中是可失掉的。比如:当有人提问:“文档A、B和C中探讨的重要议题是什么?”为了确保回答的完整性,独自对每份文档启动查问或者更为有效。

处置打算一:查问变换

在最后的 RAG 方法中,比拟类型的疑问体现尤为不佳。优化 RAG 推理才干的一个有效方法是引入查问了解层——在实践将查问向量存入存储之行启动查问变换。以下是四种不同的查问变换方法:

1. 路由:保管原始查问,并识别出与之关系的适合工具子集。随后,将这些工具指定为适合的选项。

2. 查问重写:保管选定的工具,但以不同形式从新构建查问,以便在同一工具集中运行。

3. 子疑问合成:将查问拆分为几个更小的疑问,每个疑问针对不同的工具,由其元数据来选择。

4. ReAct Agent 工具选用:基于原始查问,确定经常使用的工具,并制订在该工具上运转的特定查问。

请参考以下示例代码片段,了解如何运行 HyDE(假定文档嵌入)这一查问重写技术。给定一个人造言语查问,首先生成一个假定文档/答案。接着,经常使用这个假定文档启动嵌入搜查,而不是经常使用原始查问。

# load documents , build indexdocuments = SimpleDirectoryReader(" .. /paul _ graham _ essay/data").load _>

原文链接:​ ​​ ​

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/5674.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号