直接把公司内网的原始文档喂给模型,结果训出来的模型不仅学会了胡言乱语,甚至连基本的逻辑都丢了。
大模型微调界有一条铁律:Garbage In, Garbage Out(输入的是垃圾,产出的也是垃圾)。 尤其是对于采用 MoE(混合专家)架构的 DeepSeek-V3/R1,由于其对专家路由(Router)的分配极度敏感,数据的“干净程度”直接决定了微调的成败。
一、 格式的“物理纯度”:从文档到 JSONL
原始的 PDF、Word 或 Wiki 页面是不能直接喂给模型的。你首先需要将这些非结构化数据转化为指令对(Instruction Pairs)。
-
结构标准化: 数据必须严格遵循
{"prompt": "...", "response": "..."}的 JSONL 格式。 -
长文本截断: DeepSeek-V3 在预训练阶段处理了海量 Token,但在微调时,建议将单条数据长度控制在模型上下文窗口(Context Window)的 80% 以内,避免因内存溢出(OOM)导致训练中断。
-
特殊字符清洗: 剔除 HTML 标签、乱码、以及无意义的空格。对于代码数据,确保缩进和语法符号的完整性。
二、 逻辑的“化学纯度”:构建思维链(CoT)
如果你的目标是让 DeepSeek 具备类似 R1 的推理能力,简单的“问-答”是不够的。
-
注入推理过程: 对于复杂的业务逻辑,Response 部分不能只有一个最终结论。你需要模仿 DeepSeek-R1 的训练范式,加入
<thought>标签,详细写出解决问题的中间步骤。 -
自洽性检查: 确保同一逻辑下的不同样本之间没有事实性冲突。如果模型学到了互斥的知识,会直接导致路由权重(Routing Weights)发生剧烈震荡,进而引发训练不收敛。
三、 样本的“统计纯度”:去重与多样性
DeepSeek 的预训练语料经过了极度严格的去重(De-duplication)处理。
-
语义去重: 不要重复喂相似度高于 90% 的样本。冗余数据会导致模型对特定路径产生“病态依赖”,从而引发严重过拟合。
-
任务配比: 数据分布应尽量覆盖你业务场景的各个子维度。如果 90% 的数据都是同一种话术,模型会迅速丧失处理其他指令的能力,即所谓的“灾难性遗忘”。
四、 安全与价值观的“底色纯度”
即便是在私有部署环境下,数据的安全性也至关重要。
-
脱敏处理: 必须剔除数据中的姓名、电话、密钥等隐私信息。模型具有极强的记忆能力,微调可能会导致私密信息在后续对话中被意外“吐出”。
-
毒性过滤: 哪怕是内部文档,也要过滤掉带有偏见、歧视或违反价值观的内容。DeepSeek 在对齐(Alignment)阶段投入了巨大精力,脏数据会破坏这种对齐稳定性。
避坑建议:如何低成本获取“干净”数据?
如果你的人力不足以支撑百万级的标注,可以尝试以下路径:
-
自动化合成: 利用现有的 DeepSeek-R1 官方 API,对你的原始文档进行指令蒸馏(Distillation),生成初步的指令对。
-
人工抽检: 随机抽检 10% 的合成数据进行人工校对。实验证明,500 条高质量、纯净的指令数据,效果往往好于 5 万条带有噪声的脏数据。