前言
2025年,AI 领域发生了一件引发广泛讨论的大事。

DeepSeek 仅用600万美元的训练成本,就打造出了一个足以和 OpenAI 正面竞争的大模型。这一消息传出后,整个行业都被震动了。随后,OpenAI 也迅速表态,指控 DeepSeek 使用了一种名为“蒸馏”(Distillation)的技术,相当于走了一条更快的捷径。
听起来确实很有冲击力,但“蒸馏”究竟是什么?
与此同时,在做 AI 应用开发时,尤其是搭建 RAG 知识库系统,开发者每天都要处理各种 Word、PDF、网页等非结构化内容。这些杂乱的源文件到底该如何高效喂给 AI? 这就引出了另一项关键能力——文档切割(Document Chunking)。
今天这篇文章,主打一次讲明白两个高频概念:不堆砌术语,直接把模型训练里的知识蒸馏和AI 应用开发中的文档切割完整讲透。
Part 1:大模型的“吸星大法”——知识蒸馏
1. 蒸馏何谓?从化学到AI
“蒸馏”这个词,学过初中化学的人基本都不陌生。
比如酿白酒,本质上就是利用不同物质沸点不同的特性,加热后让酒精优先变成蒸汽,再冷却回收。说白了,核心就四个字:取其精华。
放到人工智能和大模型训练里,蒸馏的底层逻辑其实是一样的。只不过被提炼的对象,不再是“酒精”,而是“知识”。我们要做的,就是把一个大模型(老师模型)里更有价值的能力和知识,“提纯”出来,再传递给一个更小的模型(学生模型)。
简单理解,就是让小模型高效学习大模型的本事。
2. 死记硬背的笨办法(硬标签)
先设想一个场景:如果你要带一个小学徒,怎么才能让他尽快上手?
最直接的方法,就是直接给答案。
比如给大模型(老师)看一张猫的图片,大模型判断:“这是猫。” 接着我们把“猫”这个标准结果再告诉小模型(学生),让它照着学习。在机器学习里,这种明确、单一的标准答案就叫硬标签(Hard Label)。
这像什么?有点像你给一个新手厨师一张固定菜谱,上面写着:“盐3克,糖5克。”
新人照着做,当然也能把菜做出来,但他并不明白为什么是3克盐,而不是5克。他学会的只是操作步骤,而不是背后的判断逻辑和经验。
3. 模仿思维的窍门(软标签与暗知识)
真正有价值的知识蒸馏,并不是这么简单地“复制答案”。它更关注的不是大模型给出了“什么答案”,而是大模型到底是如何判断出这个答案的。
大模型在做预测时,并不是只吐出一个孤立结果,而是会对所有可能答案分配对应的概率。
比如,给大模型看一张图片,它可能会输出:
- 猫:概率 80%
- 狗:概率 10%
- 老虎:概率 5%
- 鸡:概率 1%
这整组概率分布,就是软标签(Soft Label)。
你会发现,这比单独告诉学生“答案是猫”包含的信息丰富得多。软标签实际上在告诉小模型:猫和狗虽然不同,但有一定相似性;猫和老虎之间的关联度可能更高。这种大模型在海量数据训练中逐步形成的“相似性认知”和“类比能力”,就是常说的暗知识。
4. 蒸馏的三大优势与边界
三大优势:
- 数据利用效率更高:小模型不必重新看海量原始数据,直接学习经过提炼的“软标签”,训练效率明显更高。
- 能继承暗知识:模型学到的不只是标准答案,而是更细腻的判断关系,因此泛化能力通常更好。
- 训练成本更低:相比从零训练大模型,训练一个蒸馏后的小模型便宜得多,这也是 DeepSeek 将成本压到 600 万美元的重要原因之一。
三大边界(也必须理性看待):
- 学生模型存在上限:小模型的参数规模和结构能力是有限的,再怎么学,通常也很难完全超越老师模型。
- 更多是学结果,不一定学到完整推理链路:它学到了输出风格和判断分布,但不代表真正掌握了深层推理过程。
- 过度蒸馏可能导致同质化 :如果大家都从同一个头部模型中蒸馏能力,最终做出来的模型在思路和表现上可能越来越像,创新空间和多样性都会被压缩。
Part 2:AI应用开发的“第一步”——文档切割(Document Chunking)
讲完大模型训练,再把视角切回 AI 应用落地与日常开发。
现在最热门的 AI 应用方向之一是什么?答案很明确:RAG(检索增强生成),也就是常见的知识库问答系统。但知识库里的内容从哪里来?又该如何整理后喂给 AI?这时就轮到文档切割出场了。
1. 知识库的源头:Loader(加载器)
知识来源往往非常复杂:可能是本地的 Word 文档、PDF 文件,也可能是 B 站视频字幕、某个网页 URL,甚至是一条高质量的 Twitter 内容。
面对这些格式完全不同的数据,如何统一转换成向量数据库可处理的内容?
在 Langchain 的体系里,第一步通常就是通过 Loader(加载器) 来完成。它负责把原始文件读取进来,并输出标准化的 Document 对象(包含 pageContent 内容和 metadata 元数据)。
Langchain 社区已经提供了 180 多种加载器,基本覆盖了开发中常见的大多数数据格式和内容来源。
只讲概念不够直观,直接看一段真实示例代码。比如,你想把掘金上的一篇文章写入知识库:
ja vascript
复制代码import "dotenv/config";
import { CheerioWebBaseLoader } from "@langchain/community/document_loaders/web/cheerio";// 访问网址并提取文档内容
// cheerio 可以传递 css 选择器来精准定位,把网页里无关的侧边栏、广告统统过滤掉
const cheerioLoader = new CheerioWebBaseLoader(
"https://juejin.cn/post/7660707431753678854",
{
selector: '.main-area p' // 只抓取文章的主体段落
}
);// 加载!输出是一组 Documents
const documents = await cheerioLoader.load();
console.log(documents);
2. 第二步:分块(Splitter)
文档加载完成后,是不是就可以直接做向量化并存入向量数据库了?
千万不要这么做!
一个 PDF 往往动辄几十页,一篇长文章也可能有几千字。如果把整篇内容直接作为一个向量去检索,就好比在大海里捞针。因为用户的问题通常只对应其中某一小段信息,如果把整个大文件一股脑塞进去,检索结果的噪音会非常大,AI 很难命中真正相关的答案。
所以,必须先切分。这就是 Splitter(分块器) 的核心职责。
我们需要把长文档拆成一个个具有相对完整语义、大小又比较合适的 Chunk(文本块)。这样一来,当用户发起检索或提问时,向量数据库就能更精准地召回最相关的那部分内容,再把它提供给大模型生成答案。
文档切割的核心原则:
- 不能太大:块太大,会降低检索精度,召回内容也容易夹杂无关信息。
- 不能太小:块太小,则容易破坏上下文,导致语义不完整。
- 要有重叠:相邻块之间通常要保留一定重叠区域,避免关键信息正好被切断。
总结一下
今天这篇文章,其实讲清楚了两件在 AI 开发中都非常重要的事:
- 知识蒸馏:它是模型与模型之间的能力传递。小模型通过学习大模型输出的“概率分布”(软标签)来吸收“暗知识”,是大模型降本增效的重要手段。
- 文档切割:它是数据与应用之间的关键桥梁。先用 Loader 读取各种异构数据,再用 Splitter 把内容切成更适合检索的 Chunk,这是构建 RAG 知识库与智能问答系统的基础能力。
一个解决“模型如何更高效地学会能力”,一个解决“外部数据如何更好地喂给模型”。虽然它们属于不同环节,但都称得上是 AI 工程化落地中不可缺少的“手术刀”。
如果你正在关注大模型训练、RAG 知识库、文档切分或 AI 应用开发,希望这篇“双拼”内容能真正帮你建立起清晰认知。
