fedorthinks

速成课 · No. 28

当模型不了解你的领域时,有三种方式可以补救:在 prompt 里告诉它、在运行时把事实递给它(RAG),或者真正去重新训练它的 weights(fine-tuning)。它们解决的是真正不同的问题——而大多数人一上来就伸手去够最贵的那个。下面讲清每一种到底做什么、决定如何取舍的那一个区别,以及如何挑出能解决问题的最便宜的办法。

15 个概念 · 每个都配一幅图 · 结尾附速查表

§ 01

这三种技术的存在都是为了解决同一个问题:模型在通用层面才华横溢,却对你的具体情况一无所知。准确理解它缺什么,正是你挑对补救办法的关键。

Knowledge Cutoff——它的知识是冻结的、通用的

一位才华横溢的毕业生,几年前读过一座浩瀚的图书馆——但没读过你公司的文件,也没读过他们毕业那天之后发表的任何东西。

模型只知道它的 training data 里有的东西。这些数据取自公共互联网,冻结在某个 knowledge cutoff 日期。这些知识广博而通用——但模型对你的私有数据、你的具体领域,或训练之后发生的任何事一无所知。

所以开箱即用时,它没法回答关于你产品的问题、遵循你的内部风格,或使用上周的数字。这门课里讲的一切,都是在弥合模型的通用知识与你那个特定世界之间的那道鸿沟。

Training datapublic internet · generalAfter cutoffnew factsModel knowsbroad, generalYour private datanever seencutofffrozen at the cutoff · blind to your world
模型知道截至 cutoff 的公共互联网。最新的事实和你的私有数据都在它之外。
ConceptKnowledge Cutoff· 训练数据截止点
是什么
模型的训练数据被冻结的那个日期。此后发生的事,模型从未见过。
怎么运作
模型只从一个庞大的公共语料库里学习一次;之后它的知识不会自己更新。
例子
问它你产品的价格或上周的数字——它要么不知道,要么编一个。
坑
哪怕不知道,模型的语气也很笃定。知识的缺失不会体现在语气里。
关联
Prompting、RAG 和 Fine-tuning 要解决的根本问题。

Knowledge Gap vs Behaviour Gap——三种不同的缺口

一名新员工可能需要一份简报文档、一个可供查阅的文件柜,或者真正的培训来改变他们的工作方式——三道不同的缺口,三种不同的补救。

缺口有不同的形状,它们的补救办法也不一样。有时你需要模型为这项任务知道一些事实。有时需要它借助一大批不断变化的知识。有时需要它表现得不一样——一种一致的格式、语气或技能。

这就是 knowledge gap(知识缺口)和 behaviour gap(行为缺口)。它们分别对应那三种技术:告诉它(prompting)、给它一个知识来源(RAG),或重新训练它(fine-tuning)。说清你面对的是哪道缺口,几乎就是整个决策。

Needs a few factsfacts for this taskPromptingtell itNeeds a big, changing bodylarge · changing · privateRAGgive it a sourceNeeds to behave differentlyformat · tone · skillFine-tuningretrain it
三种缺口,三种技术:少量事实 → prompt,庞大且多变的知识 → RAG,不同的行为 → fine-tuning。
ConceptKnowledge Gap vs Behaviour Gap· 缺的是什么:事实还是行为
是什么
“模型不够用”的两种不同情形:它缺事实,或者它缺行为。
怎么运作
知识在回答时补进去(prompt、RAG)。行为则来自指令、例子或重新训练。
例子
“不了解我们的价格方案”是知识缺口。“回答的语气不像我们公司”是行为缺口。
坑
把两者混为一谈,你就是在花大价钱用一件昂贵的工具去对付错的问题。
关联
Form vs Facts 和 Gap Diagnosis 的基础。

地图:六组共 15 个概念

一张地铁线路图:先看全部线路,再一站一站地坐过去。

这门课里的每个概念都属于六组之一。先是缺口本身。然后是按成本递增排列的三种技术:prompting、RAG、fine-tuning。接着是它们之间的关键区别。最后是如何选择——以及如何检验这个选择。

