引入高低文检索 优化AI模型的精准度与效率 Retrieval Contextual
01、概述
在当今的数字时代,人工自动(AI)模型的运行场景越来越宽泛,从客户允许聊天机器人到法律剖析助手,每一种运行都须要准确的背景常识。为了让AI在特定环境中更有用,开发者理论会应用一种叫做“检索增强生成(RAG)”的方法。这种方法经过从常识库中检索相关消息并将其附加到用户的提醒中,从而清楚优化模型的照应品质。但是,传统的RAG打算在编码消息时往往会失落高低文,造成系统无法有效地检索到相关消息。
在本文中,咱们将引见一种名为“高低文检索”的新方法,该方法经过引入两种子技术——高低文嵌入和高低文BM25,清楚优化了RAG中的检索步骤。经过这种方法,咱们的钻研显示,检索失败率缩小了49%,而联合从新排序(reranking)时,失败率甚至缩小了67%。这一系列的改良间接提高了后续义务的体现。
02、什么是高低文检索?
高低文检索的外围在于在每个文本块前加上特定的高低文说明,这样即使是独立的文本块也能被准确了解。传统的RAG方法理论将常识库中的文档拆分红较小的文本块,这样做只管提高了检索效率,但也或许造成每个块不足足够的高低文消息。例如,在处置财务消息时,假设咱们收到这样的疑问:“2023年第二季度ACME公司的支出增长是多少?”相关的文本块或许只蕴含“公司的支出比上一季度增长了3%”,但并没有提到详细是哪个公司,或许增长的期间段。这使得检索消息的准确性大打折扣。
高低文检索处置了这个疑问,经过将特定高低文附加到每个块前,确保每个块在被嵌入和创立BM25索引时都能蕴含足够的背景消息。例如,关于咱们提到的SEC文件,原始块“公司的支出比上一季度增长了3%”可以被转换为“这个块来自于关于ACME公司2023年第二季度业绩的SEC文件;上一季度的支出为3.14亿美元。公司的支出比上一季度增长了3%。”
如何实施高低文检索?
当然,手动为数以千计的块注释并不实际践。为了实施高低文检索,咱们可以借助Claude。咱们编写了一个提醒,指点模型为每个块提供繁复的块特定高低文,以提高检索成果。详细的提醒如下:
<document>{{WHOLE_DOCUMENT}}</document>这里是咱们宿愿定位的块<chunk>{{CHUNK_CONTENT}}</chunk>请为该块提供繁复的高低文,以便改善该块的检索成果。只回答高低文,不要其余内容。
经过这个环节,咱们可以确保高低文消息被有效地附加到每个文本块上。
03、传统RAG方法的局限性
传统的RAG方法在检索时或许会破坏高低文消息。因为文档理论被拆分红较小的块,假设这些块独自存在,或许会造成消息不完整。比如,在处置技术允许数据库时,假设用户查问“失误代码TS-999”,嵌入模型或许会找到关于失误代码的普通消息,但却或许错过确切的“TS-999”婚配。这时,BM25这种基于词汇婚配的老办规律能有效协助找到确切的婚配。
04、优化检索精度的方法
联合高低文嵌入和BM25,咱们可以经过以下步骤清楚优化检索的准确性:
经过这种模式,传统的RAG系统可以更片面、准确地检索消息,平衡了准确婚配与宽泛语义了解之间的相关。
05、进一步优化功能的从新排序
在传统RAG中,AI系统在检索常识库时,或许会前往少量相关消息块,有时甚至是数百个。这时,从新排序(reranking)成为一种罕用的过滤技术,确保只要最相关的块被传递给模型,从而优化照应品质并缩小老本和提前。
从新排序的步骤
经过高低文检索和从新排序的联合,可以进一步优化检索的精度。试验标明,联合高低文嵌入和BM25的从新排序将前20个块的检索失败率缩小了67%。
老本与提前思考
从新排序的一个关键思考起因是对提前和老本的影响,尤其是在须要对少量块启动从新排序时。因为从新排序参与了运转时的额外步骤,只管它是并行处置的,但无法防止地会参与一些提前。因此,寻觅从新排序更多块以提高功能与缩小提前和老本之间的平衡是至关关键的。
06、结语
经过咱们的试验,咱们发现以下几条阅历总结:
一切这些改良都是相反相成的,最大化功能优化的模式是将高低文嵌入(来自Voyage或Gemini)、高低文BM25、从新排序步骤以及将20个块参与到提醒中联合在一同。
在未来,随着常识库的始终裁减,高低文检索将成为优化AI模型功能的关键工具,协助开发者更高效地成功自动化的运行。宿愿本文能为你在AI开发和运行的路线上提供一些有价值的见地与启示。
参考:
基咯咯
原文链接: