什么是RAG(检索增强生成)?AI更智能回答的秘密

在开发利用生成式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服务。


Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注