The gapKnowledge cutoffKnowledge vs behaviourPromptingIn-context learningFew-shotContext windowRAGRetrieval at runtimeGroundingFine-tuningWeightsLoRA / PEFTForm vs factsForm vs factsFine-tune for facts ✗Fine-tune + RAGChoosingDecision ladderGap diagnosisEvals
六组概念——各章依次讲它们。

怎么读这门课

如果一页备忘录就够了,你不会把人送去培训一年——你让投入匹配真正缺的东西。

每个概念都用同样的方式讲:它的英文名(记住它——文档和论文里用的就是这个术语)、一幅来自日常生活的画面、一幅图,以及一张带字段的卡片:是什么、怎么运作、例子、坑,以及关联的概念。

这门课的核心思想:这些技术在成本、速度和适用场景上差别极大。最常见的错误是一上来就跳到 fine-tuning——最重的那个选项——而 prompting 或 RAG 本可以更快、更便宜地解决问题。真正的功夫不在于会不会 fine-tune,而在于把缺口诊断得足够准确,从而挑出能补上它的最轻的技术。

模型的知识是冻结的、通用的——它不了解你的世界。Prompting、RAG 和 fine-tuning 各补一种不同的缺口,所以选择要从诊断开始。

§ 02

第一种也是最便宜的技术,就是把模型需要的东西直接放进 prompt。它立即生效、无需训练,而且能力远超人们的想象——所以你永远从这里开始。

Prompting / In-context Learning——把它需要的直接放进上下文

在任务开始前给一位机灵的临时工做简报:这是情况,这是规则,这是一个好的范例——他们有能力,只是需要上下文。

给模型补上它所缺的最简单办法,就是把它放进 prompt——指令、相关事实、你想要的格式、几个例子。模型立刻使用这些信息,无需训练。这叫 in-context learning。

模型擅长遵循清晰的指令。所以,许多“模型做不到这个”,其实是“我没讲清楚”。Prompting 是要先穷尽的办法,而不是最后才用的。

Prompt (context)InstructionsRelevant factsOutput formatExamplesModelweights sameAnswerno training · instant
Prompt = 指令 + 事实 + 格式 + 例子。模型的 weights 不变;效果立竿见影。
TechniquePrompting· In-context Learning
是什么
把模型需要的一切直接放进请求文本里。
怎么运作
模型读取上下文里的指令、事实和例子,并在这一次回答中依赖它们。
例子
把退货政策放进 prompt,再说“回答要简短、语气友好”——它就照做。
坑
只对这一次调用有效,并且受窗口大小限制(见 Context Window)。
关联
Decision Ladder 的最低一级;Few-shot 是它的特例。

Few-shot Prompting——用例子即时教会行为

给出三个完全符合你想要的输出的成品例子,然后要第四个——模式当场就学会了,不需要上学。

你不仅能塑造模型知道什么,还能直接在 prompt 里通过展示例子来塑造它怎么表现——这就是 few-shot prompting。想要特定的格式、语气或处理任务的方式?放两三个例子进去,模型就会照着模式来。

很多人以为必须 fine-tune 才能做到的事——一致的风格、特定的输出形态——往往靠上下文里的例子就能实现。免费,而且立即生效。

Examples in the promptinput 1output 1input 2output 2input 3output 3New inputModelSame-shape outputthe pattern is learned on the spot
prompt 里有三组输入 → 输出——新的回答就以同样的形态出来。
TechniqueFew-shot Prompting· 从几个例子中学习
是什么
直接在 prompt 里放几个期望输出的例子。
怎么运作
模型看到输入 → 输出的模式,并把它延续下去。
例子

三条按“问题 / 原因 / 解决”格式写的工单摘要——模型就会把第四条工单也按同样的格式整理。

坑
例子会占用窗口空间,并且每次请求都要重新发送。
关联
常常能替代 Fine-tuning 来解决风格和格式;在它之前应当先试的办法。

