跳到主要内容

了解 RAG 算法

什么是 RAG?

RAG(Retrieval-Augmented Generation,检索增强生成) 是指 AI 在生成回答时,先**检索(Retrieval)相关文档,再参考其内容生成回答(Generation)**的技术。

简单来说,就像 AI 在参加"开卷考试"。它不是仅凭记忆中的知识作答,而是先查阅相关资料后再回答。

사용자 질문


① 검색 (Retrieval)
"질문과 관련된 문서 조각을 찾아라"


② 컨텍스트 구성
검색된 문서 조각들을 LLM에게 전달


③ 생성 (Generation)
LLM이 문서를 참고하여 답변 생성


답변 (출처 포함)

PlantPulse RAG 流程

第 1 步:文档索引(前期准备)

将文档转换为 AI 可检索形式的过程。

원본 문서 (PDF, DOCX, 이미지)


┌─────────────────────────┐
│ Docling 파서 │
│ 문서 → 텍스트 + 이미지 │
│ + 테이블 구조 추출 │
└────────────┬────────────┘


┌─────────────────────────┐
│ 청킹 (Chunking) │
│ 긴 문서를 512토큰 단위로 │
│ 적절한 크기로 분할 │
│ (50토큰 오버랩) │
└────────────┬────────────┘


┌─────────────────────────┐
│ 임베딩 (Embedding) │
│ 텍스트 → 2560차원 벡터 │
│ 의미를 숫자 배열로 변환 │
└────────┬────────┬───────┘
│ │
▼ ▼
┌────────┐ ┌────────┐
│ Qdrant │ │ Neo4j │
│ 벡터DB │ │ 그래프 │
└────────┘ └────────┘

什么是分块(Chunking)?

将 10 页的手册整体检索效率很低。切分为合适的大小后,就能只定位到准确的部分。

[원본 문서: 10페이지 매뉴얼]

↓ 청킹

[청크 1] 1장 개요 부분 (512토큰)
[청크 2] 1장 뒷부분 ~ 2장 앞부분 (512토큰, 50토큰 오버랩)
[청크 3] 2장 중반부 (512토큰, 50토큰 오버랩)
...

重叠(Overlap): 为避免在分块边界处上下文中断,会将前一分块的最后 50 个 token 包含到下一分块中。

什么是嵌入(Embedding)?

将文本的语义转换为数字数组(向量)。语义相近的语句在向量空间中位置相近。

"펌프 베어링 교체 방법" → [0.12, -0.34, 0.56, ..., 0.78] (2560차원)
"펌프 축수 정비 절차" → [0.11, -0.33, 0.55, ..., 0.77] ← 비슷한 벡터!
"오늘 날씨가 좋다" → [0.89, 0.23, -0.67, ..., 0.12] ← 다른 벡터

第 2 步:检索(Retrieval)

用户提出问题后,查找相关的文档分块。

Dense 检索(基于语义)

使用相同的嵌入模型将问题向量化,并在向量空间中查找距离最近的文档分块。

질문: "주입기 베어링 교체 주기는?"

▼ 임베딩
질문 벡터: [0.13, -0.35, 0.54, ...]

▼ 코사인 유사도 계산

문서 청크 A (점수 0.92): "주입기 베어링은 6개월마다 교체..." ← 선택!
문서 청크 B (점수 0.85): "펌프 축수 정비 시 베어링 점검..." ← 선택!
문서 청크 C (점수 0.31): "작업장 안전 수칙..." ← 제외

优点: 能理解"更换周期" = "维护间隔"这类语义相似性。

Sparse 检索(基于关键词)

通过精确的词语匹配进行检索,基于 BM25 算法。

질문: "TAG_DJ_M_01_1_1093 허용 온도"

▼ 키워드 추출
["TAG_DJ_M_01_1_1093", "허용", "온도"]

▼ 키워드 매칭

문서 청크 A: "TAG_DJ_M_01_1_1093의 허용 온도 범위는..." ← 정확히 매칭!

优点: 能精确找到设备 ID、型号名等唯一标识符

混合检索(PlantPulse 默认模式)

结合 Dense + Sparse,同时获得语义检索的理解力关键词检索的准确性

최종 점수 = Dense 점수 × α + Sparse 점수 × (1-α)
信息

PlantPulse RAG 默认使用混合模式。因为技术文档中专业术语和设备 ID 较多,关键词匹配非常重要。


第 3 步:重排序(Reranking)

重排序模型对初步检索结果(Top 10)进行精细的再评估,最终选出 Top 5。

초기 검색 결과 (Top 10)


┌─────────────────────────────┐
│ Reranker (rerank-multilingual-v3.0) │
│ │
│ 질문과 각 문서 청크를 │
│ 쌍으로 비교하여 │
│ 관련도를 정밀 평가 │
└──────────────┬──────────────┘


최종 결과 (Top 5) — 가장 관련도 높은 문서만 전달

重排序器使用比检索阶段更精细的模型来评估问题与文档的相关度,能捕捉检索阶段遗漏的细微关联性。


第 4 步:生成回答(Generation)

将检索到的文档分块作为上下文传递给 LLM,由其生成回答。

[시스템 프롬프트]
아래 문서를 참고하여 질문에 답하세요.

[검색된 문서]
문서 1: "주입기 베어링은 6개월마다 교체하며..."
문서 2: "교체 시 SKF 6205-2RS 규격을 사용..."

[사용자 질문]
주입기 베어링 교체 주기와 규격을 알려줘.

↓ LLM 생성

[답변]
주입기 베어링 교체 주기는 6개월이며, SKF 6205-2RS 규격을 사용합니다.
(출처: 정비 매뉴얼 3장)

四种检索模式对比

模式工作方式适用场景
hybridDense + Sparse 结合常规文档检索(默认值,推荐)
naive仅 Dense(语义)概念性问题("什么是 OEE?")
local文档内部详细检索确认特定文档的细节内容
global文档间关系探索(KG)跨多份文档的综合信息

知识图谱 RAG(Graph RAG)

PlantPulse RAG 除向量检索外,还支持利用 Neo4j 知识图谱的检索。

문서 인덱싱 시:
텍스트 → 엔티티 추출 → 관계 추출 → Neo4j 그래프 저장

검색 시 (global 모드):
질문 → 관련 엔티티 → 그래프 탐색 → 연결된 문서 청크

优点: 可实现"与注塑机相关的所有维护手册"这类基于关系的检索