银行非结构化数据价值发掘的隐形地基:Tokenization 如何决定 RAG 与智能知识底座的质量上限

核心摘要

  • 文档解析出来、chunk 切好了、向量也建了,检索结果却飘忽不定,生成内容张冠李戴
  • 数据契约(data contract)
  • 如何把 tokenization 从"看不见的预处理细节"升级为一项被显式管理、可度量、可测试的工程质量

银行非结构化数据价值发掘的隐形地基:Tokenization 如何决定 RAG 与智能知识底座的质量上限

署名:金融行业风险管理从业者

一、被低估的资产与一道被忽视的关卡

银行手里最值钱、却最没被用起来的东西,从来不是结构化表里的字段,而是那 80% 以上的非结构化数据:尽调报告、信贷合同、监管公告、OCR 扫描件、邮件往来、会议纪要、行业研报、内外部审计底稿。过去十年它们沉睡在文档管理系统里,直到 RAG(检索增强生成)与智能知识底座的出现,才让"从自然语言里直接挖出可用的风控事实"成为现实。

但实务中大量知识底座项目倒在同一个地方:文档解析出来、chunk 切好了、向量也建了,检索结果却飘忽不定,生成内容张冠李戴。团队往往归因于"嵌入模型不够好"或"召回算法要换",却很少人到过模型能看到文本的最底层去检查——那段从原始字符串到 token ID 的转换。

一位在做 tokenization 的工程师 @techNmak 在《Understanding Tokenization》手册里给出了一个贯穿全书的判断:

Tokenization 是文本与模型之间的数据契约(data contract)。模型为这套契约产生的 token ID 学习参数;换掉契约,ID 对应的所学含义不会自动对齐。

对银行知识底座而言,这一句话足以改变提问方式:我们问的不该是"要不要 tokenization"(它是一道绕不开的关卡,任何非结构化文本进 LLM 都必须先被切分),而应该是——如何把 tokenization 从"看不见的预处理细节"升级为一项被显式管理、可度量、可测试的工程质量

二、Tokenization 是什么:四段流水线与"token 不等于词"

定义手册用四段流水线拆穿"tokenizer 就是切文本"的粗浅理解:

  1. 归一化(Normalization):Unicode 规范化(NFC/NFKD)、大小写、去重音、空白整理。这一步会不可逆地改写原始文本——两个视觉相同的字符串(如组合变音与合成变音)在归一化后合流,同时也可能丢失对任务有用的区分度。
  2. 预切分(Pre-tokenization):约定子词模型"不允许跨过"的边界,本质是把词表预算花在更有价值的位置。
  3. 子词模型(Subword model):BPE、Unigram、WordPiece 等真正的切分算法,其中 BPE 是"按语料频率迭代合并",Unigram 是"按片段概率搜索最优切分",而 SentencePiece 只是框架、底层仍是 BPE 或 Unigram 之一。
  4. 后处理(Post-processing):补特殊 token、对话模板、工具边界。

对银行读者,这里最重要的三个推论是:

这三条,恰好是银行知识底座五个质量事故的根源(图 1 展示了文本进入知识底座前必经的 token 关卡)。

!非结构化数据进入知识底座必经的 Tokenization 四段流水线

三、Tokenization 如何悄悄决定 RAG 与知识底座质量:五条传导路径

3.1 Chunk 与 token 边界的失配

常见做法是"按字符数或约等于 N 个 token 切 chunk"。但子词切分不感知语义:一个 chunk 的起止点落在 token 层时,很可能正好把风控告警、保证条款、豁免条件拦腰截断。手册里两个形似词只因训练语料的 pair 频次不同就被切成不同片段(hug 一族 vs mug 一族的 BPE 示例),正是"切分由语料统计决定、而非语法决定"的缩影——银行文档里"不/得/逾期"“抵/质押/顺位”这类边界,几乎完全由词表学会的合并规则说了算。切片策略若不以语义段落边界为锚、只按 token 预算硬切,召回的就是"语义半截"。

3.2 token 密度经济学:同一个上下文,装进去的"有效信息"不同

模型的上下文上限按 token 计数,而非字符或语义单元。手册给出的算术结论简单到残酷:若 tokenizer A 对等价文本比 tokenizer B 多消耗 50% 的 token,那么 A 在同一份 token 预算里就装不进同样多的内容。

银行知识底座的现实是异源、多语言、多脚本:中文尽调报告、英文债项公告、含公式的估值底稿、OCR 后的手写备注,其 token 密度差异极大(多语言场景下,语料中占比不足的脚本会被切成大量短片段)。于是同一 128K 上下文,"看似"装下了 N 份文档,实际有效信息相差数倍。上下文预算的规划必须按"异源 token 密度"重新核算,否则召回拼装时先到先得、关键文件被挤出窗口。

3.3 脏数据的 tokenizer quirks

