SPAE 與「外星語翻譯機」:不用重新訓練 LLM,也能讓它看懂圖片嗎?
把圖片翻譯成「外星語」,讓只會讀文字的大型語言模型也能分類、推理和生成圖片。它也提醒我,模型外面的配套工程會直接決定 AI 能不能用。
在 Generative AI 年會,我遇到 Google DeepMind 的 Ed Chi。他跟我聊到一篇很有趣的研究:SPAE (Semantic Pyramid AutoEncoder)。
SPAE 做的事,是把圖片翻譯成大型語言模型看得懂的「外星語」。
如果手上有一個只會讀文字的大型語言模型 (LLM),也就是 ChatGPT 這一類以文字為主的 AI,現在想讓它看圖片,直覺做法是重新訓練它,教它認識像素、顏色和形狀。SPAE 走了另一條路。它不動原本的 LLM,另外做一台翻譯機,把圖片翻成 LLM 已經認識的 token。
Token 是模型讀文字時的基本單位。它有時是一個單字,有時只是半個字詞。你可以先把它想成剪碎的文字積木。
我第一個想到的是《哆啦 A 夢》的翻譯蒟蒻。差別是,吃了翻譯蒟蒻之後,人講的話還是句子;SPAE 翻出來的東西,比較像關鍵字、單字碎片和多國語言混在一起。人類看了會覺得怪怪的,LLM 卻可以讀。
這篇論文由 Google 與 Carnegie Mellon University 的研究團隊提出,收錄於 AI 研究會議 NeurIPS 2023。他們拿原本只受過文字訓練的語言模型做實驗,保持模型本身不變,讓它處理圖片分類、圖片問答,甚至生成圖片。
先替 LLM 準備一本看得懂的字典
一般影像模型也會把圖片壓縮成 token,只是那些 token 通常像內部編號,例如 1842、7391。影像模型知道編號代表什麼,LLM 完全不認識。
SPAE 換了一本字典。它直接拿 LLM 原本的詞彙表當字典,讓圖片只能被翻譯成 LLM 已經認識的 token。
圖片先進入編碼器,SPAE 會尋找意思最接近的詞。訓練時,另一個擅長替圖片找文字的 AI 模型,會像老師一樣在旁邊提示:「這張圖跟 eagle 比較接近,跟 toaster 沒什麼關係。」解碼器再做相反的事,把一串 token 盡量還原成圖片。

SPAE 像一台雙向翻譯機:左邊把圖片翻成詞彙 token,右邊再把 token 還原成圖片。圖片裁切自 Lijun Yu et al., SPAE 論文 Figure 1,僅裁切、未修改內容,依 CC BY 4.0 使用。
這裡要注意,「翻譯成文字」只是方便理解的說法。SPAE 不會寫出「一隻老鷹站在樹枝上」這種句子。它可能吐出 branch、nest、eagle,再混進一些看起來毫無文法的 token。
每個 token 都在 LLM 的字典裡,但整串話沒有人會這樣講。這就是我說的外星語。
同一張圖,可以翻成 1 個字,也可以翻成 597 個字
我覺得 SPAE 最有意思的設計,是它沒有規定每張圖只能有一種翻譯。它把 token 排成 6 層金字塔,越往後,細節越多:
| 使用到的層數 | 累積 token 數 | 大致保留的內容 |
|---|---|---|
| 1 | 1 | 最粗略的主題 |
| 2 | 5 | 主要物件與概念 |
| 3 | 21 | 足以做多數少量範例分類的語意 |
| 4 | 85 | 開始能支援較合理的圖片描述 |
| 5 | 341 | 可以重建出大致可辨識的影像 |
| 6 | 597 | 補上更多外觀細節與平滑度 |
同一張圖要翻譯多詳細,取決於接下來要做什麼。
如果只問「這是鳥還是狗」,幾個描述主題的 token 就夠了,完全不需要交代每一根羽毛。要把圖片重新畫出來,才需要一路補上位置、顏色、紋理和光影,最後用到 597 個 token。
論文裡的咖啡機很能說明這件事。前幾層出現 presso、blender、kettle、brew、stove,也出現荷蘭文 koffie 與丹麥文 kaffe。這些詞有的在講咖啡,有的在講機器,有的描述沖煮動作,還有一些對應到畫面裡的局部位置。

