本章主要介绍基于 LangChain4j 中的 RAG(Retrieval-Augmented Generation,检索增强生成)
概念及其实现方式。RAG 是一种通过检索相关知识来增强语言模型生成能力的技术,特别适用于需要结合特定领域知识或私有数据的场景
RAG(检索增强生成)| LangChain4j
1. RAG 是什么?
语言模型(LLM)的知识仅限于其训练数据。如果希望让 LLM 了解特定领域的知识或私有数据,可以采用以下方法:
- 使用 RAG(检索增强生成),本文将详细介绍。
- 使用你的数据对 LLM 进行微调(fine-tuning)。
- 结合使用 RAG 和微调。
RAG 的核心思想:在将提示(prompt)发送给语言模型之前,从你的数据中找到并注入相关信息片段。这样,LLM 将获得(希望是)相关的知识,并能够利用这些知识生成回答,从而降低“幻觉”(生成无关内容)的可能性。
2. RAG 的工作原理
RAG 的工作原理可以分为两个阶段:索引(Indexing)和检索(Retrieval)。
2.1 索引阶段(Indexing)
索引阶段的目标是预处理文档,以便在检索阶段能够高效地搜索相关