Context Window——局限:窗口与重复

一份简报管一场会议,但你能递出的页数有限,而且每次都得重新递一遍——对备忘录来说没问题,对百科全书就太笨拙了。

Prompting 有两个实实在在的局限。第一,一切都必须塞进 context window(上下文窗口),所以你没法把一个庞大的知识库整个贴进去。第二,它是按次调用的:你每次都要发送这份上下文,每次请求都要为此付费,而模型在两次调用之间从不保留它。

当知识大到装不进窗口、不断变化,或者你得一遍又一遍地粘贴同样的大块材料时,光靠 prompting 就不够了。这正是下一种技术登场的地方。

Limit 1 · the windowcontext windowMemo + examplesfits ✓Huge knowledge basedoesn't fit ✗Limit 2 · every callCall 1same contextpaid againCall 2same contextpaid againCall 3same contextpaid againnever kept between calls
局限 1:备忘录装得进窗口,百科全书装不进。局限 2:同样的上下文每次调用都要发送——也都要付费。
LimitContext Window· 模型每次调用的工作记忆
是什么
模型在一次调用中能看到的文本的最大量。
怎么运作
你想给模型的一切都必须放进窗口——并且在下一次请求时重新发送。
例子
一页纸的退货政策放得下。公司由数千份文档组成的整个知识库放不下。
坑
庞大的上下文每次请求都要付费;模型并不“记得”它。
关联
窗口不够用时,就往上一级走,到 RAG。

Prompting 把模型需要的东西——事实、格式、例子——放进上下文,立即生效、无需训练。它强大又便宜,只受限于窗口大小和每次调用都得重复。

§ 03

当知识对 prompt 来说太大或太新时,你不用全塞进去——而是在需要的那一刻取回相关的那一块。这就是检索增强生成。

RAG——在运行时检索相关事实

开卷考试:你不必背下整座图书馆,而是在提问的那一刻查出少数几页相关内容,并依据它们作答。

RAG(retrieval-augmented generation,检索增强生成) 处理对 prompt 来说太大的知识:按需只取回相关的那一部分。提问时,它在你的文档中检索,取出最相关的 chunks——文本片段——并把这些放进上下文。模型就依据它们作答。

这样,模型依据的是你真实、当前的数据,却从未把它们背下来——你在它需要的那一刻递给它正确的那一页。(RAG 那门课会讲得很深;这里讲的是它在整套方案里的位置。)

QuestionRetrievesearch docsPromptquestion + chunksModelYour docschunks · indexAnswerquerytop chunksRetrieval-Augmented Generation: look up, then answer
问题 → 检索文档 → 最佳 chunks 进入 prompt → 模型依据它们作答。
TechniqueRAG· Retrieval-Augmented Generation
是什么
在回答之前,先到你的文档中检索相关事实。
怎么运作

问题 → 索引检索 → 最佳 chunks → 带着这些 chunks 的 prompt → 模型的回答。

例子
被问到“怎么退货?”时,客服机器人找到退货章节,并依据它作答。
坑

检索不好,回答就不好。而且 RAG 不会改变模型的行为——只改变它在这次回答中所知道的东西。

关联

Decision Ladder 的中间一级;与 Fine-tuning 搭配得很好(Fine-tune + RAG)。

Grounding——把回答锚定在庞大、多变、私有的知识上

一座你随时更新的参考图书馆:某个事实变了,你不必重印图书管理员的大脑——只需更新书架,下一次查阅就是最新的。

RAG 恰恰在 prompting 吃力的地方大放异彩:对窗口来说太大的知识库、经常变化的事实,或模型从未训练过的私有数据。更新一份文档,下一个回答就立刻反映出来——无需重新训练。

这叫 grounding——把模型的回答锚定在你的具体、当前、可能保密的信息上。当缺口是“它需要知道一些东西”,尤其是会变动的东西时,答案通常就是 RAG。

