腾讯云工具指南 · 第08期
检索增强生成(Retrieval-Augmented Generation)
让大模型拥有真实知识的核心技术
一张图看懂 RAG 的核心工作流程
上半部分为离线处理(只需做一次),下半部分为实时问答(每次提问触发)
用户上传 PDF、Word、图片等各种格式文档
将文档转换为 Markdown 结构化形式,识别表格、公式、图片等元素
将文档切分为适合检索的片段,存入向量数据库
对用户问题进行改写、分解,更全面准确理解意图
通过混合搜索在知识库中找到最相关的文档片段
大模型基于检索到的内容,生成准确、可追溯的回答
大模型会编造不存在的信息。RAG 让模型基于真实文档回答,大幅减少"一本正经胡说八道"
大模型训练数据有截止日期。RAG 通过外挂知识库,让模型随时获取最新信息
企业内部文档不在大模型训练数据中。RAG 让模型能够回答特定领域的专业问题
RAG 可以标记答案来源,让用户知道信息出处,增强可信度
RAG 实践中的文档解析
将 PDF、Word、图片等不可编辑的文档,转换为 Markdown 结构化形式,识别其中的段落、表格、公式、标题、图片等元素的内容及阅读顺序。 课程笔记: Pipeline B
普遍文档以 PDF 和图片形式存在,无法直接被大模型使用。传统 OCR 只能识别纯文字,远远不够:
定位图像中版面元素(段落、表格、图片、标题等)的位置、顺序和类型
识别图像中的文字信息
将表格图像转为具有行列关系的结构化信息
将所有识别结果按阅读顺序整合为 Markdown 内容
文档解析结果要作为大模型输入,所以阅读顺序必须正确。但真实文档中存在图/表群组、跨栏段落、图表文环绕等复杂排版,传统解法搞不定。
| 方案 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 版面分析 + 规则排序 | 检测版面元素后按规则排列 | 实现快捷,满足简单排版 | 无法处理图文表混排等复杂场景 |
| 自回归生成文本 | 输入无序内容,自回归生成有序文本 | 纯文字排序效果可以 | 无法处理非文字元素,细粒度性能差 |
| DREAM 模型(腾讯云) 笔记 | 自回归并行解码 + 语义感知 | 解决各种复杂排版 | — |
把文档图片交给模型,模型像人一样先"看全局",再"找到每个元素",最后"按正确顺序读出来"。
将输入图片切成小块(patch),送入图像编码器提取视觉特征
预设 N 个查询向量代表版面元素,通过注意力机制与图像特征交互,聚合每个元素的信息
同时生成每个元素的类型、坐标和内容。将图片特征拷贝多份实现并行解码加速
不同类型表格(有线表、无线表、少线表)视觉差异大。有些用实线分隔,有些用空白分隔,模型需要同时应对所有情况。
| 方案 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 基于单一组件 | 边界提取或元素关系预测 | 各独立场景精度基本满足 | 存在效果瓶颈,优化成本高 |
| 基于生成式方法 | 自回归模型端到端生成结构 | 可积累训练数据 | 预测不稳定,复杂表格准确率低 |
| GrabTab 模型(腾讯云) | 特征协同 + 线重组 | 单模型应对多场景 | — |
先找到表格里每个文字块的特征,再找出文字块之间的关系,然后预测分隔线在哪里,最后用这些线组装出完整的表格。
提取元素特征(每个文本块的图像/布局/文字特征)和关系特征(元素间的关联信息)
定义横纵表格线,通过注意力机制生成每条分隔线的贝塞尔曲线系数
基于已提取的分隔线特征,与元素和关系做交叉注意力进一步提升精度
基于横纵分隔线两两组合,生成每个单元格的行列坐标信息
真实文档中,公式和子图经常嵌在文字行内。传统做法是先定位再分别识别再拼接——每步都会累积误差。
| 方案 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 多能力拼接 | 先定位子元素,再调用各模型拼接 | 各能力解耦,独立优化 | 传递误差大,规则需频繁适配 |
| 识别模型直接预测(腾讯云) | 一个模型同时输出文字+公式+子图 | 避免拼接误差,上限高,实现简单 | — |
在常规文字识别基础上,增加对文本行内公式的 LaTeX 内容输出,并预测行内子图的坐标位置。一个模型端到端完成,无需多模型接力。
RAG 实践中的检索优化
检索技术分为两大环节:
💡 向量(Embedding):把文字转换成一串数字。语义相近的文字,数字也相近,这样计算机就能理解"含义的远近"了。
多轮对话中,用户经常省略主语或用代词。如果直接拿不完整的问题去检索,根本找不到有用信息。
用户问题经常视角单一、多主体混合、或包含并列子问题。拆开来分别检索效果更好。
① 气候变化如何影响日常天气?
② 气候变化对经济有哪些影响?
分别检索后合并 → 信息更全面
① A 有多少 star?
② B 有多少 star?
③ 哪个更多?
用户问题含专业术语或缩写时,直接搜索可能因"用词不同"而找不到。先让大模型生成解释文本,再用这段文本去检索。
文档太长大模型一次读不完;切太碎信息不完整。怎么切是个技术活。
| 方案 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 基于规则(开源方案) | 按标点符号、字数、段落切分 | 实现简单 | 缺乏通用性,文本易被截断导致信息不完整 |
| 基于模型(学术方案) | Transformer 编码+分类判断片段起始 | 考虑语义信息 | 只支持一级切片,无法兼顾检索精准度和生成全面性 |
| 多级文档切分(腾讯云) | 生成式模型做切分 | 处理超长文本,效果最佳 | — |
一级片段包含完整语义信息,内部包含多个连续的二级片段。检索时用二级片段精准匹配,回答时用一级片段提供完整上下文。
切分是 RAG 检索质量的第一道天花板。切太碎丢上下文,切太粗混噪声。本节从产品经理视角,带你速查 2025 市面上最常用的五种切分方法,并给出场景决策树、参数经验表和成本效益对比。
| 渠道 | 用途 | 推荐入口 |
|---|---|---|
| 权威出处 | 理解原理 + 面试背书 | RAG 原论文 (Facebook 2020) · Graph RAG (Microsoft 2024) · 信通院 RAG 白皮书 |
| 开源框架 | 看真实工程实现 | LangChain · LlamaIndex · Unstructured.io · RAGFlow / Dify 源码 |
| 厂商产品 | 看默认参数 + 竞品对标 | 主流国内知识库平台 · 海外 Notion / Glean / Perplexity |
| 社区动态 | 追踪新方案 | GitHub Trending (关键词 rag) · Anthropic 博客 · Hugging Face Blog |
| 方法 | 核心逻辑 | 最适场景 | 成本 | 召回提升 |
|---|---|---|---|---|
| 递归字符切分 Recursive Character | 按分隔符优先级(段落→句号→逗号)递归切 | MVP / 通用文档 / 项目起步 | 低 | 基线 |
| 语义切分 Semantic Chunking | 相邻句 embedding 相似度,语义突变处下刀 | 高质量问答 / 信息密度高 | 中(需 Embedding 调用) | +8-15% |
| 父子切分 Parent-Child / Small-to-Big | 小块(200字)检索 + 大块(2000字)送 LLM | 法律 / 医疗 / 研报等长文 | 中(存储双倍) | +10-20% |
| Contextual Chunking Anthropic 2024 | 切分时用 LLM 给每块加 50-100 字上下文前缀 | 高精度要求 / 预算充裕 | 高(每块 1 次 LLM 调用) | +30-49% |
| 结构化切分 Document-aware | 按文档天然结构(标题 / 章节 / 表格 / 代码)切 | Markdown / PDF / 代码库 | 低 | +15% |
| 业务场景 | chunk_size | overlap | 推荐组合 |
|---|---|---|---|
| 中文文档问答 | 300-500 字 | 50 字 (10%) | 递归字符 |
| 英文技术文档 | 500-1000 tokens | 10-20% | 递归字符 |
| 法律 / 医疗报告 | 父 2000 / 子 200 | 20% | 父子切分 |
| 学术论文 | 按小节(动态) | 0 | 结构化切分 |
| 客服 FAQ | 一问一答整条 | 0 | 不切,整条入库 |
| 高精度垂域 | 动态自适应 | 动态 | 语义 + Contextual |
⚠️ 所有参数仅为起步参考。生产参数必须通过召回率 / 准确率 AB 实验确定。
| 方法 | 离线成本 | 存储开销 | 在线延迟 | 效果提升 | 适用阶段 |
|---|---|---|---|---|---|
| 递归字符 | 零 | 基线 | 基线 | 基线 | MVP / POC |
| 结构化 | 低 | 基线 | 基线 | +15% | MVP / 优化 |
| 语义切分 | 中 | +20% | 基线 | +8-15% | 迭代 / 质量攻坚 |
| 父子切分 | 低 | +80% | +20% | +10-20% | 高端企业级 |
| Contextual | 高(需 LLM) | +15% | 基线 | +30-49% | 高价值场景 |
将文本转为向量后在数据库中按相似度匹配。腾讯云在向量模型训练上做了三项关键优化:
先让模型做"完形填空"学会整句理解能力,再用行业数据做三阶段训练逐步提升。
遮盖部分输入让模型预测,加强对整句的表示能力(类似完形填空训练)
使模型能支持更长的文本输入长度
行业数据预训练 → 大规模弱监督训练 → 有监督训练,逐步提升业务适应能力
虽然向量搜索很强大,但面对短文本、少字符、低频词时,传统关键词检索依然有优势。
腾讯云将关键词搜索与向量搜索结合,再通过 Rerank 模型重新排序,取长补短。
💡 Rerank(重排序模型):对初步检索结果再做一次精细评估,把最相关的排到前面。
先用细粒度的二级片段做精准检索,当多个二级片段属于同一个一级片段时,用完整的一级片段替换——既保证检索精准,又获得主题完整的语义信息。
解决了"小切片信息不全、长文本效果差"的两难问题。
向量检索或混合检索可能返回大量内容,信息冗余。通过 Reranker 模型重排+筛选,将相关内容置于前列;再训练检索评估器进一步精简。
当知识已经以数据库(表格)形式存储时,用 SQL 查询比向量检索更精确。
将自然语言转为 SQL,在数据库中精确查询。用三个 Agent 协作解决信息干扰、问题复杂、反馈不及时的问题:
Text2SQL 无法处理不规范的表格(如合并单元格表格、嵌套表格)。
腾讯云方案:大模型对表格生成摘要 → 通过检索摘要找到相关表格 → 加工后送给大模型生成回复。
对于超长表格:先切成子切片,通过子切片摘要生成最终表格摘要。
RAG 实践中的阅读理解技术优化
阅读理解能力是指大模型通过阅读上下文获取信息的能力。上下文来自限定范围的文档库、知识库或搜索引擎,使得模型回答内容安全可控、减少幻觉、具备知识时效性。
它是 RAG 的核心模块——前面的文档解析和检索是为了找到正确的内容,而阅读理解决定了模型能否基于这些内容给出可靠回答。
💡 幻觉(Hallucination):大模型生成看起来合理但实际不正确的信息。特别是在专业领域,模型训练数据不足时最容易出现。
面对需要处理专业化行业知识的 ToB 场景,腾讯云对比了四种解法,最终采用"精调大模型 + RAG"的组合方案:
改善模型在专业场景的行为偏好
用行业数据做增量学习,对特定任务有更好表现
弥补大模型专业知识不足
集合前三种方法的优势
点击下方标签切换查看不同场景的详细介绍:
典型场景:企业内部知识问答(业务查询、员工培训)、各种业务咨询客服
在腾讯混元大模型基础上,使用金融、政务、教育、交通、汽车、文旅等重点行业数据做阅读理解任务的精调:
构造 RAG 场景下的训练样本,四步流程:
通过人工+自动化核验清洗得到训练数据
典型场景:客服问答中需要推理计算的场景、教育场景(通过知识引擎检索教学知识点)
💡 CoT(Chain of Thought,思维链):让模型像人一样一步步推理,而不是直接给答案。这样推理过程透明、结果更准确。
短文本的 CoT 上下文与相似问题拼接,构造 RAG 场景复杂上下文
模型先理解意图,引用或复述上下文中的相关内容
根据问题意图和相关信息,逐步生成推理理由或计算步骤
根据中间推理过程,总结得到最终答案
典型场景:零售销售看板、金融产品问讯
难点:单点知识抽取、综合多点知识分析、结构化数据输出、表文混合阅读理解
多种表格形式(markdown/html/csv),含简单和复杂表格
单表多行多列、多表信息的知识问答和内容总结归纳
根据表格信息做条件判断、逻辑推理
最小值/最大值/最佳值计算,长表格结合 Text2SQL 和计算 API
按条件筛选表格内容,或根据 KV 数据生成表格
典型场景:符合 ToB 客户指令要求和身份认知的问答机器人(企业客服、行业专家、指导老师等角色)
知识精度要求高的场景(金融客服、政策问答)。
技术:构造正负样本对(相关/无关 context 对应正面回答/拒答),拼接不相关但有一定检索相似度的 context,让模型学习真实场景拒答能力。
标记答案来源的引用和定位。
技术:构造出引用/不出引用的正负样本,引用和答案同时输出,一个回答可对应多个参考来源。
包括反问澄清、格式规范、范围限制、角色设定等。构造泛化组合数据增强指令遵循能力,训练指令评估模型优选高质量指令。
RAG 实践中的多模态问答
在企业文档中,大量关键信息以图片形式存在——架构图、流程图、数据图表、产品照片等。如果 RAG 只能处理文字,就会丢失这些重要信息。多模态大模型(MLLM)能同时理解文字和图像,是 RAG 处理真实文档的必备能力。
💡 MLLM(Multimodal Large Language Model):多模态大语言模型,能同时处理文字、图片甚至视频的 AI 模型。
说明书/PPT 文档中,图片与文本顺序错位,正确图片不一定在对应文本附近,周围还有内容相近的干扰图片。需要从文档中准确关联多个图文对应关系。
用户输入图像并提问(如拍照操作手册某页提问),系统需在文档中找到相关信息,对干扰内容保持鲁棒,准确理解图文交错的查询意图。
文档内复杂自然图片(不带文字,包含复杂指示标记或流程/架构组织),正确答案不在文字中而在图中,需要深入理解图片内容。
金融财报PPT、教育教材题库文档问答。需要先识别图像内容,再做数学计算、知识推理,需要目标计数、位置关系判断、OCR 识别等多种能力。
将图片 OCR 为文字,走单模态 RAG
直接用多模态大模型处理
MLLM + RAG 技术联动
用户上传文档
支持 PDF/PPT/Word 等多种格式
Markdown 转换
文档解析模型提取文字和图片,保存到知识库
检索图文片段
根据用户查询,检索知识库中相关图文混合片段
多模态阅读理解
MLLM 根据检索到的图文序列和问题输出准确回答
构建多模态大模型分为三个阶段,从基础的图像理解到精细的任务适配层层递进:
模态信息的细节抓取与语义整合
使用 SAM(分割万物模型)和 CLIP(图文对齐模型)等将图片编码为模型能理解的特征向量,就像给图片做"翻译"。
让模型学会"图和文说的是同一件事"
使用海量图文对数据(COYO-700M、LAION-5B)和图文交错数据(MMC4、OBELICS、OmniCorpus)进行预训练,让模型学会图文对应关系。
针对具体任务精细调优
针对 RAG 场景中"看图回答"的需求,腾讯云设计了三种训练策略:
文档解析得到的局部图片通过动态分辨率训练,保证模型能看清图片中的细节内容(文字、数字、标注等)。
通过多种尺度的上下文构造训练,保证模型对逐渐增多的干扰图片、干扰文本保持鲁棒,不会因为干扰内容太多影响行业知识学习。
答案索引正确的图片 ID,通过正负样本保证出图准确率。增加据答功能,防止误报过多。覆盖说明书/金融/攻略/论文 4 大场景。
核心问题:如何看懂上下文中的图片?
覆盖说明书/金融/攻略/论文 4 大场景。回答准确率和出图准确率高。
训练策略:动态分辨率(看清图)+ 多尺度混合训练(锁定图)+ 正负样本(答对图)
核心问题:如何支持用户发图提问、回答带图?
利用问题改写模型、指令进化策略,修改用户问题主体和细节,优化摘要总结、带图问答的指令遵循能力。
功能:图查询功能 + 摘要功能
核心问题:如何对图片做复杂推理和计算?
两步流程:
按要求针对性地提取图像中的文本
识别并定位图像中的对象,擅长比较数量和识别空间关系
处理任何与图像内容相关的查询,善于分析图像
分析和解释图表信息,提取数据点、了解趋势、识别标题/轴/标签/图例
点击查看完整原始 PDF 页面