OCR 噪声、表格、公式、数字是银行非结构化数据的常态,而手册专门提示:代码、空白、数字、标识符最容易暴露 tokenizer 的怪癖。

3.4 双 tokenizer 分裂:嵌入的不一定等于生成的

知识底座是"双模型"系统:嵌入模型把 query 与文档向量化用于检索,生成 LLM 负责作答,二者各自携带自己的 tokenizer。手册反复强调"token 到 ID 的映射必须与模型参数严格一致"——这要求工程上至少做到:

3.5 契约漂移与 glitch tokens

知识底座是动态系统:换更优的模型、升级词表、引入新的文档语种,都是常规操作。但手册指出三类"漂移"风险:

这五条路径最终汇聚成同一个结果:知识底座的检索召回率、生成忠实度被 token 层悄悄锁死(图 2)。

!Tokenization 影响知识底座质量的五条传导路径

四、如何确保质量效果:Tokenization 视角的 RAG 工程质量清单

回答"如何做",核心是把 tokenization 作为知识底座的第一道质检闸,而不是甩给分词库的默认行为。六步落地:

4.1 进 tokenizer 之前:把"归一化"变成清洗闸

手册指出,任何 tokenizer 的第一步都是归一化,且可能有损。银行应主动控制在"进模型之前"做的清洗,把它变成显式的数据契约:

4.2 chunk 设计:按 token 预算 + 语义边界,而非纯字符数

用语义段落(条款、章节、披露项)做边界锚点,再按 token 预算约束 chunk 体量;对表格、公式等结构化片段单独建模(如转成"结构化行 + 语义说明"再入切分)。任何 chunk 策略变更都要重跑检索回归,因为切分即 token 序列、token 序列即模型看到的全部。

4.3 建立"token 契约登记表"

手册第 31 节给出一份十问清单,平移为银行知识底座的契约登记表:输入基础(码点/字节/预切分)→ 归一化规则 → 预切分边界 → 子词算法 → 词表大小与训练语料 → 覆盖与字节回退 → 特殊 token 与模板 → 效率指标(bytes/token、每词 token 数)→ 模型耦合(token 到 ID 映射与嵌入/输出参数严格一致)→ 评测协议。每条登记后,契约变更走变更评审——换 tokenizer、换词版、新增语种都是高风险变更。

4.4 异源密度监测:让"碎片化"可观测

对每条数据源持续统计 bytes/token 与 token/词,建立密度基线。当某个来源(如新接入的多语种债项库、某家 OCR 供应商)相对基线碎片化严重,说明它的词表分配不足或清洗不到位——先救数据源,而不是改检索参数

4.5 固定评测协议:指标只在"同一契约"下可比

perplexity 之类按 token 归一化的指标不可跨 tokenizer 比较;RAG 场景同理。上线前建立固定契约的基准集(代表性非结构化样本 + 标注过的"应有召回/应有引用"),检索与生成分开评测;任何一层(chunk、tokenizer、嵌入、模型)的变更,必须在同一基准上前后对比,杜绝"模型换了、指标却不可比"的假象。

4.6 与安全耦合:清洗是防注入的第一道入口

这在此前关于 Harness Engineering 的文章里已埋下伏笔:Agent 安全的第一层是"输入隔离"。文档中嵌入的恶意指令(提示注入)首先要过归一化与清洗闸;同时手册引用了"对抗性 tokenization"的研究——对同一段有害文本换一种合法切分,可能削弱模型的安全限制。因此知识底座的安全评测,必须在与线上完全一致的 tokenizer 接口上执行,而不是在评测环境里另用一套切分,否则测出来的是"另一个系统的安全"。

上述六步形成可回灌的闭环(图 3):每一次评测与监测的异常,都回流为清洗规则与切分策略的修订。

!Tokenization 视角的 RAG 工程质量闭环

五、结论:把 tokenization 从"预处理细节"升级为"地基工程"

回答最初的问题:

知识底座的"智能",一半在检索算法,另一半藏在"把海量 dirty text 变成干净、稳定、可测的 token 流"这件脏活累活里。而后者正是 WordPiece、BPE、Unigram 这些名字背后,银行工程团队最值得补齐的一块地基。


本文技术机理由公开的 tokenization 技术资料(含 @techNmak 的《Understanding Tokenization》技术手册,覆盖 Unicode 归一化、BPE/Unigram/WordPiece、字节回退、上下文预算、多语言词表分配、glitch tokens 等要点)与已有 RAG/知识底座工程实践整理,观点与银行落地建议为作者个人归纳。

关于作者

毕超,博士、高级工程师(计算机技术专业),金融行业风险管理从业者。

清华大学校友导师,中国人工智能学会终身会员,中国计算机学会学术审稿专家。

研究方向:大语言模型、数字金融、金融科技。2024年获北京市西城区"西融计划"青年拔尖人才。

了解更多:关于作者