Price list v1oldPrice list v2updated todayIndexre-indexedNext questionCurrent answerno retrainingeditlarge · changing · private — update the shelf, not the brain
更新价目表 → 索引更新 → 下一个回答已经用上新版本。无需重新训练。
ConceptGrounding· 把回答锚定在来源上
是什么
模型的回答建立在你的真实来源上,而不是它的记忆上。
怎么运作
文档在索引里更新;每个回答都由此刻检索到的内容构建。
例子
价目表早上改了——到午饭时机器人报的已经是新价格。
坑
索引里过时或相互矛盾的文档,会产出过时或相互矛盾的回答。
关联
由 RAG 实现;恰恰是用 Fine-tuning 来灌输事实所给不了的。

RAG 增加的是知识,不是新行为

给人更好的参考书,会让他们见多识广——但不会改变他们的写作风格,也不会教给他们新技能。进来的是事实,不是习惯。

RAG 的关键在于:它改变的是模型在这次回答中所知道的,而不是它从根本上怎么表现。模型底层的技能、风格和推理都没变——你只是给了它更好的事实去依据。

所以,RAG 是解决 knowledge gap 的对症工具,却是解决 behaviour gap 的错误工具。如果你需要模型始终以某种特定方式回应,检索更多文档是做不到的。这就指向了第三种技术。

Better docsvia RAGModelsame weightsKnowledgechanges ✓Behaviourunchangedfacts in, not habits
用了 RAG,模型知道得更多了,但它的 weights 和行为没变。

RAG 在运行时取回相关事实,把模型锚定在对 prompt 来说太大、太新或太私密的知识上。它增加的是模型所知道的——而不是它如何表现。

§ 04

最重的技术真的会修改模型本身。它是唯一能改变模型根深蒂固的行为的办法——也是人们出于错误的理由、过早伸手去够的那一个。

Fine-tuning——用你的例子重新训练模型

不是为某个任务给工人做简报,而是送他们去接受培训,从而改变他们默认的工作方式——新的做法已经融入其中,不必每次再递给他们。

Fine-tuning 拿一个现有的模型,用你自己的一组例子继续训练它。这会调整它内部的 weights——存放模型一切能力的那些数字——于是新的行为就成了模型本身的一部分。

Prompting 和 RAG 在运行时补充信息,模型本身不变。Fine-tuning 则真的改变了模型。结果是,它默认就按你的方式表现,无需在每个 prompt 里放指令或例子——它已经学会了。

Base modelgeneral weightsYour examplesinput → outputTrainingadjust weightsFine-tuned modelbehaviour baked innext call: no instructions, no examples — it already learned
基础模型 + 你的例子 → 训练 → 一个新模型,行为已融入它的 weights。
TechniqueFine-tuning· 用你的数据继续训练
是什么
用你的输入 → 输出例子,继续训练一个现有的模型。
怎么运作
训练会调整 weights,使模型自己对类似的输入产出期望的输出。
例子

在数千条客服回复上 fine-tune 过的模型,不需要任何指令就能写出公司的口吻。

坑
它需要高质量的数据、训练和专业能力——而且每当情况变化,就得重新训练。
关联

Decision Ladder 的最高一级;用 LoRA / PEFT 可以更便宜;可以与 RAG 组合。

Fine-tuning 教什么:行为、格式、风格

一种培训,把一个通才变成能可靠地用你们公司的口吻写作、或每次都以同样方式处理你们那项特定任务的人——是习得的习惯,而不是提醒。

Fine-tuning 真正擅长的是行为:一致的语气或内部风格、特定的输出格式、模型反复执行的专门任务,或贴合你的领域措辞的方式。

当你有大量“这样的输入应当产出那样的输出”的例子时,fine-tuning 可以把这种模式深深地、可靠地固化下来——效果超出 prompt 里放例子所能达到的。它塑造的是模型怎么回应,并且是学进了它的 weights 里。

ticket Aticket Bticket CSame toneSame formatSame task flowFine-tuned modela learned habit, not a reminder
各种各样的输入 → fine-tune 过的模型 → 每次都是同样的语气、同样的格式、同样的任务流程。

