一文了解RAG(检索增强型生成)

在这篇文章中,萌叔将介绍RAG技术。 将它与传统的搜索引擎进行对比,并介绍一个完整的RAG实现–lightRAG,详述其技术细节。 1. 传统搜索 传统搜索通常基于倒排索引来进行搜索 1.1 倒排索引 倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案, 是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。 倒排索引是Term到DocID的映射。 1.2 搜索语句示例 Lucene针对某个字段进行搜索样例 title:hello world 就意味着,搜索title为hello,或者包含title关键字的文档 伪代码形如 doc.title contains "hello" OR doc.title contains "world" 假定 “hello”-> [1, 5, 8] “world”-> [5, 8, 10, 12] 然后搜索引擎对2个doc ID集合的求并集,并对所有文档进行打分,选出分数最高的前N个文档。 2. RAG RAG (检索增强生成) 是一种人工智能技术,它结合了信息检索和生成式模型的功能, 以提高生成文本的准确性和相关性。 RAG 先从外部知识库中检索相关信息,然后结合这些信息,使用生成式模型, 生成更准确、更有上下文相关的文本。 提到RAG,需要先聊一聊Embedding models 2.1 Embedding models 2.1.1 高维向量表征文本 嵌入式模型,可以把一段文本转换为纯数值的高维向量 通过嵌入模型(如bge-m3)将文本转换为1024维的数值向量,这个向量包含了文本的语义特征 curl --location 'http://192.168.100.2:21434/api/embed' \ --header 'Content-Type: application/json' \ --data '{ "model": "bge-m3:latest", "input": "这个故事的主题是什么?" }' 2.1.2 向量距离反映语义相似度 当两个向量在向量空间中的距离越近(通常用余弦相似度或欧氏距离衡量) 说明它们对应的文本在语义上越相似 例如"猫"和"猫咪"的向量会比"猫"和"汽车"的向量更接近 ...

June 27, 2025 · 2 min