welclaiAI·TREND·DIGEST
研究

微调、RAG 还是提示词:一份决策指南

让模型按你的意愿行事有三种方法——而多数团队上来就选了最重的那一个。本文告诉你如何按正确顺序做选择。

research2026-04-20 10:42 KST·主编·7 分钟

当语言模型的表现不如你所愿时,你有三大类杠杆可以拉动:改变提示词、给模型提供合适的阅读材料,或者改变模型的权重。这三者分别是提示词工程、检索增强生成(RAG)和微调。人们常把它们当作互相竞争的方案来讨论,但它们其实回答的是不同的问题。而多数团队在本可以用更轻的方法解决时,却第一反应就去拉那个最重、最昂贵的杠杆。

这份指南讲的就是如何按正确的顺序做选择。顺序之所以重要,是因为每个杠杆的成本不同、失效方式不同,真正能解决的问题也不同。把诊断做对,选择往往就水到渠成了。

每个杠杆究竟改变了什么

把你所修改的东西说清楚,会很有帮助。

  • 提示词工程改变的是你在请求时发送的指令和上下文。模型本身不动;你是用文字和示例去引导一个固定的系统。
  • RAG 改变的是模型在请求时可用的知识。你检索出相关文档,在模型作答前把它们放进上下文。模型本身仍然不动;你改变的是它能读到的内容。
  • 微调改变的是模型本身。你用自己的示例继续训练,让权重朝你期望的行为偏移。这是唯一一个会改动模型的杠杆。

注意,三者里有两个根本没碰模型。这就是核心洞见:大多数问题并不是模型本身的问题,而是你怎么问、你提供了什么的问题。

提示词工程:默认选项,而非安慰奖

提示词工程一直背着一个名声:它是你在做"真正的"工作之前用的廉价选项。这个框架是颠倒的。提示词工程之所以应该最先尝试,是因为它快速、可逆,而且能力强得惊人。一条清晰的指令、一两个示范案例、一个明确定义的输出格式,再加上一句"不确定时该怎么办"的明确说明——这些就能解决一大半"模型表现得很奇怪"的抱怨。

当模型已经具备相应的能力和知识,你只是需要可靠地把它激发出来时,提示词工程就是正确的工具。它的局限也很清楚。它无法教会模型从未学过的事实,而当指令冗长又脆弱时,它也无法在成千上万种各异的输入上可靠地强制执行某种行为。当你的提示词膨胀成一本庞杂的规则手册,却仍然漏掉各种边缘情况时,这就是一个信号,说明你可能需要换一个杠杆——但你应该是在把提示词工程用到极致之后才得出这个结论,而不是跳过它。

RAG:当问题出在知识上

如果模型的失败是关于它知道什么的——它没有你的私有文档、它看不到最新信息、它编造出从未被告知的具体细节——那么问题出在知识上,答案通常是 RAG,而不是微调。这是这个领域里最常见的误诊。团队感觉模型"不懂我们的领域",就以为必须重新训练它,而实际上他们需要做的只是把对的页面递给它读。

RAG 之所以出色,是因为存在于可检索文档中的知识能保持时效、可审计、易于纠正。更新一份文档,模型的回答也随之更新。展示用到了哪些段落,人类就能核实答案。相比之下,微调把知识烘焙进权重里,难以查看、难以更新,而且容易过时。一条经验法则是:如果答案应该随着你的文档变化而变化,那就用检索,而不是训练。

微调:当问题出在行为上,而非事实上

当你需要改变模型的行为方式,而提示词工程又无法可靠地做到时,微调就有了用武之地:在海量输出上保持一致的语气或格式、处理基础模型应付得很笨拙的某个狭窄的专门任务、或者一个尽管指令清晰却仍然反复偏离的结构化输出。微调的信号是一种你能用大量示例展示出来、却无法用一句简短指令概括的行为。

它是最重的杠杆,这是有充分理由的。它需要经过整理的训练数据、一次训练运行、评估,以及持续维护的承诺,因为一个微调过的模型如今是你拥有的东西,你必须随着需求演变而让它持续对齐。关键在于,微调不擅长教授事实。它在改变倾向和风格上远比植入知识库可靠。指望用微调来填补知识空缺,是用昂贵的方式换来一个脆弱的结果。

按顺序做决策

一个务实的顺序,从最便宜、最可逆的开始:

  1. 从提示词工程开始。 写出你能写的最清晰的指令,加几个示例,定义好输出,并说明模型不确定时的兜底做法。在真实案例上做衡量。
  2. 如果失败是关于知识的,加上 RAG。 缺失的事实、过时的信息、私有文档、编造的细节——把对的材料递给模型读。
  3. 如果失败是关于一致性行为的,考虑微调。 一种你无法压缩进指令、却在规模上反复出现、可被展示出来的模式。
  4. 必要时组合使用。 它们并不互斥。一个常见的成熟方案是:一个微调过的模型加上 RAG 再加上一个精心设计的提示词——每一个都做它最擅长的那份工作。

大多数团队应该沿着这份清单一路往下走,而不是直接跳到底部。这个顺序是一道成本梯度:每往上走一步,就需要更多精力、更多数据、更多持续的维护。

如何判断你遇到的是哪种问题

最快的选择方法,是诚实地诊断失败。面对一个糟糕的回答,问自己:如果有对的文档,能解决这个问题吗? 如果能,那就是知识问题,RAG 是你的杠杆。再问:一条更清晰的指令或示例能解决这个问题吗? 如果能,那就是提示词问题。再问:这是不是模型反复出错的一种模式,我能用很多例子展示它、却没法用一句话说清? 如果是,那微调就可以纳入考虑了。

当不止一个为真时,先修最便宜的那个,然后重新衡量。往往那个更便宜的修复就能解决足够多的问题,让昂贵的那个变得没有必要。那些陷入困境的团队,通常是基于"哪个听起来最郑重其事"来挑杠杆的,而不是基于失败究竟由什么构成。

它们都解决不了什么

没有任何杠杆能把模型变成它本不是的东西。提示词工程召唤不出从未存在过的知识。RAG 把答案锚定在提供的文本上,但不会让模型推理得更好,而且它会继承你文档里的错误。微调改变行为,但无法可靠地装入事实,也救不了一个底层模型根本做不到的任务。这三者都只是改善激发、锚定或倾向——没有一个能凭空制造出能力。了解每个杠杆的天花板,能让你不至于在错的那个上面耗费数周。

总结

提示词工程、RAG 和微调不是竞争对手;它们是对三个不同问题的回答。提示词工程解决的是你怎么问。RAG 解决的是模型能读到什么。微调解决的是模型如何行事。先诊断失败,然后只在问题要求的范围内爬这道成本梯度——从提示词开始,当差距出在知识上时加入检索,把微调留给那些你能展示却说不清的行为。能解决你问题的最便宜的杠杆,就是对的那个。

#fine-tuning#rag#prompting#decision-guide