Flamingo 模型
Flamingo 由 DeepMind 於 2022 年提出,是一種為少樣本學習(few-shot learning)打造的視覺語言模型:你在提示中給它少數幾個「影像加文字」的範例,它就能即時學會該任務,就像大型語言模型做情境內學習(in-context learning)那樣,只是現在影像穿插在字詞之間。它的核心構想是把視覺能力嫁接到一個已訓練好的大型語言模型上,使 LLM 的推理與少樣本能力轉移到多模態輸入,而無需重新訓練整體。
在架構上,Flamingo 讓 LLM 保持凍結(最初是 Chinchilla),也讓視覺編碼器保持凍結,然後在兩者之間插入新的可訓練元件。一個 Perceiver Resampler 把數量可變的影像特徵轉成一小組固定數量的視覺 token(馴服長視覺序列的成本)。接著把帶門控的跨注意力層(gated cross-attention layers)穿插進凍結的 LLM 之中:在這些層裡,文字 token 去關注視覺 token。關鍵是門控初始為零(一個 tanh 門控被初始化成讓新層一開始毫無貢獻),於是加入視覺不會擾亂預訓練好的語言模型,模型在訓練中能平順地學會使用影像訊號。
Flamingo 天生就能處理影像與文字交錯的序列——一個提示中可有多張影像,每張後面接著文字——這正是促成多模態少樣本提示的條件(先給兩個附描述的範例,再給一張新影像,它就為其產生描述)。它在描述、VQA 與視覺對話上展現了強大的少樣本結果,無需特定任務微調;其「凍結 LLM 加門控跨注意力」的設計成為後續交錯式多模態模型的範本(例如開源的 OpenFlamingo 與 IDEFICS 重現版)。
零初始化的門控是個低調卻關鍵的技巧:少了它,隨機初始化的跨注意力會把雜訊注入一個脆弱的預訓練 LLM,在模型學到任何有用之物前就先損害其語言能力。讓門控從零開始,能使模型逐步「開啟」視覺——這個模式也被 LLaMA-Adapter 與其他凍結骨幹的適配器所沿用。