LoRA / PEFT——更便宜,但并不免费

送人去参加正规的培训项目,要花时间、花钱,还要一套课程——而一旦工作变了,你还得把他们重新培训一遍。

Fine-tuning 是昂贵的选项。它需要一份高质量的例子数据集(往往很大)、一套训练流程和专业能力。而且这不是一次性的成本:情况一变,你就得重新训练。

LoRA(Low-Rank Adaptation) 和其他 parameter-efficient fine-tuning(PEFT) 方法,只调整模型的一小部分,而不是全部 weights,从而让它更便宜。这降低了门槛——但 fine-tuning 仍然比 prompting 或 RAG 重得多。

Base model weightsfrozen · billions of paramsLoRA adaptersmall · trainableplugs inFull fine-tuning: update all weights — costlyLoRA / PEFT: train a tiny slice — cheaper, still not free
LoRA:主体 weights 保持冻结;只训练旁边一个小小的 adapter。
Collect datamany good examplesTraintime · money · skillDeploytuned modelThings changejob · data · styleretrainnot a one-off cost
Fine-tuning 的循环:数据 → 训练 → 部署 → 世界变化 → 重新训练。这不是一次性的成本。
TechniqueLoRA / PEFT· Low-Rank Adaptation,参数高效微调
是什么
一种 fine-tune 模型的方式,只改动它一小部分参数。
怎么运作
主体 weights 被冻结;训练一个小小的“adapter”,再接入模型。
例子

不必为你们的内部风格 fine-tune 整个模型,而是训练一个轻量的 LoRA adapter。

坑
更便宜不等于便宜:数据、训练和重新训练仍然都在。
关联
让 Fine-tuning 更便宜,但并不能跳过 Decision Ladder。

Fine-tuning 重新训练模型的 weights,让新行为融入其中——适合一致的风格、格式和反复执行的任务。它是昂贵的选项:数据、训练和持续维护,即使用了 LoRA 也是如此。

§ 05

一个区别就能理清 fine-tuning 与 RAG 之间的大部分困惑,并避开最常见的那个昂贵错误。弄懂它,选择往往水到渠成。

Form vs Facts——fine-tuning 教形式,RAG 教事实

你训练一个人怎么写报告(习得的技能),但你把要填进去的数据递给他们(每次查来的)——技能是教的,事实是取的。

这条规则能把一切理清:fine-tuning 管模型怎么回应;RAG 管它知道什么。 Fine-tuning 教的是形式——风格、语气、格式、任务的形态——把它固化进 weights。RAG 提供的是事实——当前的、具体的、私有的信息——在运行时把它们取来。

一个改变行为;另一个改变知识。几乎每个“我该 fine-tune 还是用 RAG?”的问题,只要你问一句缺口到底是形式还是事实,就迎刃而解。

FORM → fine-tuningStyleToneOutput formatTask shapehow it answersFACTS → RAGCurrent factsSpecific numbersPrivate dataChanging docswhat it knows
左边是形式——由 fine-tuning 来教。右边是事实——由 RAG 来带。
PrincipleForm vs Facts· 怎么回答 vs 知道什么
是什么
在 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-tuning for facts✓ RAG for factsTrain on v1Data → v2Model still v1Retrain $$Index v1Data → v2Update docAnswer v2 ✓facts freeze the moment training ends
上:用 v1 训练,数据已变成 v2——模型过时了,得重新训练。下:RAG——更新文档,回答已经用上 v2。
Anti-patternFine-tuning for Facts· 用 fine-tuning 灌输知识
是什么
试图通过训练把事实“放进”模型里。
为什么不好
效果差、花费大,而且事实在训练结束的那一刻就过时了。
例子
在价目表上 fine-tune 过的模型——一周后价格变了,它报的还是旧价格。
替代做法
事实放进 RAG:更新文档就完事了。
关联
直接违背了 Form vs Facts。

Fine-tune + RAG——fine-tune 形式,检索事实

