微调需要多少数据量?数据集准备与规模估算的实用思路

模型与算力

讲清微调数据集怎么攒、怎么估规模:先定任务边界,再用对照表判断多少条够用、什么时候该停下。

打算微调,第一反应往往是「要准备多少条数据」。但常见卡点是:任务还没定清就开始标,标了几百条发现格式不统一、质量参差,只能推倒重来。这篇给一套从上到下的顺序——先定任务和评测口径,再定数据形态,然后估算规模并持续验证,最后判断什么情况下不该走微调这条路。

准备微调时,第一反应往往是「要准备多少条数据」。但真正卡住项目的,往往是任务还没定清就开始标注:标了几百条才发现格式不统一、答案口径不一致,只能推倒重来。规模问题从来不是孤立的,它取决于你分得清哪类任务、想清楚验收标准没有。

下面这套顺序从上到下走一遍:先定任务和评测口径,再定数据形态,然后估算规模并在训练过程中持续验证,最后判断什么情况下压根不该走微调这条路。每一步都给判断标准和可执行动作,数字口径不写死,需要时去站内相关页面核对当时的情况。

先定任务再定数据:三类目标对应三种数据形态

把目标先归到三类里:改风格格式、补领域知识、学新能力。这三类对数据量的敏感度完全不同——改格式往往几十上百条高质量样本就能见效,补知识需要覆盖足够多的场景,学一项模型原本不会的能力则最费数据。先分类,再谈条数。

改风格格式
要求模型按固定模板、语气或结构输出,数据的重点是示范一致,而不是覆盖广度
补领域知识
让模型答对训练语料里没有的行业内容,数据的重点是覆盖真实问法与事实准确
学新能力
让模型掌握原本不会的操作或多步推理,数据的重点是任务多样性和步骤完整

补知识这一类,先别急着开微调项目。把同样的问题拿去试提示词和 RAG,如果检索能解决大部分,就没必要微调。判断分界可以去 /fine-tune-prompt-rag 对照,那里把几种路线的适用条件讲得比较细。

动手标注之前,先写一份验收用例:挑一批有代表性的输入,写下期望输出。这份东西后面既当评测集,也当数据模板。它能帮你提前暴露一个致命问题——任务边界含糊,表现就是一句话说不清「输入是什么、输出长什么样、有没有唯一答案」。说不清就别标。

数据长什么样比有多少条更重要

字段结构先定死:输入、输出、可选的系统提示与拒绝样本。全库统一,别这里混进对话格式、那里混进纯文本补全。格式一乱,训练时清洗成本比标注还高,而且很难自动排查。

  • 抽样自查:随机抽一批人工过一遍,重点看答案有没有互相矛盾、是不是口语化改写、会不会过长
  • 去重看语义而非字符串:同一个问题换几种问法算不算重复,事先定死规则,不然去重会误删有效样本
  • 拒绝样本单独放:模型该说「不知道」或拒绝的场景,别和正常问答混在一起,标注时标记清楚
  • 保留原始来源:每条数据记下出处,后面排查异常时能回溯

数据量和质量的关系是递减的。到某个点之后,继续加量的收益很小,这时候更该回头清理已有样本:改错答案、补漏场景、拆掉过长的回答。与其盲目加量,不如先做一轮清理再决定要不要继续标。

自查项合格表现要返工的表现
字段结构全库统一,脚本能直接解析混着多种对话/补全格式
答案一致性同类问题答案口径一致换个样本答案就反了
长度分布大多数样本长度接近少数极长样本拉偏分布
去重规则语义重复有明确判定字符串去重把有效数据删了

规模怎么估:从任务类型和评测曲线两头夹

粗估可以从任务类型入手分档:改风格格式需求较少,补知识中等,学新能力最多。具体档位口径别信通用说法,各家服务商的建议都在变,去 /stacks/fine-tuning 对照同类服务商当时的文档和建议更靠谱。

  1. 切分训练集与留出集留出集不参与训练,只用来观察指标。切分比例不用太纠结,关键是每次加数据都重新用同一套留出集评测,保证可比。
  2. 按批次加量别一次标完再训。第一批标完先跑一轮,记下留出集指标;再加第二批、第三批,每轮都记录。
  3. 画自己的曲线横轴是数据量,纵轴是留出集指标。曲线趋平的位置就是接近饱和的信号,比任何通用数字都贴合你的任务。
  4. 算上人力成本估规模时要算标注与返工的人天,这部分常被低估。算力费用可去 /compute/finetune 与 /compute/training-cost 核对当时的计费口径。
先有自己的评测曲线,再谈需要多少条数据;没有曲线的加量只是碰运气。

什么情况下别做微调,或者该先停一停

微调不是所有需求的默认解。下面这几种情况,先停一停比继续加数据更有价值。判断标准很简单:如果需求本身还在动,或者你根本说不清微调版比基线强在哪,那问题不在数据量。

  • 需求还在频繁变、连输出格式都没定的时候,微调会把变动成本放大,先等需求稳定
  • 样本量远低于起点档,却指望模型学会全新能力,效果通常和提示词差不多,不如先优化提示词与检索
  • 数据涉及敏感内容时,先过一遍数据边界与合规清单,再决定哪些能送去训练
  • 已经有一版微调模型但说不清比基线强在哪:先补评测,不要继续加数据
  • 同一批输入用提示词就能达到可接受效果,就别为了一点提升去维护一整套数据流水线

另外提醒一句:任务类型不同,返工成本也不一样。改格式的任务返工便宜,补知识和学能力的任务返工贵得多,所以后两类更应该在小批量上先验证再放量。真需要微调时,先把评测和基线补上,再谈数据规模。

下一步:把评测和数据模板先落地在动手标数据前,先建一份验收用例和数据模板,再按批次加量记录曲线。想了解各家微调服务的建议口径与当前计费,可以去 /stacks/fine-tuning 和 /compute/finetune 核对当时的数字。

常见问题

几百条数据能不能微调出效果?

能,但要看你想要什么。如果只是让输出风格、格式、语气稳定下来,几百条高质量样本往往就够。如果是想让模型掌握它原本不具备的能力,几百条一般不够,而且加量之前先确认提示词和检索是不是已经把问题解决了。判断标准是你自己那份留出集上的表现,不是通用数字。

数据量估算有没有通用公式?

没有可靠的通用公式,任务类型、基座模型、输出复杂度都会影响。务实做法是从一个起点档位开始,分批加量、每批记录留出集指标,画出自己的曲线。曲线走平就说明接近饱和,继续标数据的边际收益已经很低。起点档位和同类项目口径可以去 /stacks/fine-tuning 对照。

标注数据自己搞还是外包?

先自己标一小批,把标注规范和边界情况摸清楚,再决定要不要外包。规范没定就外包,返工成本通常比省下的时间更贵。外包时至少保留一批自己标的样本做交叉校验,用来判断外包质量是否稳定,别只看交付数量和格式是否合规。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。