# what - **RAG 检索增强生成(Retrieval-Augmented Generation)**,对用户上传的项目文件进行检索,从而增强生成的内容质量。 - **[[语义检索]]**:当用户上传文件时,GPT可以从文件中检索相关信息 - **生成**:基于检索到的信息用于生成更加精准和上下文相关的回答 # why ### **RAG 的技术实现** - 通常 RAG 需要结合 **向量数据库([[Vector Database]])** 和 **嵌入([[Embedding]])** 技术。常见的实现方式: - **文档处理**:RAG会将上传的文档切成一个个的小块, 然后将这些小块变成高维空间中的数字向量,然后去==检索这些向量==,这样的回答就比较精准。(使用 [[OpenAI Embedding]]、FAISS、ChromaDB 等工具)。 - **查询向量化**:用户输入的问题也被转换成向量,然后在数据库中匹配最相关的文档。 - **语言模型生成**:使用检索到的文档作为上下文输入给 LLM,并生成最终答案。 - **意义** - RAG 的检索,本质上是在理解语义的情况下进行的搜索,是语义层面的匹配。而不是单纯的搜索引擎式的「[[关键词]]」匹配。 # how ### **实例** *假如我们搜索「语言学」,当你在这个GPT里面去搜索历史对话的时候,他的历史对话你看这里面提到的很多这些,他都==没有出现这个关键词==,但是呢,它也会精准的给它识别出来。为什么呢,因为GPT的搜索。它就==不是去关键词匹配了,而是说它去根据语义来去搜索==。* ### **RAG 的优势** - **提升信息的实时性**:传统大模型的知识是基于训练数据的,而 RAG 可以通过外部数据库获取最新信息,使得回答更符合现实情况。 - **减少幻觉(Hallucination)**:大模型有时会凭空生成不准确的信息,而 RAG 通过检索外部知识库,增强回答的可信度。 - **更小的模型可以获得更好的性能**:相比于不断扩大参数规模,结合检索机制可以让小模型在特定领域表现更优。 ### **RAG 的典型流程** 1. **用户输入查询** → "什么是 RAG?" 2. **检索模块** 查询外部知识库,返回相关内容(比如论文、文档)。 3. **生成模块** 结合检索结果和模型的内部知识,生成最终回答。 4. **返回最终结果** → 详细回答“RAG 的定义、原理和优势”。 ### **RAG 的应用场景** - **企业内部知识库问答**:企业可以将文档、FAQ、政策文件存入数据库,让 RAG 实现高效的智能客服或知识查询。 - **法律、医学等专业领域**:这些领域信息更新快且复杂,RAG 可以帮助基于最新资料提供专业解答。(当年[[专家系统]]的另一条可行路线) - **搜索引擎增强**:结合 RAG,可以让搜索引擎返回更自然、更贴合用户需求的答案。 - **代码助手**:通过检索 GitHub、Stack Overflow 等代码库,RAG 可以帮助开发者获取高质量的代码建议。 ### **相关工具** - **向量数据库**:FAISS、ChromaDB、Weaviate、Pinecone - **嵌入模型**:OpenAI Embeddings、BERT、Sentence Transformers - **LLM**:GPT-4、Claude、Llama 2 - [[NotebookLM]] # how good ### **RAG 与传统 LLM、搜索引擎的区别** | 特性 | 传统 LLM | RAG | 搜索引擎 | | ---- | --------------------------- | ---------------------------- | ----- | | 数据来源 | 模型[[parameters 参数\|参数]] | 外部数据(**上传文件**) | 知识图谱 | | 幻觉问题 | 容易出现,大模型对你是未知的,所以会随机生成内容。 | 降低幻觉概率,理解你上传的数据库。这样的回答就比较精准。 | | | 生成根据 | 在一个超级大的[[语义空间]]里,通过语义理解的生成。 | 较小,但更精准的小语义空间 | 关键词匹配 | ### **总结** - RAG 通过动态[[语义空间]]中的 **[[语义检索]]+生成** 的方式,提升 LLM 的准确性、实时性和专业性,特别适用于需要外部知识支撑的任务,是目前改进大模型的一种热门技术方案。 # ref. - [chat with GPT](https://chatgpt.com/share/679b2553-61ec-8002-bdcb-26fffcf85c37) - [youtube-ChatGPT Projects:RAG 和embedding 的底层原理|07/12 days of openai](https://readwise.io/reader/shared/01jjqsrp0vy0xbdw3q4zarnsd6)