引言
术语定义
在深入技术细节之前,我们需要明确几个核心概念:
- LLM (Large Language Model):大语言模型。如 ChatGPT、Llama、Qwen(千问)、文心一言、Kimi 等。它们是基于海量数据训练而成的生成式 AI 模型。
- LangChain:一个用于开发 LLM 应用的高级框架。它提供了对 AI 基础功能的抽象封装,帮助开发者从重复的基础代码中脱离,快速构建复杂的应用流程。
- RAG (Retrieval Augmented Generation):检索增强生成。这是一种通过引入外部知识库来增强 LLM 生成能力的技术架构。
- Fine-Tuning (指令微调):微调。指利用特定领域的私有化数据集对预训练模型进行进一步训练,使其适应特定任务或风格。
概述
关键技术:RAG(检索增强生成)
定义与意义
Retrieval Augmented Generation(检索增强生成)的核心作用是在生成最终答案之前,先对现有文档进行检索,而不是完全依赖 LLM 内部的知识参数。
主要解决的问题:
- 知识时效性限制:LLM 的训练数据有截止时间。例如,ChatGPT 3.5 的知识更新到 2021 年 9 月,之后的新知识无法知晓。
- 私有知识缺失:企业内部的非公开知识(如业务操作指南、合同条款)无法被通用模型学习。
- 幻觉问题:优化/解决 LLM 胡说八道的问题。
通俗解释: LLM 本身的内容存在时间限制,而 RAG 则是添加一个私密的、专业的外挂知识集。例如,将企业的《业务操作指南》交给 LLM,让 LLM 去查询并阅读这本指南,综合多个章节内容后回答问题。简单来说,就是给 LLM 我们自己的知识内容,让它根据给出的知识去回答,而不是让它凭空捏造。
当内容非常多(上百万字)时,人工查找十分困难,而 LLM 可以快速理解知识并给出符合要求的答案。
RAG 与 Fine-Tuning 的区别
- Fine-Tuning(微调):是在修改模型权重,给模型增加了新内容。微调后的模型专用性越强,通用性越弱。微调的内容通常是一问一答,即一个明确的问题有确定的回答,避免回答的随机性。如果只是一问一答且语义固定,直接检索即可;但 Fine-Tuning 能让 LLM 将相似语义表述认定为同一个问题(如'吃了火锅窜稀'和'吃了火锅拉肚子'视为相同),这是传统检索不具备的语义泛化能力。
- RAG:相当于是给 LLM 加了一个外挂知识库,LLM 本身并没有变化,只是在回答问题时,从知识库中摘取内容进行回答。它更适合处理动态变化的知识或需要引用来源的场景。
RAG 的工作流程
要把我们的知识给 LLM,RAG 技术通常包含以下步骤:
- 文档加载 (Document Loading):读取原始文件(PDF, TXT, Markdown 等)。
- 文档分割 (Document Splitting):将长文本切分为适合模型处理的 Chunk(块)。
- 文档嵌入 (Embedding):将文本块转换为向量表示。
- 向量化存储 (Vector Storage):将向量存入向量数据库。
- 文档检索 (Retrieval):根据用户查询检索相关向量。
- 生成回答 (Generation):结合检索到的上下文和 Prompt 生成最终答案。
RAG 的组成
一个典型的 RAG 框架可以分为两个核心部分:
-
检索器 (Retriever)
- 检索过程:包括为数据做切分、生成嵌入向量 (Embedding)、构建索引 (Chunks Vectors),再通过向量检索召回相关结果。


