生成式AI與大型語言模型
上下文學習(in-context learning)
/ in-KON-tekst LER-ning /
上下文學習,是大模型一項令人驚訝的本領:僅憑提示裡給出的幾個例子,就能拿捏一項新任務——無需任何訓練,也不改動它內部任何一個數字。你給它看三個把俚語翻成正式英語的例子,到第四個,它就照做了。看上去模型在那幾秒裡學到了點什麼,可它內部其實什麼都沒變;它是從眼前擺著的例子裡推斷出了模式,然後順著續了下去。
這套機理,最好理解為一種極其靈活的「模式補全」。在預訓練時,模型見過無數「先有例子、隨後跟著更多同類」的段落,所以當你擺出「輸入、輸出、輸入、輸出、輸入——」時,把這個模式補完,恰恰正是它早已練得爐火純青的那種續寫。「零樣本」是指只給指令;「少樣本」是指先給上幾個做好的例子。正是這一點,讓一個凍結不動的模型,僅憑改變你餵給它的措辭,就能應付成千上萬種不同任務。
兩點要誠實說。其一,因為什麼都沒存下,提示一結束,那點「學習」便煙消雲散——下一段對話又是一張白紙。其二,上下文學習真實存在,卻很脆弱:它對例子的順序、格式,乃至微小的措辭改動都很敏感,還可能抓住一個表面的模式、而非你想要的那個。它是一種美妙的便利,卻不能在你需要可靠性時,替代真正的訓練。
你在提示裡寫:「開心 -> 😊,難過 -> 😢,生氣 -> 😠,睏 ->」。模型回答「😴」。你給的例子裡從沒出現過「睏」;它從你給的三個例子裡推斷出了規則(情緒對應表情),並當場套用。
從提示裡的例子中「學習」——而權重紋絲不動。
儘管名字裡有「學習」,上下文學習並不改變模型內部的任何東西。它是一種臨時的模式推斷,只活在當前的提示裡;關掉對話,它便蕩然無存。別把它和「微調」混為一談——後者會永久地更新模型的權重。
又稱
另見