何时进行微调
提示达到局限时的信号。
何时进行微调 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。
是否微调应由证据决定
只有当您能指出数据证据表明提示工程已经遇到瓶颈时,微调才有正当理由。触发条件绝不是猜测,而是留出评估:即使走完优化阶梯,最佳且不弄虚作假的提示词仍然停滞在质量标准以下。
- 微调用灵活性换取一致性、更低的单次调用成本以及习得的行为
- 代价包括数据流水线、评估基础设施,以及基础模型不断更迭时的重新微调
- 您必须能够明确指出提示工程无法修复的具体失败点
信号 1:提示词平台期
最明确的信号是固定评估集上的平台期。您增加示例、进行分解、加入验证器,但分数停止提升,同时错误仍然具有系统性,而非随机性。
系统性残余错误(模型一贯错误处理同一类结构)意味着很难通过指令诱导出所需行为。这是适合用微调解决的问题。随机、零散的错误通常意味着提示词或数据仍然存在噪声——请继续迭代。
# Track eval score vs prompt-iteration; flat tail = plateau
scores = [0.62, 0.71, 0.78, 0.79, 0.795, 0.796] # diminishing returns
def plateaued(scores, window=3, eps=0.01):
tail = scores[-window:]
return (max(tail) - min(tail)) < eps
print(plateaued(scores)) # True -> prompting has stalled信号 2:提示词长度成为产品本身
当提示词为了保持质量,已经增长到包含数千个示例和规则的程度时,您就是在每次调用中支付延迟和成本税,以模拟习得的行为。
如果这些词元编码的是稳定、重复的行为(固定格式、一致风格或路由决策),微调就可以将它们折叠进模型权重,在保持行为不变的同时,将提示词缩短一个数量级。这就是提示词蒸馏,也是最常见的正当微调用例。
信号 3:硬性延迟或成本下限
如果您需要让更小、更快、更便宜的模型在狭窄任务上匹配更大模型的行为,微调就是合适的工具。您可以将大型模型的输出提炼到小型微调模型中。
以下条件同时满足时,这样做才有充分理由:调用量高于盈亏平衡点、延迟预算紧张,并且任务足够狭窄,使小型模型能够掌握它。在这些条件之外,工程开销并不值得。
# Distillation data: teacher (big model) labels -> student (small) trains
def make_distill_pair(prompt, teacher_fn):
completion = teacher_fn(prompt) # high-quality big-model output
return {'messages': [
{'role': 'user', 'content': prompt},
{'role': 'assistant', 'content': completion},
]}信号 4:特异格式或风格
有些输出非常特殊,仅靠描述所需的成本就超过了大规模示范:专有 DSL、包含上千条细微规则的内部写作风格,或包含无数条件字段的严格领域模式。
当格式遵循必须接近完美,而规则又多到无法在提示词中逐条列出时,数百个示例比说明文字更可靠地教会模型这种模式。微调擅长内化隐含结构,尤其适合那些难以通过明确指令实现的结构。
信号 5:模型抗拒的行为
模型偶尔会对某条指令产生抵触:不断添加您禁止的附加说明、拒绝无害任务,或在负载下恢复默认风格。如果即使使用强有力且反复的指令,再加上示例,也无法可靠地抑制这种行为,那么这种抵触就是固化在基础权重中的先验偏好。
微调可以覆盖这类先验偏好。但请先确认这种抵触确实存在,而不是提示词清晰度问题——将问题误判为模型抵触,会导致不必要的训练运行。
反向信号:何时 NOT 微调
同样重要的是识别虚假警报。出现以下情况时,请 NOT 进行微调:
- 缺口在于知识——请改用检索;微调会固化过时且有损的事实
- 规范仍在每周变化——您将不得不持续重新训练
- 拥有少于几百个经过清洗的示例——信号过少,过拟合风险很高
- 错误是随机的,而非系统性的——数据或提示词仍然存在噪声
- 缺少评估框架——您无法判断微调是否真的带来了帮助
数据就绪门槛
微调质量的上限受数据质量约束。在做出承诺之前,请通过就绪门槛:示例数量充足,覆盖您关注的案例且分布均衡,标注一致,并且不存在会抬高评估分数的数据泄漏。
数百个经过精心整理的示例,胜过数万个充满噪声的示例。如果您的标注彼此矛盾,模型就会学到噪声。
def data_ready(examples, min_n=300, max_dupe_ratio=0.05):
n = len(examples)
texts = [e['messages'][0]['content'] for e in examples]
dupe_ratio = 1 - (len(set(texts)) / n)
return n >= min_n and dupe_ratio <= max_dupe_ratio
# Returns False until you have enough deduped, curated examples选择微调方法
并非所有微调都是全权重训练。请根据信号匹配方法:
- LoRA / 适配器——成本低、速度快、可逆;非常适合风格和格式蒸馏
- 全量微调——负担更重;适用于能力较强的开放模型发生深层行为变化
- 偏好调优(DPO 风格)——当您拥有成对的好坏判断,而不是标准答案式补全时使用
请从信号所要求的最轻量方法开始。LoRA 风格适配器只需很小一部分成本,就能覆盖大多数生产场景。
预先承诺协议
在启动训练运行之前,请固定实验方案,以确保结果可解释:
- 固定一个模型在训练期间绝不会见到的留出评估集
- 记录仅使用提示词时在该评估集上的最佳基线分数
- 提前明确目标提升幅度和成本上限
- 定义回滚方案:如果微调模型未达到目标幅度地超过基线,就部署提示词方案
如果没有预先确定的基线和目标,您就无法证明微调物有所值。
综合各项信号
请将各项信号合并为一个统一的推进门槛。只有在提示工程已进入平台期 AND 数据已就绪 AND 缺口属于行为而非知识时,才推进微调;不能因为任一单项信号单独出现就推进。
def should_fine_tune(plateaued, data_ready, gap_is_behavior,
spec_stable, has_eval_harness):
return all([
plateaued, # prompting stalled on frozen eval
data_ready, # enough clean, deduped examples
gap_is_behavior, # not a knowledge gap (else use RAG)
spec_stable, # task definition has settled
has_eval_harness, # can measure the lift
])
print(should_fine_tune(True, True, True, True, True)) # True -> proceed快速检查
在固定评估集上,模型的错误在许多不同输入类型之间呈现随机且零散的分布,而且调整示例后分数仍会明显上升。这说明模型是否已经具备微调条件?
回顾
根据证据进行微调,而不是凭直觉。正当的信号包括:真正的平台期伴随系统性错误、提示词长度已经成为产品本身、存在硬性延迟或成本下限、特异格式,或基础模型抗拒的行为。
- 反向信号:知识缺口、不断变化的规范、数据过少、随机错误、没有评估框架
- 训练前通过数据就绪门槛——数据质量决定结果上限
- 选择信号所要求的最轻量方法(优先考虑 LoRA 风格的方法)
- 预先确定固定评估集、基线、目标提升幅度和回滚方案
- 只有在平台期 AND 数据已就绪 AND 存在行为缺口这三个条件全部满足时才推进
用 AI 导师学习 AI Prompt Engineering — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 53
- 课程
- 199
常见问题解答
「何时进行微调」课时是免费的吗?
是的 — 「何时进行微调」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。
「何时进行微调」这节课中我会学到什么?
提示达到局限时的信号。 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI Prompt Engineering 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「何时进行微调」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI Prompt Engineering 课中编写并运行代码吗?
能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 何时只需提示
- 何时进行微调
- 混合方案:提示加轻量调优
- 评估决策