1. 概述
本文档基于天翼云息壤星辰TokenHub运营服务平台,为企业用户提供构建 RAG(检索增强生成)知识库问答系统的最佳实践指导。企业用户可在自建RAG系统时参考本文档进行合理的模型选型,从而构建高效、准确的企业知识库智能问答系统。
1.1 文档目标
本最佳实践案例旨在帮助企业技术团队:
理解 RAG 系统的核心架构与工作流程
掌握知识入库环节涉及的模型选型与配置
掌握知识问答环节涉及的模型选型与配置
了解基于天翼云星辰TokenHub运营服务平台的模型部署实践
1.2 适用范围
本指南适用于以下场景:
企业自建知识库智能问答系统
基于大模型的企业知识管理平台
需要定制化 RAG 能力的业务场景
通过天翼云息壤星辰TokenHub运营服务平台进行模型推理的企业
2. RAG 系统架构概述
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合信息检索与大语言模型生成的技术架构。RAG 系统的工作流程主要分为两个阶段:知识入库阶段和知识问答阶段。
2.1 RAG 系统工作流程
RAG 系统的完整工作流程如下:
知识入库阶段 | 知识问答阶段 |
|---|---|
1. 文档上传与解析 | 1. 用户问题输入 |
2. 文本切块(Chunking) | 2. Query 向量化 |
3. Embedding 向量化 | 3. 向量相似度检索 |
4. 向量数据库存储 | 4. LLM 生成回答 |
2.2 核心组件说明
组件类别 | 功能描述 | 关键模型 |
|---|---|---|
文档解析 | 处理 PDF、Word、Markdown 等格式文档 | 文档解析模型 |
文本切块 | 将长文档分割成语义完整的小块 | 切块策略/模型 |
向量化 | 将文本转换为高维稠密向量 | Embedding 模型 |
向量存储 | 存储和索引向量,支持高效检索 | 向量数据库 |
问答生成 | 基于检索结果生成回答 | LLM 模型 |
结果优化 | 对检索结果进行相关性排序 | Reranker 模型 |
3. 知识入库环节模型选型
知识入库是 RAG 系统的基础环节,负责将企业文档转化为可检索的向量数据。该环节主要涉及文本切块模型和 Embedding 向量化模型。
3.1 文本切块模型(Chunking)
文本切块是将长文档分割成适合检索和理解的小文本块的过程。合理的切块策略直接影响检索质量和生成效果。
3.1.1 常见切块策略
切块策略 | 描述 | 适用场景 |
|---|---|---|
固定长度切块 | 按固定字符数或 token 数切分 | 通用场景,文档结构简单 |
滑动窗口切块 | 带重叠区域的固定长度切分 | 需要保留上下文连贯性 |
语义切块 | 基于语义边界(段落、句子)切分 | 文档结构清晰,内容关联性强 |
递归切块 | 按层级结构递归切分 | 复杂文档,如 Markdown、HTML |
父子块切块 | 大块+小块的层级结构 | 需要细粒度检索又保留上下文 |
3.1.2 切块策略选择建议
在选择切块策略时,需要考虑以下因素:
文档类型:结构化文档(Markdown、HTML)适合递归切块;非结构化文档(PDF、Word)可使用语义切块
块大小:一般建议单个块在 256-512 tokens 之间,过大会导致语义稀释,过小会丢失上下文
重叠度:使用滑动窗口时,建议 10-20% 的重叠度以保持上下文连续性
Embedding 模型适配:不同的 Embedding 模型对输入长度有不同的限制和要求
3.2 Embedding 向量化模型
Embedding 模型是 RAG 系统的核心组件,负责将文本转换为高维稠密向量,使语义相似的内容在向量空间中距离相近。
3.2.1 BGE-M3 模型详解
BGE-M3(BAAI General Embedding-M3)是智谱AI开源的文本嵌入模型,在 MTEB(Massive Text Embedding Benchmark)评测中表现优异:
多语言支持:支持 100+ 语言的文本嵌入
高密度检索:支持 ColBERT 式的多向量检索模式
长文本支持:最大输入长度可达 8192 tokens
精准语义捕捉:能够精准捕捉文本语义,有效提高向量检索的准确性
强大泛化能力:在大规模中文数据上充分训练,具备出色的泛化能力
4. 知识问答环节模型选型
知识问答是 RAG 系统的核心环节,负责将用户问题转化为回答。该环节主要涉及 Query 向量化模型、大语言模型(LLM)和重排模型(Reranker)。
4.1 Query 向量化模型
Query 向量化与知识入库使用相同的 Embedding 模型,确保查询向量与文档向量的语义空间一致。
4.2 大语言模型(LLM)选型
LLM 是 RAG 系统的「大脑」,负责基于检索到的内容生成最终回答。选择合适的 LLM 对回答质量和用户体验至关重要。
4.2.1 主流 LLM 模型对比
模型名称 | 特点 | 中文能力 | 适用场景 |
|---|---|---|---|
通义千问 | 阿里自研,开源可商用 | 优秀 | 企业知识库 |
DeepSeek | 高性能,低成本 | 优秀 | 复杂推理场景 |
GLM-5 | 智谱AI,中文优化 | 优秀 | 学术/专业问答 |
4.2.2 LLM 选型建议
中文企业场景:推荐使用通义千问或DeepSeek,对中文语义理解更精准
成本敏感场景:DeepSeek系列在保持高性能的同时具有成本优势
长文档理解:选择支持长上下文的模型
需要精确引用:选择支持工具调用和引用溯源的模型
4.2.3 LLM 深度思考模式
模型开启深度思考可在生成回复前先进行推理,从而在逻辑推理、数学计算等复杂任务中提升准确性。星辰TokenHub运营服务平台支持深度思考的模型分为两种:
混合推理模式:通过enable_thinking参数控制思考开关
设为true:模型先思考再回复;
设为false:模型直接回复;
仅深度思考模式:模型始终在回复前进行思考,无法关闭,即无需设置enable_thinking参数。
启用思考模式可提升回复质量,但会增加响应延迟和Token消耗。使用混合推理的模型时,可根据问题复杂度动态切换,建议简单任务(日常聊天、简单问答)将enable_thinking设为false关闭思考;复杂任务(逻辑推理、代码生成、数学解答)将enable_thinking设为true开启思考。
说明
部分模型支持混合推理模式,具体可通过模型卡片API文档查看是否支持enable_thinking参数。
4.2.4 LLM 流式输出
在实时聊天或长文本生成应用中,可开启流式输出通过持续返回模型生成的文本片段,解决长时间等待全部输出内容和触发服务端超时导致任务失败的问题。
配置方式:通过stream参数控制是否以流式接口的形式返回数据
设为true:模型先思考再回复;
设为false:模型直接回复;
查看Token消耗:OpenAI协议默认不返回Token消耗量,若需要统计流式输出模式下token数目,需将stream_options参数配置为stream_options={"include_usage":True}。
4.3 Reranker 重排模型
Reranker(重排模型)用于对初步检索结果进行二次排序,提高相关性。典型的两阶段检索架构是:向量检索 + Reranker 重排。
4.3.1 Reranker 模型
模型名称 | 模型提供方 | 特点 | 适用场景 | 模型服务请求路径 |
|---|---|---|---|---|
BGE-Reranker-V2-m3 | 北京智源研究院(BAAI) | 支持 100+ 种语言,具备强大的跨语言检索能力(如用中文搜英文),且对长文本支持更好,整体运行效率更优。 | 出海/国际化业务、存在多语种混合的知识库,或文档切块(Chunk)较长的综合性 RAG 场景。 | https://wishub-x6.ctyun.cn/v1/rerank |
BGE-Reranker-Large | 北京智源研究院(BAAI) | 参数量大,具备极深度的中英文语义理解能力,重排打分的精准度极高。 | 对检索准确率要求极苛刻的严肃场景(如政务、金融、法务),主要处理纯中文或纯英文文档。 |
4.3.2 Reranker 使用建议
对于检索质量要求高的场景,建议使用 Reranker 进行结果优化
一般流程:向量检索返回 Top 20-50 条结果 → Reranker 重排 → 取 Top 5-10 条送入 LLM
Reranker 会增加响应延迟,需根据业务需求权衡
5. 天翼云星辰TokenHub运营服务平台模型部署实践
天翼云息壤星辰TokenHub运营服务平台提供强大的模型推理服务能力,支持企业快速部署和管理各类模型。调用步骤:
5.1 获取App Key
方式一:
在控制台左侧菜单栏进入“概览”,点击“API接入”
在API快捷接入页面:
选择服务组:从下拉菜单中选择第一步创建的服务组。如果尚未创建,可点击“确认创建并选择”快速创建默认服务组
选择模型:从模型下拉菜单中选择需要接入的模型
选择完成后,页面下方将自动展示该模型支持的所有编程语言的示例代码
方式二:
在左侧菜单栏进入“服务接入”,点击“+创建服务组”,填写服务组名称、服务组描述、生效时间、配置服务等信息。
创建服务组后,从服务组上面获取APP KEY。
5.2 调用模型API
Embedding向量化模型、LLM大语言模型、Reranker(重排模型)的请求路径后缀不同:
功能分类 | 支持模型类别 | 请求路径后缀 | 请求完整路径 | 功能描述 |
chat | 文本生成、图像理解 | /chat/completions | https://wishub-x6.ctyun.cn/v1/chat/completions | 针对描述会话的消息列表,模型将返回响应。 |
Embeddings | 文本向量化 | /embeddings | https://wishub-x6.ctyun.cn/v1/embeddings | 创建表示输入文本的嵌入向量。 |
Reranker | 重排序 | /rerank | https://wishub-x6.ctyun.cn/v1/rerank | 通常用于计算查询和文档之间的相关性分数。 |
模型详细API文档可查看对应模型卡片-API文档
6. RAG 系统最佳实践建议
6.1 知识入库最佳实践
文档预处理:上传前对文档进行清洗和格式化,去除无关干扰信息
合理切块:根据文档结构选择合适的切块策略,建议块大小在 256-512 tokens
模型选择:中文企业知识库推荐使用BGE-M3
增量更新:支持文档增量入库,避免全量重建索引
6.2 知识问答最佳实践
Query 优化:引导用户使用清晰、具体的问法,提高检索准确性
检索参数调优:根据场景调整 Top-K 检索数量,平衡召回率和精确率
Prompt 工程:设计高质量的 Prompt,引导 LLM 准确引用检索内容
结果溯源:为回答提供引用来源,增强用户信任度
6.3 性能优化建议
缓存策略:对频繁查询的 Embedding 结果进行缓存,减少重复计算
异步处理:知识入库采用异步处理模式,不阻塞主流程
向量化加速:使用 GPU 加速 Embedding 模型推理
负载均衡:部署多实例服务,均衡请求负载