一位受过“怎么做这份工作”培训的专家(fine-tuning),同时还会查阅一份始终最新的参考资料来获取细节(RAG)——两全其美,各司其长。

它们不是对手;最强的系统往往两者兼用。你可以为你领域的行为和风格 fine-tune 一个模型,并且在运行时用 RAG 给它喂当前的事实。形式来自 fine-tuning,事实来自检索。

把它们看作互补而非竞争,正是理解了这个区别的标志。你不是在选一种技术——而是把每一种用在它适合的那部分问题上。

QuestionRAGcurrent factsDocsalways up to dateFine-tuned modeldomain formAnswerform from fine-tuning + facts from retrieval
RAG 带来新鲜的事实;fine-tune 过的模型以正确的形式作答。
PatternFine-tune + RAG· 混合:形式 + 事实
问题
你既需要一致的回答形式,又需要新鲜的事实。
思路
Fine-tuning 提供行为;RAG 在回答时提供知识。
例子

一个为按律所风格写作而 fine-tune 过的法律助手,并通过 RAG 引用当前的合同。

代价
要构建并维护两套系统。
何时使用
当 prompt + RAG 明确做不到你需要的形式时。
关联
Form vs Facts 的直接应用。

Fine-tuning 教形式——风格、格式、行为;RAG 教事实——当前的、具体的知识。经典的昂贵错误,就是用 fine-tuning 来添加事实,而它们在训练结束的那一刻就冻结了。

§ 06

把这三者放在一起,就构成一道成本与能力递增的阶梯。纪律和工程里处处一样:只爬到问题逼你爬到的高度。

Decision Ladder——从最底层的 prompting 开始

在报名培训班之前,你先试着把任务讲清楚——大多数时候,那就是它所需要的全部。

decision ladder(决策阶梯)从便宜、即时到昂贵、缓慢:先 prompting,再 RAG,最后 fine-tuning。永远从最底层开始。

先试清晰的指令和几个例子;极大一部分问题就在这里解决了,免费,几分钟。只有当 prompting 确实补不上缺口时,你才往上爬。从顶层开始——先去够 fine-tuning——正是那种有预算的新手所犯的昂贵错误。

cost & powerPromptingcheap · instantRAGmedium · retrievalFine-tuningcostly · retrainprompting fell shortRAG fell shortstart at the bottom · climb only when the rung below fails
三级台阶:prompting → RAG → fine-tuning。越高越贵、越强。只有下一级不行时才往上爬。
PracticeDecision Ladder· prompting → RAG → 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。

每一级台阶,都只因下一级失败才成立。每一步的问题是:更便宜的技术在这里是真的不够用了,还是我只是以为它不够用?

Try promptingSolved?Ship it ✓What's missing?RAGlarge · current · privateFine-tuningbehaviour + data + budgetyesnofactsbehavioureach rung is justified only by the failure of the one below
先用 prompt。解决了——上线。没解决——问问缺什么:事实(RAG)还是行为(fine-tuning)。

大多数产品永远用不到最顶层

大多数活儿靠一份好的简报和一本参考书就能完成——完全重新训练是例外,只留给那种确实需要它的罕见情形。

诚实的现实是:绝大多数 LLM 应用用 prompting 和 RAG 就能很好地满足,根本不需要 fine-tuning。Fine-tuning 对于大规模根深蒂固的行为这一特定情形,是一件真实而强大的工具——但它是例外,而不是默认。

把它当作最后的手段,只有在较轻的几级明确失败之后才用。这比因为它听起来高级就去用它,能让你走对路的次数多得多。

阶梯是先 prompting,再 RAG,最后 fine-tuning——成本与能力递增。从底层开始,只有当下一级确实够不着时才往上爬。大多数产品永远用不到最顶层。

§ 07

选得好,归根结底是诚实地诊断缺口,并衡量你的补救是否奏效——和支配模型相关一切的工程纪律是同一套。

Gap Diagnosis——先诊断,再选工具

好医生先诊断再开药——他们不会因为手术够戏剧性就动手术,而是先弄清到底哪里出了问题。

