让大模型适应你的具体任务,有一条常被忽略的中间路线:提示微调。它介于写提示词和微调之间——跟微调一样需要训练数据和计算,跟写提示词一样不动底座权重。理解它的机制,能把调教 AI 这件事的成本谱系看完整。
机制:训练一段模型才懂的前缀
提示微调的做法是:冻结整个底座模型,另外训练一小段连续向量,使用时把这段向量拼在输入前面。类比给一段文字加前缀,只是这个前缀是一串数字,在文本进入模型之前就接上了,模型读到它会向特定任务偏移。
拆开看进出的三步。进来的是:底座模型一份,目标任务的一批训练数据,也就是输入和期望输出的配对。发生的是:底座参数全部锁死,只训练那段前缀向量,反复迭代到任务表现理想。出去的是:一段可复用的软提示——通常只占几个词的长度,却浓缩了任务的要求。
关键点在于,这段提示向量活在嵌入空间里,人类读不懂。人读不懂,它是一串模型内部才能理解的数值,这正是它和人工提示词的本质区别:人工提示词写给人看、再给模型读,提示微调直接在模型的表示空间里工作。文字怎么变成向量,是理解这一切的前提。
和系统提示词的区别:都不改权重,路径完全不同
两个名字都带提示,容易混。系统提示词是运行时注入的一段人话文本:每次调用模型时,平台把它拼在对话开头,告诉模型角色和规矩。写的人能读懂,改起来零成本,不需要任何训练数据。提示微调则相反:它是离线训练出来的向量,要训练数据、要计算资源,产出后人读不懂,想改就得重新训练。
两者的共同点是都不改底座权重,所以都不会破坏模型的原有能力,出问题删掉重来就行。分工上,系统提示词适合表达明确的规则和角色设定,人人可用;提示微调适合把一类重复任务的表现整体往前推,需要有人准备数据、跑训练。绝大多数用户一辈子只用到前者,这很正常。
和 LoRA 的关系:同属参数高效微调
提示微调和 LoRA 常被放在一起讲,因为两者都属于参数高效微调这一大类:都只训练一小部分参数,底座模型完全冻结。区别在动哪里——LoRA 在模型的层与层之间加低秩旁路,调的是模型内部的附加参数;提示微调只动输入端那一段前缀,模型内部一处都没碰。
训练参数量级上,两者都远小于全量微调。参数量本身就是理解模型成本的核心变量,规模决定训练和部署的账单。
四条路线放在一张表里看
| 方式 | 改不改底座权重 | 需要什么 | 适合什么 |
|---|---|---|---|
| 写提示词 | 不改 | 人力与经验,反复试 | 需求多变、快速试错 |
| 系统提示词 | 不改 | 一段人话文本,运行时注入 | 固定角色、固定规矩的场景 |
| 提示微调 | 不改 | 训练数据加少量计算 | 固定任务要稳定提升、模型不可动 |
| LoRA / 全量微调 | LoRA 不改底座,全量微调改 | 更多的数据与算力 | 任务重、效果要求高 |
局限与失效情况
提示微调有明确的上限。其一,效果通常不如真正的微调,任务复杂、输入输出关系绕的时候,一小段前缀向量带不动。其二,依赖训练数据,没有几百上千条像样的样本,训练无从谈起。其三,可解释性差,提示向量人看不懂,效果变差时排查困难,只能整体重训。其四,前缀要占输入长度,虽然通常只有几个词,在超长输入的任务里也是成本。其五,换个底座模型,训练出的提示基本作废,得重新来。
还有个工程问题:提示本身是需要维护的资产,任务要求变了或数据换了,旧提示可能悄悄失效,这类回归问题在提示工程里是通病,改一处要回归测一遍。
对普通用户意味着什么
你大概率用不到提示微调,但知道这条路线有实际好处:让 AI 更懂你的任务有好几条路,成本从低到高排是写提示词、系统提示词、挂知识库、提示微调、LoRA。选路的判断标准是重复率和对效果的刚性要求——偶尔用用,写到提示词为止;天天重复且效果不达标,才考虑往下走。想自己折腾底座,前提是拿到可用的开源权重。
提示微调速查
- 机制:冻结底座,只训练一段输入前缀向量
- 系统提示词运行时注入、是人话;提示微调离线训练、人读不懂,两者都不改权重
- 与 LoRA 同属参数高效微调:LoRA 动模型内部,提示微调只动输入端
- 局限:效果上限低于微调、依赖训练数据、不可解释、换模型作废


