想要投产RAG应用,尽可能要避免这七个最常见的故障点
作者: 吃果冻不吐果冻皮 来源: 吃果冻不吐果冻皮
####**【点击】加入大模型技术交流群**
近日,国外研究者发布了一篇论文《Seven Failure Points When Engineering a Retrieval Augmented Generation System》,探讨了在实际工程落地RAG应用过程中容易出的七类问题。
论文地址:https://arxiv.org/pdf/2401.05856.pdf
1)丢失内容( Missing Content ) - 这是实际生产中的一个最大问题。模型无法在给出的文档中获得实际的答案 ,比较好的情况是回答"我不知道"。但事实上,它却会编造一个看似正确的错误答案。
2)错过了最相关的文档( Missed the Top Ranked Documents ) - 检索器就是一种小型的搜索系统,非常难以做到精准。简单的向量检索很少能直接满足要求 。有时候,正确的答案没有在检索器返回的前 K 个文档中出现,导致后续LLM无法正确生成回答。
3)不在上下文中(Not in Context - Consolidation strategy Limitations) - 有时候,可能会检索到大量的的文档,受限于模型的context大小限制,需要进行整合修剪才能传给大模型,但这有可能导致真正包含的答案未能放进上下文中。 这种情况一样会导致模型产生幻觉,除非Prompt明确指示模型不返回不在上下文中的结果。
4)无法提取(Not Extracted ) - 在这种情况下,**答案在上下文中存在,但大语言模型未能正确提取出答案。**通常,这是因为上下文中存在太多干扰性信息或相互矛盾的信息。
5)错误的格式(Wrong Format ) -** 问题涉及提取特定格式(例如表格或列表)的信息,但大语言模型忽略了指令** 。尽管论文将此列为故障点,但这种类型的功能通常不是LLM原生能力。需要通过系统Prompt并编写代码来以特定格式生成信息。如果这是一个重要功能,就需要进行软件开发和测试。
6)特定性不准确(Incorrect Specificity) -回答不够具体或过于笼统,不能满足用户的需求 。这种情况通常是因为RAG系统的设计者对于特定问题有特定的期望结果,比如教师对学生。在这种情况下,应该提供特定的教育内容,而不仅仅是答案。特定性不准确还会在用户不确定如何提问或问题过于笼统时出现。
7) 不完整(Incomplete) -不完整的答案并不是错误的,但是会漏掉一些信息 ,尽管这些信息在上下文中并且可以提取出来。例如,一个问题是:“文档 A、B 和 C 中包括哪些关键点?”更好的方法是分别提出这些问题。
下表示本文中介绍的 RAG 案例研究摘要。
下表是作者从三个案例研究中汲取的经验教训以及未来 RAG 实施的关键要点.
论文还展望了RAG 系统相关的研究方向,包括文本chunking和embedding, RAG 与微调比较以及RAG应用测试和监控。
最后,作者建议在投产RAG系统时应结合以上七点进行充分测试,进而保证生产质量。
历史文章:2023年12月大模型文章集锦
更多AI工具,参考Github-AiBard123,国内AiBard123