DAY 276

One-shot prompt 的 shot 是什麼

寫提示詞(prompt,丟給 AI 的指令)的時候,常會看到三個一起出現的詞:zero-shot、one-shot、few-shot。這裡的 shot,指的是提示詞裡給模型看的範例。

所以 one-shot prompt 的意思,是提示詞裡舉了一個例子。

一般英文的 one-shot 是「一次就成功」,社群上也滿常看到有人把 one-shot prompt 當成「一個 prompt 就完成」來用。[TODO: 補一個實際看到的例子——在哪裡看到、要不要放截圖] 這個用法放在日常英文沒問題,只是在提示詞這個領域,這個詞另外有它的定義。

這篇分享:三個詞各指什麼、這組詞是從哪來的,以及什麼時候用哪一種。

shot 指的是提示詞裡的範例

同一個任務,差別只在提示詞裡放了幾個範例:

  • zero-shot:只下指令,不給範例
  • one-shot:下指令,再給一個範例
  • few-shot:下指令,再給幾個範例

GPT-3 的論文用英翻法當例子,大概長這樣:

# zero-shot
Translate English to French:
cheese =>

# one-shot
Translate English to French:
sea otter => loutre de mer
cheese =>

# few-shot
Translate English to French:
sea otter => loutre de mer
peppermint => menthe poivrée
plush girafe => girafe peluche
cheese =>

三種寫法要模型做的事都一樣:把 cheese 翻成法文。差在模型動手之前,先看過幾個「題目 => 答案」的示範。

[TODO: 一組自己的 zero / one / few-shot 對照——同一個任務、三種寫法,實際輸出差在哪]

這組詞原本是機器學習的用語

few-shot learning 研究的是:模型只看過一個或少數幾個例子,能不能學會一個新的類別。電腦視覺領域在 2000 年代就在做這件事,常被引用的一篇是 Li Fei-Fei、Rob Fergus、Pietro Perona 2006 年發表的〈One-shot learning of object categories〉,講的是只看一張或少數幾張圖片,就學會辨認一類物體。

那時候的 shot,指的是訓練時給模型的例子。

GPT-3 把它搬到提示詞上

2020 年 5 月,OpenAI 的 Tom B. Brown 等 31 位作者發表 GPT-3 的論文,標題就叫〈Language Models are Few-Shot Learners〉。

論文把模型完成任務的方式分成四種:fine-tuning(拿一批標好答案的資料,重新訓練模型),以及 zero-shot、one-shot、few-shot。後面三種有一個共同點:模型本身完全沒改,範例全部寫在提示詞裡。

論文裡的定義很直接:

  • few-shot:給幾個示範。論文裡通常給 10 到 100 個,看模型一次讀得下多少
  • one-shot:跟 few-shot 一樣,只是只給一個示範
  • zero-shot:只給一段描述任務的文字,不給示範

one-shot 會被單獨列成一類,論文給的理由是:它最接近人跟人交代工作的方式。像在群眾外包平台上發任務,說明裡通常會附一個範例。

模型沒有重新訓練,只是看了範例

背後的原理叫 in-context learning(在上下文裡學習):模型從提示詞裡的範例,抓出你要的格式和規律,接著照著做。

GPT-3 論文的摘要也寫了:所有任務都沒有更新模型、也沒有 fine-tuning,任務和範例全部透過文字交給模型。

所以它不用準備幾千筆資料,也不用重新訓練。範例只在這一次對話裡有效,開一個新對話,就要再給一次。

什麼時候用哪一種

  • zero-shot:任務簡單、模型一看就懂,例如「把這段翻成英文」
  • one-shot:你對輸出格式有特定要求,給一個範例讓它照著排
  • few-shot:格式比較複雜,或你要它模仿某種風格

範例越多,輸出格式越穩,提示詞也越長。Day 158 提過丟幾段自己寫過的文字給 AI 模仿,用的就是 few-shot。

當大部分人都拿 one-shot 來講「一次就完成」,真正想說「我給了一個範例」的人,反而沒辦法用這個詞講得那麼精準。


Language Models are Few-Shot Learners(GPT-3 論文):https://arxiv.org/abs/2005.14165 One-shot learning of object categories:https://doi.org/10.1109/TPAMI.2006.79 Day 158 AI 的怪詞為什麼列不完:https://www.dawsonwang.com/day/158

延伸閱讀
看完整 275 篇 →