整个决策取决于把缺口说准。模型缺的是事实(RAG),需要更清晰的指令(prompting),还是需要融入不同的行为(fine-tuning)?这就是 gap diagnosis。

大多数错误的选择,都来自跳过这一步、直接跳到某种技术。问问到底缺什么,把它对应到最轻的合适工具,你就能避开那些昂贵的弯路——尤其是那个大弯路:为事实而 fine-tune。

Model falls shortDiagnosewhat's missing?Promptingmissing instructionRAGmissing factsFine-tuningmissing behaviourdiagnose before you prescribe
模型表现不足 → 诊断缺什么 → 指令:prompting,事实:RAG,行为:fine-tuning。
PracticeGap Diagnosis· 说清缺的是什么
是什么
在选技术之前,先准确说出模型缺什么。
怎么运作
三个问题:缺指令?缺事实?缺行为?答案会指向相应的技术。
例子
“机器人答错了”→ 读它的回答 → 它不知道新规则 → 这是事实 → RAG。
坑
因为想试试时髦的技术而跳过诊断。
关联

建立在 Knowledge Gap vs Behaviour Gap 之上;Decision Ladder 的第一步。

Evals——衡量它是否真的奏效

你不会想当然地认为培训有用——你事后测试一下这位员工,看产出是否变好了。

不管你用哪种技术,都要用 evals 来验证它——在真实案例上做测试:这个改动真的改善了输出吗?更好的 prompt、一套 RAG 流水线、一次 fine-tune——每一个都是一个假设,要靠衡量来确认,而不是凭感觉。

这对 fine-tuning 尤其重要,因为它成本高,光凭一句含糊的“好像更好了”不足以证明它值得。衡量能让你诚实地判断:更重的技术是否真的比更轻的技术更配得上它的位置。

Hypothesisprompt · RAG · fine-tuneEvalsreal cases, scoredBetter?Keep it ✓Roll backlighter tool winsyesnomeasure, don't feel
假设 → 在真实案例上跑 evals → 更好:保留;没更好:退回到更轻的工具。
PracticeEvals· 在真实案例上评估
是什么
一组用来衡量回答质量的真实案例。
怎么运作
让旧版本和新版本在同样的案例上跑一遍,比较得分。
例子
一百个真实的客户问题:fine-tuning 前后正确回答的占比。
坑
“好像更好了”不是衡量;没有 evals,一个昂贵的选择就站不住脚。
关联
检验 Decision Ladder 的每一级台阶。

这一切如何连在一起

一个药箱:每种药对应一种病,医生按诊断来选——然后检查它是否有效。

这门课的概念合起来是一幅完整的图。Gap diagnosis 指向一种技术:指令 → prompting,事实 → RAG,行为 → fine-tuning。Prompting 包含 few-shot;fine-tuning 通过 LoRA 变得更便宜;RAG 与 fine-tuning 可以合成混合方案。而 evals 检验每一个选择。

Gap diagnosisPromptingRAGFine-tuninginstructionfactsbehaviourFew-shotFine-tune + RAGLoRAEvalsmeasure whether each choice actually helped
诊断 → 三种技术之一(虚线:爬阶梯)→ 它们的变体 → 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。用能解决问题的最轻的技术,有帮助时就组合它们,并衡量它确实起了作用。

速成课到此结束 · 7 章 · 15 个概念

接下来是实践:拿一个模型力不从心的案例,把缺口大声说出来——事实、指令,还是行为。先试着用 prompting 修它;如果它需要当前或私有的知识,就去够 RAG;只有当你需要例子达不到的根深蒂固行为时,才考虑 fine-tuning。然后衡量它是否真的有改善。当你抓住自己正要为事实去 fine-tune、转而去够 RAG 的那一刻,这个决策就咔哒一声到位了。但有一个想法要高过其余:fine-tuning 教形式,RAG 教事实,而 prompting 是你的起点。在这三者中挑出能弥合你真正缺口的最轻的那个——它通常不是听起来最唬人的那个。