AI Prompt Engineering · 课时

何时进行微调

提示达到局限时的信号。

第 2 / 4 课13 个步骤

何时进行微调 是 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 何时只需提示
  2. 何时进行微调
  3. 混合方案:提示加轻量调优
  4. 评估决策
← 返回 AI Prompt Engineering