前 4 層先抓意思,第 5、6 層再補外觀。咖啡機範例裡可以看到物件、動作與多國語言混在一起。圖片裁切自 Lijun Yu et al., SPAE 論文 Figure 4,僅裁切、未修改內容,依 CC BY 4.0 使用。
你可以把每一層想成一張透明片:第一張畫輪廓,後面幾張慢慢補顏色和質感,最後疊起來才是一張完整圖片。
最有意思的結果:資訊不是越多越好
研究團隊拿一組圖片分類題測試語言模型。答案只有兩種、讓模型二選一時,平均答對約 79%;答案增加到五種時,平均答對約 62%。兩種測試都是用到第 3 層,也就是 21 個 token 時表現最好。
加到第 4 層的 85 個 token,分數反而掉了。再往下塞,第 5、6 層甚至會超過模型一次能讀進去的文字量,連題目都放不進去。
講白一點,分類只需要知道「這是什麼」。你硬把毛的顏色、背景紋理、光線方向全部塞給 LLM,只是在干擾它。
這篇論文呈現出很清楚的差別:
- 分類在約 21 個 token 時已經很好,更多細節可能有害。
- 圖片描述約從 85 個 token 開始出現比較合理的句子;複雜場景仍可能需要更多層。
- 影像重建需要一路使用到 597 個 token,才有足夠的外觀資訊。
這對做 AI 產品的人很有用。背景資料不是塞越多越好。你要先知道任務需要哪一層資訊,再決定給模型看什麼。
SPAE 也沒有另外教語言模型一套操作手冊。它先拿幾個例子現場示範,讓模型看完後照著做。
例如先給 LLM 一張獅子、一張花瓶,旁邊寫好正確答案。接著再給它一張新的圖片,請它照剛才的方式回答。LLM 收到的全部都是文字 token,只是其中一段文字其實是圖片翻譯過來的外星語。
論文最吸睛的 demo 是手寫數字。研究團隊先從經典的手寫數字題庫拿出 50 張圖片,翻成 SPAE token,再搭配 an image of 0 到 an image of 9,放進提示詞 (prompt) 當範例。
接著問語言模型:an image of 1+7。它先算出答案是 8,再輸出一串 SPAE token,最後由解碼器畫成一個手寫的 8。
研究團隊還問了 an image of the square root of 4,以及「世界有幾大洲」。最後真的得到手寫的 2 和 7。

語言模型先看 50 張手寫數字範例,再把算術與常識題的答案畫成圖片。圖片裁切自 Lijun Yu et al., SPAE 論文 Figure 6,僅裁切、未修改內容,依 CC BY 4.0 使用。
這個 demo 很酷,但先不要宣布語言模型已經取代影像生成模型。實驗裡只有 32 × 32 的黑白數字,而且研究團隊為它另外訓練了專用的編碼器與解碼器。
它證明的是另一件事:只要翻譯方式對了,LLM 原本的算術與常識能力,可以換一種形式輸出。
「不用重新訓練」到底是什麼意思?
這句話最容易被誤會,我自己也要講精確一點。
不用重新訓練的是 LLM。SPAE 這台翻譯機還是要訓練。
論文中的影像 SPAE 約有 5,900 萬個需要訓練的數值,也就是模型參數。它在大型圖片資料集上訓練 45 萬步,手寫數字要用另一個專用版本,影片版也用了大量運算資源。
省下來的是重新訓練巨大 LLM 的成本。編碼器、解碼器、資料和算力一樣都不能少。
研究團隊也很老實地列出限制:
- 這些 token 看起來像單字,不代表人類真的讀得懂。
- 模型一次能讀進去的內容有限,會限制能放多少圖片和範例;影片實驗甚至只能放 4 個樣本。
- 生成圖片的解析度、品質和多樣性,離專門的圖片生成模型還很遠。
- 詞彙可能帶有俚語、不恰當聯想與訓練資料裡的偏見。
比較準確的說法是:另外訓練一台翻譯機,保持 LLM 本身不變,沿用它原本的閱讀、推理與看範例學規則的能力。
把你要模型做的事,包裝成它現在做得到的形式
我看到 SPAE,第一個想到的是 harness engineering,也就是模型外面的配套工程。
現在大家很容易把注意力放在模型排行榜,關心下一代模型會不會更聰明、一次能讀多少內容、評測分數又提高幾分。
但模型很強,不等於產品就會自己工作。模型外面還有一大堆事情要處理:怎麼把需求說清楚、怎麼準備背景資料、可以用哪些工具、權限開到哪裡、失敗怎麼重跑、最後由誰驗證。
這一整套包在模型外面的工程,就是 harness。
SPAE 做了一個很極端也很漂亮的示範。語言模型看不懂圖片,研究團隊沒有等下一代模型,也沒有修改它。他們先做一台翻譯機,把圖片包裝成模型現在就能處理的形式。
這也是我做 MeetAndy 時一直在想的問題。MeetAndy 要把使用者需求、專案狀態、可用工具、權限和驗證步驟整理成清楚的工作流程,讓 AI agent 能理解、能執行,出錯後也能回頭檢查。這裡的 agent,可以先把它想成會使用工具、替人完成工作的 AI。
模型當然會繼續變強,但產品不能只靠等模型升級。
SPAE 對我的啟發,就是 harness engineering 的重要性:把你要模型做的事,包裝成它現在做得到的形式。