
每次都要重新教?脈絡內學習 ICL
權重一個都沒動,對話結束就沒了
「它學會了。」
你在提示詞裡貼三筆「輸入 → 輸出」的例子,丟第四筆進去,它照著格式回了——這句話幾乎是反射性地說出口的。
它沒有學會。同一組權重,你關掉分頁、開一個新對話,它什麼都不記得。剛剛發生的事有名字,叫脈絡內學習(in-context learning,常簡稱 ICL),而這個名字裡的 learning 從一開始就是借來的。
脈絡內學習(in-context learning)是指大型語言模型(LLM)只憑放在提示詞裡的例子與說明,就改變行為去做一個新任務,過程中不更新任何模型參數。模型沒有被訓練,是你在推論的當下把任務規格連同示範一起餵了進去。示範住在脈絡視窗裡,脈絡結束,這個「會」就跟著結束。
這個能力是 2020 年 OpenAI 的 GPT-3 論文《Language Models are Few-Shot Learners》帶進主流視野的。那篇論文最關鍵的一句設定是:所有任務一律不做梯度更新、不做微調,任務說明與示範純粹用文字交給模型。同一組預訓練權重,跑完整套評測。
為什麼說 learning 是借來的
跟微調(fine-tuning)並排看最清楚:
| 脈絡內學習 | 微調 | |
|---|---|---|
| 改了什麼 | 什麼都沒改,只改這一次的輸入 | 模型參數本身 |
| 成果存在哪 | 這一段脈絡裡 | 權重裡 |
| 什麼時候失效 | 脈絡結束、被截斷、被壓縮 | 不會,除非再訓一次 |
| 成本形狀 | 每次呼叫都付一次(照 token 計價) | 前期一次大的,之後每次便宜 |
| 換任務要做什麼 | 換一段提示詞 | 換一個模型 |
最實際的差別在最後兩列。ICL 的教學成本是每次都付:你放進去的那 20 個示範,模型每回答一次就重讀一次,你就付一次錢。快取能讓重複的前綴變便宜,但便宜不是免費,而且你只要改動前面的內容,快取就得重算。
示範教的是形狀,不是答案
這是 ICL 最反直覺的一段。2022 年 Min 等人的〈Rethinking the Role of Demonstrations〉做了一個很粗暴的實驗:把示範裡的標籤全部換成隨機的錯答案。在分類與多選任務上,表現幾乎沒掉——12 個模型一致。
那示範到底在教什麼?論文的答案是三件事:標籤空間(有哪些可能的答案)、輸入文字的分布(題目長什麼樣子)、以及整段序列的格式。示範主要在告訴模型「這是哪一種任務、答案該長成什麼形狀」,不是在教它正確答案。
實務含義很直接:你的 few-shot 例子答案偶爾寫錯,多半不會壞事;格式寫歪、可能的答案沒給全,一定會壞事。 與其逐字校對每個例子的答案,不如先讓例子的形狀一致。
邊界要標清楚:這個結論在分類、多選這種「答案空間有限」的任務上最穩,開放式生成與推理任務不能直接套用——下一節就會撞到這件事。
它為什麼會
機制上目前最有解釋力的線索叫歸納頭(induction head)。Anthropic 2022 年的〈In-context Learning and Induction Heads〉描述了一種由兩層注意力頭組成的電路,做的事極簡單:脈絡裡看過 [A][B] 這個組合,之後再遇到 [A],就預測下一個是 [B]。
最有意思的證據是時間點。這些歸納頭會在訓練途中某一刻突然成形,而模型的脈絡內學習能力也在同一刻跳一階——訓練損失曲線上看得到一個小凸起。研究團隊自己把證據強度標得很老實:小型純注意力模型有強的因果證據,較大的模型只有相關性證據。
所以它比較像是模型在預訓練階段學會了一套「照抄脈絡裡的模式」的通用機制,而不是它在你的對話裡真的長出了新東西。
2026 年變了什麼:從三個例子到幾百個
早年 ICL 幾乎等於 few-shot——放三五個例子。脈絡視窗變長之後,它變成另一個東西。
Google DeepMind 2024 年的〈Many-Shot In-Context Learning〉把示範數量拉到數百甚至上千,發現多項生成與判別任務都有明顯增益,其中一些逼近微調的效果,甚至能覆寫預訓練帶來的偏好。代價也寫在同一篇裡:進入 many-shot 區間後,推論成本隨示範數線性上升。
但這套規則不會自動搬家。2026 年 5 月的〈Many-Shot CoT-ICL〉發現,從非推理任務歸納出來的 many-shot 規律,放到推理任務上不成立;作者主張示範要「對這個模型來說容易懂」而且要「排成一條循序漸進的順序」,並用一個排序方法在 64 個示範的數學任務上拿到最多 5.42 個百分點的提升。同一批例子、換個順序、結果就不同——這件事本身就說明 ICL 不是在學,是在被引導。
它會在哪裡失手
它不累積。 你今天在對話裡糾正它十次,明天開新對話它照樣錯。要跨對話累積是另一個題目(continual learning、agent 記憶),不歸 ICL 管。
它不等於推理。 思維鏈那種「把步驟寫出來」在 2026 年多半已經訓進模型裡了,跟你放不放示範是兩個機制;示範堆再多,也不會自動讓它更會推理。
順序與位置會改變答案。 同一組示範換個順序、換個擺放位置,結果可能就不一樣。這是把 ICL 當成「知識注入」的人最常踩的坑。
它會被脈絡預算排擠。 你放的每一個示範,都在跟你真正要處理的資料搶同一個視窗。示範多到擠掉正文,是純虧。
怎麼用才不虧:三個判準
第一,先問這個任務的「教學費」要付幾次。 一天呼叫十次,把示範塞進提示詞最省事;一天呼叫十萬次、示範又長,那筆重複成本大到值得認真算一次微調的帳。ICL 與微調真正的分界線在這裡,不在「哪個比較強」。
第二,改 few-shot 例子時,先修形狀再修答案。 格式一致、答案空間給全、順序由淺入深——這三件的效益,比逐字校對正確性高。
第三,把「它學會了」從你的詞彙裡拿掉,換成「我這次教了它」。 一個用詞的差別,會讓你在對的地方找解法:出錯時該問的是「我這一次的脈絡裡少放了什麼」,不是「模型是不是退步了」。
有一件事到 2026 年還沒吵完,而且它會決定你該把力氣花在哪:ICL 到底是模型在脈絡裡執行了某種隱式的最佳化,還是它只是把預訓練學過的任務「認出來、定位到」?兩派都有實驗撐著。如果是前者,示範的品質與順序值得工程化;如果是後者,你能榨出來的上限就是預訓練時見過的東西。要盯就盯那類實驗——讓模型在脈絡裡學會一個預訓練絕不可能見過的函數。那是唯一能把兩派分開的證據形態。
資料來源:GPT-3 論文《Language Models are Few-Shot Learners》(arXiv:2005.14165)、Min 等人〈Rethinking the Role of Demonstrations〉(arXiv:2202.12837,EMNLP 2022)、Anthropic〈In-context Learning and Induction Heads〉(arXiv:2209.11895)、Google DeepMind〈Many-Shot In-Context Learning〉(arXiv:2404.11018)、〈Many-Shot CoT-ICL: Making In-Context Learning Truly Learn〉(arXiv:2605.13511,2026-05)。本篇是論文檢視,本刊未自行重跑上述任何一項實驗。
FAQ
常見問題
- in-context learning 跟 few-shot prompting 是同一件事嗎?
- 不是,few-shot 是 in-context learning 的一種用法。few-shot 指在提示詞裡放幾個示範,而 in-context learning 涵蓋更廣:只給任務說明、一個示範都不放(zero-shot)也算,示範放到數百上千(many-shot)同樣算。共同點是都不更新模型參數。
- in-context learning 會改變模型嗎?
- 不會。模型權重完全不動,效果只存在於當次的脈絡視窗裡。同一段對話結束、脈絡被截斷或被壓縮之後,模型不會保留任何東西;要跨對話累積屬於 continual learning 或 agent 記憶的範疇,不是 in-context learning。
- 什麼時候該從 in-context learning 改用 fine-tuning?
- 看教學成本付幾次。in-context learning 把示範放在提示詞裡,每呼叫一次就重讀一次、付一次 token 費用;fine-tuning 是前期付一次大的、之後每次呼叫便宜。當同一組長示範被高頻重複呼叫,累積的重複成本超過一次訓練的成本時,就到了該算這筆帳的時候。
SOURCES
- ALanguage Models are Few-Shot Learners(Brown 等,arXiv:2005.14165,2020)
- ARethinking the Role of Demonstrations: What Makes In-Context Learning Work?(Min 等,arXiv:2202.12837,EMNLP 2022)
- AIn-context Learning and Induction Heads(Olsson 等/Anthropic,arXiv:2209.11895,2022)
- AMany-Shot In-Context Learning(Agarwal 等/Google DeepMind,arXiv:2404.11018,2024)
- AMany-Shot CoT-ICL: Making In-Context Learning Truly Learn(Chung 等,arXiv:2605.13511,2026-05)
來源分級:A = 一手公告/論文/官方文件 · B = 可信媒體 · C = 可參考但需脈絡 · D = 觀察用,不可當事實。
本文由 AI 協助研究與起草,矽基前沿編輯部編修,總編輯廖玄同審閱定稿。 編輯方針與 AI 使用說明


