杠精派
派聪明
0/512

热门评论

微信用户 2026年04月14日 11:03
引用原文:先标注 200 到 500 组 QA 对,每组包含一个问题和对应的标准答案 chunk。然后把这些问题批量放到检索模块,拿到返回结果,和标注结果做对比,算上面三个指标。”
详细说说这个是怎么测试的
点赞
回复1 取消回复
微信用户 2026年04月14日 11:04
@派聪明
点赞
回复 取消回复

7 条评论

🦅 🦅 🦅 2026年05月08日 15:46
引用原文:说到底,切片的目的是把长文档拆成‘语义单元’,每个单元表达一个相对独立的主题。这个粒度和存储大小无关,和语义有关。按字节切跟按句号切一样不靠谱,只有按语义切才有意义。”
这张图用的是 LangChain 最常用的RecursiveCharacterTextSplitter,它的切分逻辑是纯字符驱动,完全不理解文档结构: 它不知道什么是标题、什么是段落、什么是章节 它只认你给的分隔符列表:[段落分隔符(\n\n), 换行符(\n), 句号(。), 逗号(,), 空格( )] 它会按分隔符优先级从高到低尝试拆分,直到每个 Chunk 的 token 数小于等于chunk_size=512 这会导致什么致命问题? 标题和正文被强行拆分:比如 "3.2 Redis 缓存层" 这个标题被拆到上一个 Chunk 的末尾,正文被拆到下一个 Chunk,检索时只能找到正文,不知道它属于哪个章节 段落中间被截断:一个完整的法律条款被拆成两半,单独看任何一半都读不懂 不同章节的内容被拼到同一个 Chunk:上一章的最后一段和下一章的第一段被拼在一起,语义完全混乱 这就是为什么我们后面需要做上下文提取来补全章节信息 —— 因为基础切分把结构全拆碎了,只能事后补救。 二、工业级正确做法:先识别标题段落,再做 Chunk 切分 这是现在所有生产级 RAG 系统的标准流程,和图里的基础切分正好反过来: plaintext 原始文档 → 文档结构解析(识别标题/段落/表格) → 按结构切分大块 → 大块内递归切分小块 → 绑定结构元数据 具体怎么结合标题段落? 1. 第一步:先做文档结构解析(最关键) 用专门的文档解析工具(如 Unstructured.io、PyMuPDF、Markdown 解析器),把原始文档解析成结构化的树状结构: plaintext 文档 ├─ H1: 第3章 系统设计 │ ├─ H2: 3.1 整体架构 │ │ └─ 段落1: 系统分为三层... │ │ └─ 段落2: 各层职责... │ ├─ H2: 3.2 存储分层 │ │ ├─ H3: 3.2.1 ElasticSearch检索层 │ │ │ └─ 段落1: ES负责存储Chunk和向量... │ │ ├─ H3: 3.2.2 Redis缓存层 │ │ │ └─ 段落1: Redis负责缓存上下文... 这一步会识别出所有标题的层级、每个段落的起止位置、表格和图片的位置。 2. 第二步:按标题层级切分大块 绝对不允许跨标题切分: 每个 H2 章节作为一个独立的大块 如果 H2 章节太长(超过 2048 token),再按 H3 子章节切分 保证同一个大块内的内容都属于同一个标题下,语义是连贯的 3. 第三步:在大块内部用递归切分拆成小块 在每个标题块内部,再用图里的递归切分方法,拆成 512 token 的小块: 这样就不会出现跨标题、跨章节的 Chunk 小块之间的重叠也只在同一个标题内部,不会把不同章节的内容重叠在一起 4. 第四步:给每个小块绑定完整的标题元数据 每个 Chunk 生成时,自动带上它所属的所有上级标题: json { "chunk_id": "doc_123_chunk_5", "text": "Redis负责缓存上下文和会话状态", "metadata": { "h1": "第3章 系统设计", "h2": "3.2 存储分层", "h3": "3.2.2 Redis缓存层", "page": 16 } } 三、结合标题段落切分的 3 个核心优势(面试必说) 从根源上解决断章取义不会出现标题和正文分离、跨章节拼接的问题,每个 Chunk 本身就带有完整的上下文背景,模型不用再猜它属于哪里。 大幅提升检索准确率检索时可以直接按标题过滤,比如 "只查 3.2 存储分层的内容",也可以在检索结果中优先展示标题匹配的 Chunk。 简化后续的上下文提取工作不用再事后去解析章节信息,所有结构信息在切分阶段就已经提取好了,上下文提取只需要建立 Chunk 之间的前后关联即可。
4
回复 取消回复
山北雨夜漫步 2026年05月02日 13:41
引用原文:,5000 万条 2048 维向量,P99 延迟在 100ms 以内
@派聪明 怎么样测的
点赞
回复 取消回复
山北雨夜漫步 2026年05月02日 13:18
引用原文:业务层面,我们限制单次上传不超过 20 个文件
@派聪明 这个前端能实现吗
点赞
回复 取消回复
山北雨夜漫步 2026年05月02日 13:15
引用原文:“重排模型用的哪个
@派聪明 代码中没用重排模型呀
点赞
回复 取消回复
liweihao 2026年04月15日 12:09
引用原文:ES 的存储优化有几个思路。第一,用稠密向量索引。ES 8.x 之后支持 HNSW 索引,向量检索不需要暴力遍历,建了索引之后检索速度能提升 10 倍以上
@派聪明 详细讲解一下这条
点赞
回复 取消回复
微信用户 2026年04月14日 11:03
引用原文:先标注 200 到 500 组 QA 对,每组包含一个问题和对应的标准答案 chunk。然后把这些问题批量放到检索模块,拿到返回结果,和标注结果做对比,算上面三个指标。”
详细说说这个是怎么测试的
点赞
回复1 取消回复
微信用户 2026年04月14日 11:04
@派聪明
点赞
回复 取消回复

目录