在开发利用生成式AI的服务时,您可能至少一次接触过RAG(Retrieval-Augmented Generation)这个术语。最近,企业构建的AI聊天机器人、内部文档搜索系统、客户咨询服务大多都基于RAG。
那么,RAG到底是什么?为什么这么多企业都在引入RAG呢?
本文将从RAG的概念、工作原理、优点和局限性,以及实际应用案例等方面进行简单介绍。

什么是RAG?
RAG是Retrieval-Augmented Generation的缩写,在韩语中被称为검색 증강 생성或검색 기반 생성。
传统的LLM(大型语言模型)是基于其训练时的知识来生成答案的。因此,对于训练之后出现的最新信息或企业内部文档等未学习过的内容,很难准确回答。
RAG是为了解决这些问题而开发的技术,它在生成答案之前,首先搜索相关信息,然后根据搜索结果生成答案。
简单来说,可以理解为AI不是仅仅依靠记忆来回答,而是先查找所需资料,然后参考其内容来回答的方式。
传统LLM与RAG的区别
传统LLM的回答过程非常简单。
사용자 질문
│
▼
LLM
│
▼
답변 생성
而RAG则多了一个检索过程。
사용자 질문
│
▼
문서 검색(Vector DB)
│
▼
관련 문서 추출
│
▼
LLM
│
▼
최종 답변 생성
也就是说,由于RAG是根据检索到的文档来回答的,因此可以提供更准确、更可靠的结果。
RAG如何工作?
1. 将文档转换为向量
首先,将PDF、Word、Markdown、网页等文档分割成小单元(Chunk),然后利用嵌入(Embedding)模型将其转换为向量。
这些向量存储在向量数据库(Vector Database)中。
代表性的向量数据库包括:
- FAISS
- Chroma
- Milvus
- Pinecone
- Qdrant
- Weaviate
2. 用户提问
例如,用户提出以下问题:
“我们公司的居家办公规定是什么?”
3. 搜索相关文档
问题同样通过相同的嵌入模型转换为向量,然后在向量数据库中搜索最相似的文档。
例如,可能会检索到以下文档:
- 人事规定
- 居家办公政策
- 安全政策
4. 将检索到的文档传递给LLM
检索到的文档会一同包含在提示词中。
例如,形式如下:
질문:
우리 회사 재택근무 정책은?
참고 문서:
- 재택근무는 주 2일까지 허용
- VPN 접속 필수
- 업무용 PC만 사용 가능
위 내용을 참고하여 답변하세요.
LLM将根据这些文档生成答案。
为什么要使用RAG?
1. 反映最新信息
LLM不知道其训练完成后出现的信息。
但RAG会搜索最新文档,因此可以立即反映最近更改的政策或新闻。
2. 利用内部文档
企业的大部分内部文档并未在互联网上公开。
RAG可以搜索这些内部文档并提供答案,因此在企业级AI服务中被广泛使用。
3. 减少幻觉
LLM有时会对其不知道的内容进行看似合理但实际上是编造的回答。
这被称为Hallucination(幻觉)。
RAG基于实际文档生成答案,因此可以大大减少此类问题。
4. 无需重新训练模型
每次有新文档产生时,无需重新训练(Fine-tuning)模型,只需添加文档即可。
运营成本也大大降低,维护也变得更容易。
实际应用案例
RAG已在各个领域得到应用。
- 企业内部文档搜索系统
- 客户服务AI聊天机器人
- 技术文档搜索服务
- 法律咨询系统
- 医疗文档搜索
- 源代码搜索及开发支持
- 安全日志分析
- 故障响应系统(AIOps)
例如,IT运营团队可以构建AI,通过搜索手册、故障历史和操作指南来提供故障原因和解决方案。
RAG也有局限性
RAG并非万能。
如果检索到的文档质量不佳,回答质量也会随之下降。
此外,如果文档分割过大或过小,搜索准确性可能会降低,结果也会因嵌入模型的性能和搜索算法而异。
因此,在实际服务中,会综合考虑以下因素:
- 合适的Chunk大小
- Chunk Overlap
- 选择好的嵌入模型
- 向量数据库性能
- 应用Re-ranking
- 混合搜索(BM25 + Vector Search)
这些因素将极大地影响整个RAG系统的性能。
RAG与Fine-tuning的区别
许多人混淆了RAG和Fine-tuning。
RAG是通过检索外部文档来生成答案的方式,而Fine-tuning是对模型本身进行额外训练的方式。
如果需要利用最新信息或频繁更改的文档,RAG更适合;如果需要让模型掌握特定的语气、工作风格或专业领域的响应特性,Fine-tuning更适合。
在实际企业中,两种技术也常常结合使用。
总结
RAG是将生成式AI应用于实际服务的核心技术之一。
与单纯使用LLM相比,它能显著提高准确性和可靠性,并且能够利用最新信息和企业内部文档,因此已成为企业级AI系统的标准架构。
如果您未来计划开发或运营利用生成式AI的服务,强烈建议您理解RAG的概念和工作原理。之后,如果能进一步学习嵌入、向量数据库、分块(Chunking)、重排序(Re-ranking)等详细技术,将能够构建出更高水平的AI服务。
发表回复