Resource Info Paper https://arxiv.org/abs/2401.05856 Code & Data https://figshare.com/s/fbf7805b5f20d7f7e356 Public CAIN Date 2024.01.05
这篇文章主要研究的是 RAG 系统,从 SE 的角度去研究 RAG 系统 (投的是 CAIN),并且总结了7个 FP (Failure Point)。
RAG system 的目的:
两个重要的启示: (感觉是 SE 的相关看法)
We conclude with a list of potential research directions on RAG systems for the software engineering community. ——"Seven Failure Points When Engineering a Retrieval Augmented Generation System"
当涉及到新数据或是特定领域的知识时,LLMs 存在局限性。有两个解决方法:
文章主要探讨的问题:
RAG 的工作原理是将自然语言查询转换为嵌入式查询,然后用嵌入式查询对一组文档进行语义搜索。然后将检索到的文档传递给大型语言模型,生成答案。
文中研究的3个 case:
7 FPs:
同时文中还专门讨论了 6.1 Chunking and Embeddings。个人认为也是在 RAG 中需要重视的部分,万物皆可 Embedding😋,而 Chunking 听起来很简单而往往被忽略掉。
Chunking and Embeddings:
给文档分块听起来微不足道。然而,分块的质量会在很多方面影响检索过程,尤其是分块的嵌入会影响分块与用户查询的相似度和匹配度。分块有两种方法:基于启发式的分块(使用标点符号、段落结尾等)和语义分块(使用文本中的语义来告知分块的起点和终点)。进一步的研究应探讨这些方法之间的权衡及其对嵌入和相似性匹配等关键下游流程的影响。建立一个系统的评估框架,在查询相关性和检索准确性等指标上对分块技术进行比较,将使该领域受益匪浅。
嵌入是另一个活跃的研究领域,包括为多媒体和多模态块(如表格、数字、公式等)生成嵌入。在系统开发过程中或为新文档编制索引时,通常会创建一次块嵌入。查询预处理会极大地影响 RAG 系统的性能,尤其是在处理负面或模糊查询时。需要进一步研究架构模式和方法,以解决嵌入的固有局限性(匹配的质量取决于具体领域)。
本文作者:Geaming
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!