Back to blog
    model-distillationdata-preparationon-device-aifine-tuningworkflow

    从教师模型到边缘设备:模型蒸馏的数据准备工作流

    当目标是计算受限的边缘设备时,准备训练数据的逐步工作流。从定义硬件约束到验证端侧性能。

    Edward Xi Yang

    你手上有企业数据,也有一台目标设备:一部带 NPU 的手机、一台带神经引擎的笔记本,或者工厂车间里的一台边缘设备。你需要一个小模型,在这台设备上把一件具体的任务做好。

    从企业数据到部署上线的边缘模型,中间有十二个步骤。大多数指南会跳过步骤 4 到 8,也就是数据准备的那一段,而这正是大多数边缘 AI 项目表现不佳的原因。

    下面是完整的工作流。

    步骤 1:定义目标约束

    在你动第一份文档之前,先用具体的数字把部署目标定下来。

    硬件规格:

    • 设备:Snapdragon 8 Gen 3(Hexagon NPU)、Apple A17 Pro(ANE)、Intel Core Ultra(NPU)、NVIDIA Jetson Orin,或其他特定的边缘硬件
    • 留给模型的可用内存:2GB、4GB、8GB、16GB
    • 算力预算:可用于推理的 TOPS(每秒万亿次运算)

    模型大小预算:

    • 0.5B 参数:Q4 下约 300MB,适合移动端 NPU
    • 1B 参数:Q4 下约 600MB,适合内存不低于 6GB 的平板和手机
    • 3B 参数:Q4 下约 1.8GB,适合笔记本和高端平板
    • 8B 参数:Q4 下约 4.5GB,适合配有独立神经引擎的笔记本

    生产参数:

    • 上下文窗口:512、1024 或 2048 个 token(影响内存占用和延迟)
    • 延迟预算:每次推理 20ms、50ms、100ms 或 200ms
    • 输出格式:分类标签、JSON 对象、短文本、结构化抽取
    • 吞吐量:设备必须承受的每秒查询数

    先把这些写下来再往下走。后续的每一个决定都建立在它们之上。

    步骤 2:选择教师模型

    教师模型决定了你的质量上限,学生模型要学的那批合成训练数据由它生成。

    学生模型小于 1B 时: 用 70B 以上的教师模型。教师和学生之间的质量差距很大(参数量相差 140 倍),所以需要尽可能强的教师模型,把知识迁移的效果拉满。

    学生模型在 3B 到 8B 时: 30B 到 70B 的教师模型就够用。差距缩小之后,稍小一些的教师模型同样能产出有效的训练数据。

    选教师模型时要考虑的几点:

    • 条件允许的话,教师模型本身先在你的领域上微调过。一个通用 70B 模型生成的合成医疗数据,可用性比不上在临床文本上微调过的 70B 模型。
    • 数据生成阶段教师模型跑在云端 GPU 上,尺寸不受目标设备的限制。
    • 如果对教师模型做领域微调不可行,就在合成生成时用 RAG 挂上你的企业文档。

    步骤 3:生成合成训练数据

    用教师模型生成领域相关的训练样本,同时给生成过程加上约束。

    面向 1B 以下目标的生成参数:

    • 最大输出长度:与学生模型的生产上下文窗口一致(例如 512 个 token)
    • 温度:0.3 到 0.5(一致性优先于多样性)
    • 推理深度:限制在 2 到 3 步的链条内
    • 输出格式:每一条样本都与生产格式完全一致

    面向 3B 到 8B 目标的生成参数:

    • 最大输出长度:与学生模型的生产上下文窗口一致(例如 2048 个 token)
    • 温度:0.5 到 0.7(中等多样性)
    • 推理深度:3 到 5 步的链条
    • 输出格式:与生产环境的要求保持一致

    生成量要比你预计会用到的多 5 到 10 倍。对 1B 以下的目标,过滤(步骤 5 到 7)会删掉 60% 到 80% 的生成样本。

    步骤 4:摄取企业文档

    合成数据生成需要领域知识作为依据,教师模型必须能引用到你的企业知识。

    把 PDF、Word 文件、扫描件、数据库导出、对话日志这些原始企业文档,摄取成教师模型可以引用的结构化格式。

    几个要点:

    • 解析时保留文档结构(标题、表格、列表),而不只是抽取纯文本
    • 建筑行业:工程量清单(BOQ)、技术图纸、规范文件
    • 医疗行业:临床记录、出院小结、化验报告
    • 法律行业:合同、诉状、备忘录
    • 金融行业:财务报表、交易记录、监管申报文件

    这一步必须在本地完成。企业文档里含有敏感数据,不能送去云端的解析服务。

    步骤 5:清理和过滤

    面向蒸馏的数据准备,和常规微调的数据准备差别最大的就是这一步。

    长度过滤: 剔除落在目标上下文窗口 10% 到 90% 分位之外的样本。以 512 token 的生产上下文为例:丢掉短于 30 个 token 或长于 450 个 token 的样本。

    复杂度评分: 用一个与学生模型体量相近的模型(拿得到学生模型本身更好)把每条样本跑一遍,测困惑度。丢掉 75% 分位以上的样本,它们超出了学生模型的学习能力。

    领域相关性评分: 用嵌入相似度对照一组 50 到 100 条精选的黄金标准样本打分,余弦相似度低于 0.7 的丢掉。

    去重: 用 MinHash,相似度阈值取 0.85,每个聚类里只保留质量最高的那一条。

    格式校验: 每条样本都必须严格符合生产环境的输出格式。一条格式错误的 JSON 样本,就可能让 1B 以下的模型多出 3% 到 5% 的失败率。

    预期结果: 10 万条生成样本经过过滤,1B 以下目标剩 2 万到 4 万条,3B 到 8B 目标剩 5 万到 7 万条。

    步骤 6:领域专家标注

    自动过滤解决的是分布层面的问题。事实性错误、领域内的细节偏差,以及只有专业人士才察觉得到的质量问题,得靠人来抓。

    医生、律师、工程师、分析师这样的领域专家,抽查过滤后的数据集,从几个角度给出质量标注:

    • 放在这个领域里,内容是否事实正确?
    • 详略程度是否匹配生产任务的需要?
    • 这条回答放进生产环境能不能接受?

    对 1B 以下的目标,从过滤后的集合里取至少 2000 条样本做 100% 的专家复核,并把这批经专家复核的样本用作验证集。

    这一步需要一个领域专家能直接上手的工具,而不是 Python notebook 或命令行界面。

    步骤 7:增强

    过滤和专家复核之后,再对数据集做增强,把缺口补上。

    针对性增强: 分析过滤后的数据集,找出样本不足的类别、边缘情况和失败模式,专门针对这些缺口再生成一批合成样本。

    改写生成: 对每条经专家复核的样本,生成 2 到 3 个改写变体。这样能在不改变底层分布的前提下提高训练数据的多样性。

    难度校准: 在学生模型的能力范围内生成不同难度的样本。简单样本(占训练数据的 80%)打好稳定的基线表现,困难样本(占 20%)把能力边界往外推。

    步骤 8:导出

    把最终数据集导出成微调框架需要的 JSONL 格式,并附上元数据:

    • 目标模型的大小和架构
    • 目标上下文窗口
    • 目标量化等级
    • 已应用的过滤阈值
    • 专家复核的覆盖比例

    有了这些元数据,后续迭代时才谈得上复现和排查。

    步骤 9:微调学生模型

    用云端 GPU 在准备好的数据集上训练学生模型。这里走的是标准微调流程:视模型大小和数据集规模,选 LoRA 或全参数微调。

    1B 以下的模型:rank 取 16 到 32 的 LoRA 通常表现不错;模型本身小,全参数微调也做得起。

    3B 到 8B 的模型:rank 取 32 到 64 的 LoRA 更实际,全参数微调要占用更多 GPU 显存和时间。

    步骤 10:为目标硬件量化

    把微调好的模型转换到目标精度:

    • Q4(4 比特):体积最小、推理最快,精度上略有让步
    • Q5(5 比特):居中的折中方案
    • Q8(8 比特):量化格式中精度最高,体积也更大

    高通设备用 Qualcomm AI Hub 做量化和编译优化;Apple 设备用 Core ML 工具链;通用场景用 ONNX Runtime 或 llama.cpp 的量化。

    步骤 11:在目标硬件上验证

    部署到真实的目标设备上,用真机测量,模拟器和云端仿真都不作数。要测的指标:

    • 在留出测试集上的任务准确率
    • 推理延迟(p50、p95、p99)
    • 内存占用
    • 电量影响(移动端部署)
    • 输出格式的合规率

    验收标准: 如果留出测试集上的准确率与教师模型相差在 5 个百分点以内,且延迟落在预算之内,就可以继续往下走。达不到就回到步骤 5。

    步骤 12:迭代

    端侧验证会暴露出云端基准测试看不到的失败模式。表现低于阈值时:

    1. 分析端侧测试中的失败案例
    2. 给失败分类:是数据分布问题?复杂度问题?还是缺少边缘情况?
    3. 回到步骤 5(换一套过滤方式)或步骤 7(针对失败模式做增强)
    4. 重新训练、重新量化、重新验证

    3B 到 8B 的目标一般需要 2 到 3 轮迭代,1B 以下的目标需要 3 到 5 轮。

    Ertas 的定位

    Ertas Data Suite 把步骤 4 到 8 完整地放在本地完成。Ingest 模块解析企业文档,Clean 提供面向蒸馏的过滤,Label 让领域专家不写 Python 也能参与复核,Augment 生成有针对性的合成数据,Export 产出带完整元数据和审计轨迹的 JSONL。

    步骤 1 到 3 以及 9 到 12 在 Ertas 之外进行:目标定义、教师模型生成、微调、量化和部署,都走你现有的 ML 基础设施。Ertas 提供的是从原始企业数据到训练流水线之间的那一层数据准备能力。

    预约探索通话,结合你具体的硬件目标和数据类型走一遍这套工作流。

    就本文向 AI 提问

    Turn unstructured data into AI-ready datasets — without it leaving the building.

    On-premise data preparation with full audit trail. No data egress. No fragmented toolchains. EU AI Act Article 30 compliance built in.

    Keep reading