速成课 · No. 28
当模型不了解你的领域时,有三种方式可以补救:在 prompt 里告诉它、在运行时把事实递给它(RAG),或者真正去重新训练它的 weights(fine-tuning)。它们解决的是真正不同的问题——而大多数人一上来就伸手去够最贵的那个。下面讲清每一种到底做什么、决定如何取舍的那一个区别,以及如何挑出能解决问题的最便宜的办法。
15 个概念 · 每个都配一幅图 · 结尾附速查表
这三种技术的存在都是为了解决同一个问题:模型在通用层面才华横溢,却对你的具体情况一无所知。准确理解它缺什么,正是你挑对补救办法的关键。
Knowledge Cutoff——它的知识是冻结的、通用的
一位才华横溢的毕业生,几年前读过一座浩瀚的图书馆——但没读过你公司的文件,也没读过他们毕业那天之后发表的任何东西。
模型只知道它的 training data 里有的东西。这些数据取自公共互联网,冻结在某个 knowledge cutoff 日期。这些知识广博而通用——但模型对你的私有数据、你的具体领域,或训练之后发生的任何事一无所知。
所以开箱即用时,它没法回答关于你产品的问题、遵循你的内部风格,或使用上周的数字。这门课里讲的一切,都是在弥合模型的通用知识与你那个特定世界之间的那道鸿沟。
- 是什么
- 模型的训练数据被冻结的那个日期。此后发生的事,模型从未见过。
- 怎么运作
- 模型只从一个庞大的公共语料库里学习一次;之后它的知识不会自己更新。
- 例子
- 问它你产品的价格或上周的数字——它要么不知道,要么编一个。
- 坑
- 哪怕不知道,模型的语气也很笃定。知识的缺失不会体现在语气里。
- 关联
- Prompting、RAG 和 Fine-tuning 要解决的根本问题。
Knowledge Gap vs Behaviour Gap——三种不同的缺口
一名新员工可能需要一份简报文档、一个可供查阅的文件柜,或者真正的培训来改变他们的工作方式——三道不同的缺口,三种不同的补救。
缺口有不同的形状,它们的补救办法也不一样。有时你需要模型为这项任务知道一些事实。有时需要它借助一大批不断变化的知识。有时需要它表现得不一样——一种一致的格式、语气或技能。
这就是 knowledge gap(知识缺口)和 behaviour gap(行为缺口)。它们分别对应那三种技术:告诉它(prompting)、给它一个知识来源(RAG),或重新训练它(fine-tuning)。说清你面对的是哪道缺口,几乎就是整个决策。
- 是什么
- “模型不够用”的两种不同情形:它缺事实,或者它缺行为。
- 怎么运作
- 知识在回答时补进去(prompt、RAG)。行为则来自指令、例子或重新训练。
- 例子
- “不了解我们的价格方案”是知识缺口。“回答的语气不像我们公司”是行为缺口。
- 坑
- 把两者混为一谈,你就是在花大价钱用一件昂贵的工具去对付错的问题。
- 关联
- Form vs Facts 和 Gap Diagnosis 的基础。
地图:六组共 15 个概念
一张地铁线路图:先看全部线路,再一站一站地坐过去。
这门课里的每个概念都属于六组之一。先是缺口本身。然后是按成本递增排列的三种技术:prompting、RAG、fine-tuning。接着是它们之间的关键区别。最后是如何选择——以及如何检验这个选择。
怎么读这门课
如果一页备忘录就够了,你不会把人送去培训一年——你让投入匹配真正缺的东西。
每个概念都用同样的方式讲:它的英文名(记住它——文档和论文里用的就是这个术语)、一幅来自日常生活的画面、一幅图,以及一张带字段的卡片:是什么、怎么运作、例子、坑,以及关联的概念。
这门课的核心思想:这些技术在成本、速度和适用场景上差别极大。最常见的错误是一上来就跳到 fine-tuning——最重的那个选项——而 prompting 或 RAG 本可以更快、更便宜地解决问题。真正的功夫不在于会不会 fine-tune,而在于把缺口诊断得足够准确,从而挑出能补上它的最轻的技术。
模型的知识是冻结的、通用的——它不了解你的世界。Prompting、RAG 和 fine-tuning 各补一种不同的缺口,所以选择要从诊断开始。
第一种也是最便宜的技术,就是把模型需要的东西直接放进 prompt。它立即生效、无需训练,而且能力远超人们的想象——所以你永远从这里开始。
Prompting / In-context Learning——把它需要的直接放进上下文
在任务开始前给一位机灵的临时工做简报:这是情况,这是规则,这是一个好的范例——他们有能力,只是需要上下文。
给模型补上它所缺的最简单办法,就是把它放进 prompt——指令、相关事实、你想要的格式、几个例子。模型立刻使用这些信息,无需训练。这叫 in-context learning。
模型擅长遵循清晰的指令。所以,许多“模型做不到这个”,其实是“我没讲清楚”。Prompting 是要先穷尽的办法,而不是最后才用的。
- 是什么
- 把模型需要的一切直接放进请求文本里。
- 怎么运作
- 模型读取上下文里的指令、事实和例子,并在这一次回答中依赖它们。
- 例子
- 把退货政策放进 prompt,再说“回答要简短、语气友好”——它就照做。
- 坑
- 只对这一次调用有效,并且受窗口大小限制(见 Context Window)。
- 关联
- Decision Ladder 的最低一级;Few-shot 是它的特例。
Few-shot Prompting——用例子即时教会行为
给出三个完全符合你想要的输出的成品例子,然后要第四个——模式当场就学会了,不需要上学。
你不仅能塑造模型知道什么,还能直接在 prompt 里通过展示例子来塑造它怎么表现——这就是 few-shot prompting。想要特定的格式、语气或处理任务的方式?放两三个例子进去,模型就会照着模式来。
很多人以为必须 fine-tune 才能做到的事——一致的风格、特定的输出形态——往往靠上下文里的例子就能实现。免费,而且立即生效。
- 是什么
- 直接在 prompt 里放几个期望输出的例子。
- 怎么运作
- 模型看到输入 → 输出的模式,并把它延续下去。
- 例子
三条按“问题 / 原因 / 解决”格式写的工单摘要——模型就会把第四条工单也按同样的格式整理。
- 坑
- 例子会占用窗口空间,并且每次请求都要重新发送。
- 关联
- 常常能替代 Fine-tuning 来解决风格和格式;在它之前应当先试的办法。
Context Window——局限:窗口与重复
一份简报管一场会议,但你能递出的页数有限,而且每次都得重新递一遍——对备忘录来说没问题,对百科全书就太笨拙了。
Prompting 有两个实实在在的局限。第一,一切都必须塞进 context window(上下文窗口),所以你没法把一个庞大的知识库整个贴进去。第二,它是按次调用的:你每次都要发送这份上下文,每次请求都要为此付费,而模型在两次调用之间从不保留它。
当知识大到装不进窗口、不断变化,或者你得一遍又一遍地粘贴同样的大块材料时,光靠 prompting 就不够了。这正是下一种技术登场的地方。
- 是什么
- 模型在一次调用中能看到的文本的最大量。
- 怎么运作
- 你想给模型的一切都必须放进窗口——并且在下一次请求时重新发送。
- 例子
- 一页纸的退货政策放得下。公司由数千份文档组成的整个知识库放不下。
- 坑
- 庞大的上下文每次请求都要付费;模型并不“记得”它。
- 关联
- 窗口不够用时,就往上一级走,到 RAG。
Prompting 把模型需要的东西——事实、格式、例子——放进上下文,立即生效、无需训练。它强大又便宜,只受限于窗口大小和每次调用都得重复。
当知识对 prompt 来说太大或太新时,你不用全塞进去——而是在需要的那一刻取回相关的那一块。这就是检索增强生成。
RAG——在运行时检索相关事实
开卷考试:你不必背下整座图书馆,而是在提问的那一刻查出少数几页相关内容,并依据它们作答。
RAG(retrieval-augmented generation,检索增强生成) 处理对 prompt 来说太大的知识:按需只取回相关的那一部分。提问时,它在你的文档中检索,取出最相关的 chunks——文本片段——并把这些放进上下文。模型就依据它们作答。
这样,模型依据的是你真实、当前的数据,却从未把它们背下来——你在它需要的那一刻递给它正确的那一页。(RAG 那门课会讲得很深;这里讲的是它在整套方案里的位置。)
- 是什么
- 在回答之前,先到你的文档中检索相关事实。
- 怎么运作
问题 → 索引检索 → 最佳 chunks → 带着这些 chunks 的 prompt → 模型的回答。
- 例子
- 被问到“怎么退货?”时,客服机器人找到退货章节,并依据它作答。
- 坑
检索不好,回答就不好。而且 RAG 不会改变模型的行为——只改变它在这次回答中所知道的东西。
- 关联
Decision Ladder 的中间一级;与 Fine-tuning 搭配得很好(Fine-tune + RAG)。
Grounding——把回答锚定在庞大、多变、私有的知识上
一座你随时更新的参考图书馆:某个事实变了,你不必重印图书管理员的大脑——只需更新书架,下一次查阅就是最新的。
RAG 恰恰在 prompting 吃力的地方大放异彩:对窗口来说太大的知识库、经常变化的事实,或模型从未训练过的私有数据。更新一份文档,下一个回答就立刻反映出来——无需重新训练。
这叫 grounding——把模型的回答锚定在你的具体、当前、可能保密的信息上。当缺口是“它需要知道一些东西”,尤其是会变动的东西时,答案通常就是 RAG。
- 是什么
- 模型的回答建立在你的真实来源上,而不是它的记忆上。
- 怎么运作
- 文档在索引里更新;每个回答都由此刻检索到的内容构建。
- 例子
- 价目表早上改了——到午饭时机器人报的已经是新价格。
- 坑
- 索引里过时或相互矛盾的文档,会产出过时或相互矛盾的回答。
- 关联
- 由 RAG 实现;恰恰是用 Fine-tuning 来灌输事实所给不了的。
RAG 增加的是知识,不是新行为
给人更好的参考书,会让他们见多识广——但不会改变他们的写作风格,也不会教给他们新技能。进来的是事实,不是习惯。
RAG 的关键在于:它改变的是模型在这次回答中所知道的,而不是它从根本上怎么表现。模型底层的技能、风格和推理都没变——你只是给了它更好的事实去依据。
所以,RAG 是解决 knowledge gap 的对症工具,却是解决 behaviour gap 的错误工具。如果你需要模型始终以某种特定方式回应,检索更多文档是做不到的。这就指向了第三种技术。
RAG 在运行时取回相关事实,把模型锚定在对 prompt 来说太大、太新或太私密的知识上。它增加的是模型所知道的——而不是它如何表现。
最重的技术真的会修改模型本身。它是唯一能改变模型根深蒂固的行为的办法——也是人们出于错误的理由、过早伸手去够的那一个。
Fine-tuning——用你的例子重新训练模型
不是为某个任务给工人做简报,而是送他们去接受培训,从而改变他们默认的工作方式——新的做法已经融入其中,不必每次再递给他们。
Fine-tuning 拿一个现有的模型,用你自己的一组例子继续训练它。这会调整它内部的 weights——存放模型一切能力的那些数字——于是新的行为就成了模型本身的一部分。
Prompting 和 RAG 在运行时补充信息,模型本身不变。Fine-tuning 则真的改变了模型。结果是,它默认就按你的方式表现,无需在每个 prompt 里放指令或例子——它已经学会了。
- 是什么
- 用你的输入 → 输出例子,继续训练一个现有的模型。
- 怎么运作
- 训练会调整 weights,使模型自己对类似的输入产出期望的输出。
- 例子
在数千条客服回复上 fine-tune 过的模型,不需要任何指令就能写出公司的口吻。
- 坑
- 它需要高质量的数据、训练和专业能力——而且每当情况变化,就得重新训练。
- 关联
Decision Ladder 的最高一级;用 LoRA / PEFT 可以更便宜;可以与 RAG 组合。
Fine-tuning 教什么:行为、格式、风格
一种培训,把一个通才变成能可靠地用你们公司的口吻写作、或每次都以同样方式处理你们那项特定任务的人——是习得的习惯,而不是提醒。
Fine-tuning 真正擅长的是行为:一致的语气或内部风格、特定的输出格式、模型反复执行的专门任务,或贴合你的领域措辞的方式。
当你有大量“这样的输入应当产出那样的输出”的例子时,fine-tuning 可以把这种模式深深地、可靠地固化下来——效果超出 prompt 里放例子所能达到的。它塑造的是模型怎么回应,并且是学进了它的 weights 里。
LoRA / PEFT——更便宜,但并不免费
送人去参加正规的培训项目,要花时间、花钱,还要一套课程——而一旦工作变了,你还得把他们重新培训一遍。
Fine-tuning 是昂贵的选项。它需要一份高质量的例子数据集(往往很大)、一套训练流程和专业能力。而且这不是一次性的成本:情况一变,你就得重新训练。
LoRA(Low-Rank Adaptation) 和其他 parameter-efficient fine-tuning(PEFT) 方法,只调整模型的一小部分,而不是全部 weights,从而让它更便宜。这降低了门槛——但 fine-tuning 仍然比 prompting 或 RAG 重得多。
- 是什么
- 一种 fine-tune 模型的方式,只改动它一小部分参数。
- 怎么运作
- 主体 weights 被冻结;训练一个小小的“adapter”,再接入模型。
- 例子
不必为你们的内部风格 fine-tune 整个模型,而是训练一个轻量的 LoRA adapter。
- 坑
- 更便宜不等于便宜:数据、训练和重新训练仍然都在。
- 关联
- 让 Fine-tuning 更便宜,但并不能跳过 Decision Ladder。
Fine-tuning 重新训练模型的 weights,让新行为融入其中——适合一致的风格、格式和反复执行的任务。它是昂贵的选项:数据、训练和持续维护,即使用了 LoRA 也是如此。
一个区别就能理清 fine-tuning 与 RAG 之间的大部分困惑,并避开最常见的那个昂贵错误。弄懂它,选择往往水到渠成。
Form vs Facts——fine-tuning 教形式,RAG 教事实
你训练一个人怎么写报告(习得的技能),但你把要填进去的数据递给他们(每次查来的)——技能是教的,事实是取的。
这条规则能把一切理清:fine-tuning 管模型怎么回应;RAG 管它知道什么。 Fine-tuning 教的是形式——风格、语气、格式、任务的形态——把它固化进 weights。RAG 提供的是事实——当前的、具体的、私有的信息——在运行时把它们取来。
一个改变行为;另一个改变知识。几乎每个“我该 fine-tune 还是用 RAG?”的问题,只要你问一句缺口到底是形式还是事实,就迎刃而解。
- 是什么
- 在 fine-tuning 和 RAG 之间做选择的主要规则。
- 怎么运作
形式缺口(风格、格式、语气)→ fine-tuning。事实缺口(当前的、具体的、私有的)→ RAG。
- 例子
- “像我们的律师那样写”是形式。“了解我们合同的条款”是事实。
- 坑
无论如何都先试 prompt:Few-shot 往往就能给你形式,而 prompt 本身也能带上少量事实。
- 关联
解释了 Fine-tuning for Facts(那个错误)和 Fine-tune + RAG(那种组合)。
Fine-tuning for Facts——昂贵的错误
送人去上学,背一本每周都在变的电话簿——等他们背完,它已经过时了,而且每次更新你都得重新培训。
最常见的代价高昂的错误,就是为了添加模型应当知道的事实而去 fine-tune。这是一种 anti-pattern:它多半效果不好、成本很高,而最糟的是,事实在训练结束的那一刻就被冻结了。
数据一变,fine-tune 过的模型就过时了,你必须重新训练。会变的事实属于 RAG,那里的更新是即时的。为了灌输知识而 fine-tune,是在明明有简单又即时的办法摆在眼前时,去做那件困难又脆弱的事。
- 是什么
- 试图通过训练把事实“放进”模型里。
- 为什么不好
- 效果差、花费大,而且事实在训练结束的那一刻就过时了。
- 例子
- 在价目表上 fine-tune 过的模型——一周后价格变了,它报的还是旧价格。
- 替代做法
- 事实放进 RAG:更新文档就完事了。
- 关联
- 直接违背了 Form vs Facts。
Fine-tune + RAG——fine-tune 形式,检索事实
一位受过“怎么做这份工作”培训的专家(fine-tuning),同时还会查阅一份始终最新的参考资料来获取细节(RAG)——两全其美,各司其长。
它们不是对手;最强的系统往往两者兼用。你可以为你领域的行为和风格 fine-tune 一个模型,并且在运行时用 RAG 给它喂当前的事实。形式来自 fine-tuning,事实来自检索。
把它们看作互补而非竞争,正是理解了这个区别的标志。你不是在选一种技术——而是把每一种用在它适合的那部分问题上。
- 问题
- 你既需要一致的回答形式,又需要新鲜的事实。
- 思路
- Fine-tuning 提供行为;RAG 在回答时提供知识。
- 例子
一个为按律所风格写作而 fine-tune 过的法律助手,并通过 RAG 引用当前的合同。
- 代价
- 要构建并维护两套系统。
- 何时使用
- 当 prompt + RAG 明确做不到你需要的形式时。
- 关联
- Form vs Facts 的直接应用。
Fine-tuning 教形式——风格、格式、行为;RAG 教事实——当前的、具体的知识。经典的昂贵错误,就是用 fine-tuning 来添加事实,而它们在训练结束的那一刻就冻结了。
把这三者放在一起,就构成一道成本与能力递增的阶梯。纪律和工程里处处一样:只爬到问题逼你爬到的高度。
Decision Ladder——从最底层的 prompting 开始
在报名培训班之前,你先试着把任务讲清楚——大多数时候,那就是它所需要的全部。
decision ladder(决策阶梯)从便宜、即时到昂贵、缓慢:先 prompting,再 RAG,最后 fine-tuning。永远从最底层开始。
先试清晰的指令和几个例子;极大一部分问题就在这里解决了,免费,几分钟。只有当 prompting 确实补不上缺口时,你才往上爬。从顶层开始——先去够 fine-tuning——正是那种有预算的新手所犯的昂贵错误。
- 是什么
- 选择的顺序:prompting → RAG → fine-tuning。
- 怎么运作
- 从最便宜的一级开始,只有当它确实失败时才往上爬。
- 例子
机器人搞混了价格方案 → 先把它们放进 prompt;方案有数千个且会变 → RAG;语气仍然不对,例子也修不好 → 考虑 fine-tuning。
- 坑
- 因为 fine-tuning“听起来更正式”,就忍不住直接跳到最顶层。
- 关联
各级台阶是 Prompting、RAG、Fine-tuning;检验手段是 Evals。
只有当下一级够不着时才往上爬
只有当小工具确实干不了这活时,你才换更大的工具——而不是因为大的听起来更正式。
当知识对 prompt 来说太大、太新或太私密时,往上爬到 RAG——这是 prompting 填不上的明确的 knowledge gap。当你需要一致的行为,而 prompting 和例子无法可靠地做到,并且你有数据和预算去教它时,再爬到 fine-tuning。
每一级台阶,都只因下一级失败才成立。每一步的问题是:更便宜的技术在这里是真的不够用了,还是我只是以为它不够用?
大多数产品永远用不到最顶层
大多数活儿靠一份好的简报和一本参考书就能完成——完全重新训练是例外,只留给那种确实需要它的罕见情形。
诚实的现实是:绝大多数 LLM 应用用 prompting 和 RAG 就能很好地满足,根本不需要 fine-tuning。Fine-tuning 对于大规模根深蒂固的行为这一特定情形,是一件真实而强大的工具——但它是例外,而不是默认。
把它当作最后的手段,只有在较轻的几级明确失败之后才用。这比因为它听起来高级就去用它,能让你走对路的次数多得多。
阶梯是先 prompting,再 RAG,最后 fine-tuning——成本与能力递增。从底层开始,只有当下一级确实够不着时才往上爬。大多数产品永远用不到最顶层。
选得好,归根结底是诚实地诊断缺口,并衡量你的补救是否奏效——和支配模型相关一切的工程纪律是同一套。
Gap Diagnosis——先诊断,再选工具
好医生先诊断再开药——他们不会因为手术够戏剧性就动手术,而是先弄清到底哪里出了问题。
整个决策取决于把缺口说准。模型缺的是事实(RAG),需要更清晰的指令(prompting),还是需要融入不同的行为(fine-tuning)?这就是 gap diagnosis。
大多数错误的选择,都来自跳过这一步、直接跳到某种技术。问问到底缺什么,把它对应到最轻的合适工具,你就能避开那些昂贵的弯路——尤其是那个大弯路:为事实而 fine-tune。
- 是什么
- 在选技术之前,先准确说出模型缺什么。
- 怎么运作
- 三个问题:缺指令?缺事实?缺行为?答案会指向相应的技术。
- 例子
- “机器人答错了”→ 读它的回答 → 它不知道新规则 → 这是事实 → RAG。
- 坑
- 因为想试试时髦的技术而跳过诊断。
- 关联
建立在 Knowledge Gap vs Behaviour Gap 之上;Decision Ladder 的第一步。
Evals——衡量它是否真的奏效
你不会想当然地认为培训有用——你事后测试一下这位员工,看产出是否变好了。
不管你用哪种技术,都要用 evals 来验证它——在真实案例上做测试:这个改动真的改善了输出吗?更好的 prompt、一套 RAG 流水线、一次 fine-tune——每一个都是一个假设,要靠衡量来确认,而不是凭感觉。
这对 fine-tuning 尤其重要,因为它成本高,光凭一句含糊的“好像更好了”不足以证明它值得。衡量能让你诚实地判断:更重的技术是否真的比更轻的技术更配得上它的位置。
- 是什么
- 一组用来衡量回答质量的真实案例。
- 怎么运作
- 让旧版本和新版本在同样的案例上跑一遍,比较得分。
- 例子
- 一百个真实的客户问题:fine-tuning 前后正确回答的占比。
- 坑
- “好像更好了”不是衡量;没有 evals,一个昂贵的选择就站不住脚。
- 关联
- 检验 Decision Ladder 的每一级台阶。
这一切如何连在一起
一个药箱:每种药对应一种病,医生按诊断来选——然后检查它是否有效。
这门课的概念合起来是一幅完整的图。Gap diagnosis 指向一种技术:指令 → prompting,事实 → RAG,行为 → fine-tuning。Prompting 包含 few-shot;fine-tuning 通过 LoRA 变得更便宜;RAG 与 fine-tuning 可以合成混合方案。而 evals 检验每一个选择。
- 缺口是什么——事实、更清晰的指令,还是不同的行为?
- 你先试过 prompting 吗——清晰的指令加几个例子?
- 这是 knowledge gap 吗——庞大的、当前的或私有的事实——指向 RAG?
- 这是 behaviour gap 吗——一致的形式、风格、反复执行的任务——指向 fine-tuning?
- **对于 fine-tuning:**你有例子数据和预算吗,包括持续的维护?
- 你在衡量吗,所选的技术是否真的改善了输出?
- 你先诊断缺口——事实、指令还是行为——再选技术。
- 你从 prompting 开始,只有它确实不够用时才往上爬。
- 你用 RAG 管知识、用 fine-tuning 管行为,从不为添加事实而 fine-tune。
- 有帮助时你会组合它们——形式来自 fine-tuning,事实来自 RAG。
- 你用 evals 来衡量,并把 fine-tuning 当作有依据的最后手段,而不是默认选项。
速查表:全部 15 个概念
缺口
- Knowledge Cutoff训练数据截止点
模型的知识冻结在某个日期,取自公共互联网。
- Knowledge vs Behaviour Gap事实还是行为
模型缺事实——或者缺你需要的行为。
Prompting
- Promptingin-context learning
把指令、事实和格式直接放进 prompt。即时生效,无需训练。
- Few-shot Prompting几个例子
两三个输入 → 输出的例子——模型会重复这个模式。
- Context Window每次调用的上限
prompt 的上限:一切都必须装得下,并且每次调用都要重新发送。
RAG
- RAGretrieval-augmented generation
提问时找出相关的文档 chunks,并依据它们作答。
- Grounding锚定在来源上
回答建立在你当前的来源上;更新文档,回答随之更新。
Fine-tuning
- Fine-tuning继续训练
用你的例子重新训练 weights——行为默认就融入其中。
- LoRA / PEFT参数高效微调
只训练一个小 adapter——更便宜,但并不免费。
形式与事实
- Form vs Facts怎么 vs 什么
Fine-tuning 塑造模型怎么回答;RAG 提供它知道什么。
- Fine-tuning for Factsanti-pattern
用 fine-tuning 添加事实:昂贵、效果弱,而且马上就过时。
- Fine-tune + RAG混合
形式来自 fine-tuning,新鲜的事实来自 RAG。
选择
- Decision Ladderprompting → RAG → fine-tuning
只有当下一级确实失败时才往上爬。
- Gap Diagnosis说清缺的是什么
先说清缺什么,再选工具。
- Evals衡量
在真实案例上衡量它是否真的变好了。
诊断缺口,然后爬阶梯:指令用 prompting,事实用 RAG,行为用 fine-tuning。用能解决问题的最轻的技术,有帮助时就组合它们,并衡量它确实起了作用。