學習全景:從任務分類到架構演進與工程落地)
一提到多模態(tài)我腦海里浮現(xiàn)的是兩年前接的一個需求對方給了一堆醫(yī)療影像和對應的檢查報告想做一個能“看圖說話”的輔助系統(tǒng)。當時主流做法還是把圖像特征和文本特征各自抽出來拼到一起再接個分類器。效果嘛能跑但一到復雜場景就露餡。這半年再看同樣的需求已經(jīng)是Visual Language Model的天下輸入一張圖輸出一段自然語言診斷意見完事兒。變化就是這么快。所以當我想寫一套關于多模態(tài)理解與生成的綜述時第一直覺就是先把地圖畫出來。這篇是系列第一篇聚焦前言、分類和架構把整個領域的骨架搭清楚后面再逐一深入某個具體技術路線。這篇綜述不是教科書式羅列論文而是站在工程落地和技術演進的交叉視角回答幾個核心問題多模態(tài)為什么突然火起來任務到底怎么分類才不過時主流架構的本質(zhì)區(qū)別在哪里哪些模塊是真正值得投入精力的適合剛入門的研究生、想轉多模態(tài)方向的工程師以及已經(jīng)在單模態(tài)領域深耕、想擴展視野的從業(yè)者。1. 為什么說多模態(tài)是必然方向單模態(tài)的天花板很明顯先聊幾句題外話。做自然語言處理的人常說“語言是思維的載體”但真實世界的信息遠遠不止語言。你看到一個蘋果知道它是紅的、圓的、有光澤這個信息在文本里可能只有“紅蘋果”三個字但在圖像里是無數(shù)像素的分布。反過來文本能表達的因果、邏輯、抽象概念圖像往往無能為力。人類理解世界天然就是多模態(tài)的——看、聽、說、觸覺、本體感覺這些信號交織在一起才構成完整的認知。單模態(tài)模型的本質(zhì)局限在于信息瓶頸。一個純文本模型即使參數(shù)量再大它也只能從離散符號的統(tǒng)計相關性中“推斷”出關于視覺世界的知識這些知識是二手甚至三手的。比如模型知道“斑馬是黑白條紋的”但它從未見過像素級的斑馬圖像所以當你問它“斑馬條紋和棋盤格的區(qū)別”時它只能從語料中的文字描述去猜測。這種猜測在很多時候是錯的或者至少是不夠精細的。另一個維度是模態(tài)之間的互補性。圖像提供了空間結構和外觀細節(jié)文本提供了語義抽象和推理線索音頻提供了時序和情感信息。多模態(tài)模型的目標不是簡單地堆疊多個編碼器而是讓信息在模態(tài)間流動、對齊、互相增益。一個經(jīng)典例子在視頻理解任務中畫面里有一個人在笑音頻里有掌聲字幕里寫著“感謝大家”三個模態(tài)單獨看都有歧義合在一起就能確定——這是一場表演結束時的致謝場景。模態(tài)越多語義的確定性越強這是多模態(tài)最根本的吸引力。不過這里要潑一盆冷水多模態(tài)的“多”不只是數(shù)量問題更是對齊問題。圖像特征空間和文本特征空間本質(zhì)上是兩個異質(zhì)空間如何讓它們可比較、可映射、可組合是整個領域的核心難題。這也是為什么多模態(tài)研究這么多年真正的爆發(fā)點是在大規(guī)模預訓練出現(xiàn)之后——有了海量數(shù)據(jù)和強大的算力模型才能自己學到跨模態(tài)的對齊規(guī)律而不是靠人工設計復雜的對齊規(guī)則。2. 多模態(tài)任務的光譜從理解到生成從檢索到對話談到多模態(tài)任務很多人的第一反應是圖文匹配、看圖問答這幾種經(jīng)典場景。實際上過去五年的發(fā)展已經(jīng)把任務版圖擴展得非常寬而且邊界在快速移動。我用一個比較粗的粒度把任務分成四類。第一類是跨模態(tài)理解與檢索。圖文檢索是其中最經(jīng)典的任務給定文本描述找出對應的圖像或者反過來給定圖像找出匹配的文本。這個任務的本質(zhì)是學習一個共享嵌入空間讓語義相似的圖文對在向量空間中靠近。CLIP是這方面的里程碑它用對比學習把圖像和文本的表示拉近使得zero-shot分類、跨模態(tài)檢索都變得非常自然。這類任務的特點是判別式為主輸出通常是相似度分數(shù)或標簽模型相對輕量適合做搜索引擎、素材管理、內(nèi)容審核等場景。第二類是視覺問答與視覺推理。這類任務的輸出是自然語言但輸入是圖像和問題。早期的VQA模型更多是“分類式”的——從預定義的答案集合里挑一個。后來隨著生成式模型興起開放域VQA成為主流模型可以自由生成答案甚至結合外部知識庫進行復雜的推理。這類任務不僅需要模型“看見”還需要模型“思考”。比如給一張廚房的圖片問“如果我要做西紅柿炒蛋需要哪些食材”模型需要先識別出西紅柿和雞蛋再結合常識推斷出還需要油、鹽等調(diào)料。這里涉及的技術點從視覺感知延伸到常識推理是測試多模態(tài)模型智商的好題目。視覺推理的進階是圖表理解、文檔理解、圖表問答這類結構化感知任務它們要求模型在圖像上做更精細的定位。第三類是內(nèi)容生成包括文生圖、文生視頻、圖像編輯、語音合成等。這類任務的輸入是文本或其他條件信號輸出是視覺或音頻內(nèi)容。技術上擴散模型目前是視覺生成的主流從DDPM到Stable Diffusion系列再到視頻生成模型生成質(zhì)量和可控性一直在提升。這類任務的關鍵指標已經(jīng)從“像不像”進化到“是否符合語義”“是否可控”“是否具有組合性”。生成任務的難點在于文本描述往往是稀疏的、模糊的而圖像空間是高維且連續(xù)的模型需要把低維的語義約束映射到高維的視覺流形上。第四類是統(tǒng)一多模態(tài)對話與智能體。這是目前最熱的方向也是大語言模型能力向多模態(tài)延伸的產(chǎn)物。輸入可以自由組合圖像、文本、音頻輸出既可以是文本回答也可以是生成的圖像甚至可以調(diào)用工具執(zhí)行操作。多模態(tài)對話模型比如各類VLM已經(jīng)展示了令人驚艷的能力給一張手繪草圖它可以理解你的設計意圖并生成HTML代碼給它一張表格截圖它可以做數(shù)據(jù)分析并生成結論。這類任務要求模型同時具備理解、推理、生成、交互四種能力綜合性最強也更接近通用人工智能的雛形。用表格概括一下這四類的特征對比。任務類別輸入輸出核心能力典型技術跨模態(tài)理解與檢索圖文/音文相似度/標簽模態(tài)對齊對比學習、雙塔視覺問答與推理圖文問自然語言感知推理編碼器-解碼器內(nèi)容生成文本/條件圖像/視頻/音頻條件生成擴散模型、GAN統(tǒng)一對話與智能體多模態(tài)混合多模態(tài)混合綜合能力多模態(tài)大模型需要說明的是這四類的邊界不是固化的。視覺問答模型也可以做檢索生成模型也可以內(nèi)嵌判別頭哪里有數(shù)據(jù)哪里就能擴展能力。3. 核心技術方向的五大分支任務分類是“要解決什么問題”技術分類是“用什么方式解決”兩者不能混為一談。我傾向于把現(xiàn)在的多模態(tài)技術路線大致分成五個分支每一個分支都有清晰的學術脈絡和應用方向。首先是模態(tài)表示學習。這個方向的核心目標是“如何把不同模態(tài)的數(shù)據(jù)編碼成適合計算和比較的向量表示”。早期的做法是用各自的骨干網(wǎng)絡提取特征然后用拼接或加權融合得到聯(lián)合表示現(xiàn)在的主流是用對比學習統(tǒng)一模態(tài)的表示空間。對比學習的思想很直觀給定一批圖文對把匹配的圖文對在表示空間里拉近把不匹配的推遠。這個思路雖然簡單但非常有效CLIP的成功已經(jīng)證明了它的擴展性。模態(tài)表示學習的下一步是細粒度對齊比如用對象級別的對齊替代全局級別的對齊讓模型知道圖像里的某個區(qū)域對應文本里的某個詞。第二個方向是跨模態(tài)對齊與融合。對比學習解決的是“表示可比”的問題但很多任務還需要更精細的“信息融合”。融合的策略可以分為早期融合、中期融合和晚期融合。早期融合是輸入層面就拼接比如把圖像像素和文本嵌入直接拼在一起送進Transformer晚期融合是各模態(tài)先獨立處理最后再合并決策。中間態(tài)是最多的有的在Transformer的某個中間層加入跨模態(tài)注意力有的在編碼器之后加一個專門的融合模塊。經(jīng)驗上簡單拼接適合輕量任務復雜的跨模態(tài)注意力適合需要深度語義交互的任務但代價是計算量陡增。另一個重要趨勢是“對齊-融合”解耦先用對比學習對齊模態(tài)表示再用生成式目標做深度融合。這種兩步走的策略在工程上更穩(wěn)定也方便模塊復用。第三個方向是條件生成。這是內(nèi)容生成任務的技術基石。給定條件輸入生成符合預期的視覺內(nèi)容。擴散模型是這個方向的絕對主流。用一個粗糙的類比解釋擴散模型它先把清晰圖像“污染”成純噪聲然后學習一個去噪過程讓噪聲一步步還原成圖像。條件生成就是在去噪過程中注入文本信息讓模型知道“往哪個方向還原”。除了擴散模型自回歸視覺生成也在快速發(fā)展類似語言模型的“下一個token預測”只不過token是圖像的離散編碼。這些技術路線各有優(yōu)劣擴散模型生成質(zhì)量高、細節(jié)豐富但推理速度慢自回歸模型速度可控但對長距離依賴的建模能力還需要觀察。第四個方向是多模態(tài)大語言模型。嚴格說這不是一個獨立的技術而是一種架構范式以預訓練的大語言模型為核心外接視覺/音頻編碼器通過一個連接模塊把視覺特征映射到語言模型的輸入空間。這種范式的效果很驚人語言模型負責推理和生成視覺編碼器負責感知連接模塊負責“翻譯”。整個系統(tǒng)的智能上限取決于連接模塊是否能把視覺信息無損地傳給語言模型。目前的做法有MLP映射、Q-Former、交叉注意力等各有優(yōu)缺點后面架構部分會細講。第五個方向是統(tǒng)一模型與一體化架構。研究者不滿足于“LLM外接視覺模塊”這種相對松耦合的設計而是試圖設計一個真正統(tǒng)一的Transformer讓所有模態(tài)都被當成token序列一起訓練。這種思路在學術上很有吸引力——如果視覺和文本在底層共享同一個處理流程模型就能天然地學習跨模態(tài)的交互規(guī)律而不是依賴人工設計對齊模塊。目前的挑戰(zhàn)在于訓練穩(wěn)定性和模態(tài)間的競爭問題視覺token和文本token在同一個模型里容易產(chǎn)生干擾。很多人相信一體化的方向是正確的只是需要更好的訓練策略和架構設計。4. 架構演進路線的三次范式轉移對從業(yè)者來說理解架構演進比背論文更重要因為架構決定了你能在工程上復用的組件也決定了你踩坑的方向。我自己把多模態(tài)模型的架構演變分成三個階段每個階段對應一個主要范式。第一代架構是“拼接融合式”典型代表是在BERT或ViT之后接一個融合模塊。輸入圖像和文本各自經(jīng)過編碼器得到的特征向量在融合層交互然后輸出預測結果。這種架構的特點是簡單直接做分類、檢索這類任務效果不錯但生成能力有限。它的天花板在于融合模塊的容量限制了跨模態(tài)信息的深度交互而且兩個編碼器是分離的無法端到端聯(lián)合優(yōu)化。第二代架構是“雙塔對齊式”CLIP是代表。圖像塔和文本塔各自獨立編碼用對比學習把兩個塔的輸出拉齊。雙塔架構的優(yōu)點非常突出兩個塔可以分別預訓練推理時可以把圖像特征預計算并緩存檢索效率極高非常適合工業(yè)界的大規(guī)模召回場景。缺點也明顯因為兩個塔只在最后做一次交互細粒度的語義關聯(lián)建模不足無法處理復雜的推理任務。很多搜索引擎和電商平臺大規(guī)模應用CLIP但遇到復雜語義匹配時還是會力不從心。第三代架構是“統(tǒng)一多模態(tài)生成式”以最近兩年的多模態(tài)大模型為代表。輸入圖像和文本被統(tǒng)一編碼成模型能處理的token序列模型以自回歸方式生成輸出。這套架構的核心變化在于把多模態(tài)問題轉化為序列生成問題所有任務——包括理解、檢索、生成、對話——都可以統(tǒng)一為next token prediction框架。這種統(tǒng)一切換讓模型的擴展方式變得很簡單只要數(shù)據(jù)夠多、算力夠大任務的邊界就可以不斷延展。從工程角度看第三代架構最大的優(yōu)勢是組件可復用且更新路徑清晰。不過現(xiàn)實中的模型往往不是純粹的某一種架構而是混合體。典型的VLM是雙塔的視覺編碼器加上統(tǒng)一生成式的大語言模型對齊部分用對比學習預訓練生成部分用語言建模目標微調(diào)。這種“混合范式”的實用性最強也是目前開箱即用方案的首選。理解每種范式的底層邏輯才能在混合架構里做明智的取舍。5. 架構解剖四個關鍵模塊的職責與主流實現(xiàn)從工程拆解的角度看一個現(xiàn)代多模態(tài)模型通常由四個模塊組成視覺編碼器、連接器投影層、推理引擎大語言模型和生成器。每個模塊解決一個具體問題模塊間的接口設計是系統(tǒng)架構的靈魂。視覺編碼器負責把圖像像素轉換為視覺特征。早期用CNN比如ResNet現(xiàn)在幾乎全被Vision Transformer取代了。ViT把圖像切成固定大小的patch比如16x16像素每個patch線性映射成一個token然后像文本一樣送入Transformer。ViT的優(yōu)勢在于它和語言模型一樣使用Transformer結構天然容易對接而且patch token保留了空間信息方便細粒度對齊。當前的主流選擇包括OpenCLIP的ViT-L/14、ViT-G/14以及SigLIP系列。工程上選視覺編碼器時除了看參數(shù)量和精度還要看特征分辨率。CLIP的ViT處理224x224輸入但VLM通常需要更高分辨率輸入來識別小物體于是出現(xiàn)了動態(tài)分辨率、滑窗等技巧。這塊的水很深直接決定模型“看得細不細”。連接器是視覺和語言之間的一座橋也是很多人忽略但實際極其關鍵的一環(huán)。它的目標很簡單把視覺特征變換成語言模型能理解的嵌入向量。最樸素的做法是Linear Projection也就是直接用一層線性層把視覺特征映射到LLM的嵌入維度。這種做法簡單有效但在信息壓縮上有損失因為視覺特征往往帶有空間結構比如196個patch token直接壓平會丟失相對位置關系。更講究的做法是用Q-Former這是BLIP-2引入的機制一組可學習的Query通過交叉注意力從視覺特征中提取信息再把Query的輸出作為語言模型的輸入。Q-Former相當于一個可學習的“摘要器”能把任意長度的視覺特征壓縮成固定長度的、富含語義的嵌入。還有一種做法是把視覺特征通過交叉注意力直接注入語言模型的每一層繞過顯式連接器。這種做法交互最充分但對顯存和算力的要求極高工程上很少直接用倒是很多研究項目在用。推理引擎就是大語言模型本體。這里有個很微妙的點同一個LLM預訓練時只見過文本外接視覺模塊后突然能“看懂”圖了。這是因為LLM的參數(shù)里已經(jīng)隱含著大量的世界知識視覺特征只是給這些知識提供了一個“觸發(fā)信號”。所以推理引擎選型時重點不是它的視覺能力而是它的語言能力、上下文長度、指令跟隨能力、推理深度。7B級別的模型適合Demo和研究70B級別或MoE結構適合嚴肅應用。另一個容易踩坑的細節(jié)是位置編碼和RoPE等參數(shù)對多模態(tài)輸入長度的影響圖像token動輒幾百上千個超出訓練時的長度分布后性能可能陡降。生成器這個模塊在純理解模型里不存在但在內(nèi)容生成任務中很關鍵。對于文生圖模型生成器就是擴散模型的UNet或DiT對于統(tǒng)一對話模型生成器就是解碼器和采樣策略。很多多模態(tài)模型的生成部分并不是和LLM一體的而是獨立訓練后外掛。比如一個VLG模型視覺語言生成可能用LLM生成“圖像描述”然后再把這個描述喂給文生圖模型。這種級聯(lián)方式在工程上非常常見雖然信息有損但勝在每個模塊都是成熟的現(xiàn)成組件迭代速度快。6. 支撐這一切的地基數(shù)據(jù)、評測與訓練策略很多綜述會把數(shù)據(jù)和評測放到最后草草帶過但我想單獨拿出來講因為在實踐中數(shù)據(jù)質(zhì)量對模型效果的影響常常大于模型架構本身??缒B(tài)數(shù)據(jù)主要有三種類型。第一種是圖文對數(shù)據(jù)數(shù)量大、覆蓋廣比如爬取自網(wǎng)頁的圖片和alt文本。這類數(shù)據(jù)的質(zhì)量參差不齊文本描述往往存在噪聲、不完全匹配等問題但對于對比學習預訓練來說很夠用。清洗這類數(shù)據(jù)的常規(guī)套路包括去掉過短的文本、去掉非自然語言的內(nèi)容、去除重復圖、質(zhì)量過濾、人臉和私有信息脫敏等。第二種是細粒度標注數(shù)據(jù)包括檢測框、分割掩碼、區(qū)域描述、指代關系等。這類數(shù)據(jù)是感知能力的關鍵因為純圖文對只能教會模型“圖說了什么”不能教會模型“東西具體在哪里”。很多VLM在細粒度感知上翻車歸根結底是訓練數(shù)據(jù)里缺乏邊界框和區(qū)域標簽。第三種是以文本為中心推導出的跨模態(tài)標注比如用現(xiàn)成的Captioning模型生成更詳細的圖像描述、用LLM改寫與擴寫prompt等。這類“合成數(shù)據(jù)”是近年的大趨勢手工標注的跨模態(tài)數(shù)據(jù)太貴、太慢了而模型自生成數(shù)據(jù)可以批量擴展覆蓋面。這個方向的挑戰(zhàn)是噪聲放大——模型生成的標注錯誤會被帶進訓練集如何過濾和平衡是數(shù)據(jù)工程的核心功課。評測是多模態(tài)領域比較頭疼的部分。經(jīng)典的VQA benchmark、圖文檢索benchmark已經(jīng)難以反映大模型的能力越來越多的評測轉向“全能型”——既要測感知細粒度又要測推理深度還要測指令跟隨和誠實性。需要注意的是評測集的污染問題很嚴重如果評測集被包含在訓練數(shù)據(jù)里分數(shù)虛高的可能性就很大。因此實踐派的做法是自建一套私有評測集或者至少確保評測數(shù)據(jù)不在訓練語料里。訓練策略方面主流的VLM訓練通常是兩階段。第一階段用大規(guī)模圖文對數(shù)據(jù)做對比學習預訓練目標是讓視覺特征和文本特征對齊第二階段用指令數(shù)據(jù)做監(jiān)督微調(diào)目標是讓模型學會以自然語言的方式回應各種視覺任務。預訓練階段的數(shù)據(jù)量和算力需求都很高微調(diào)階段更講究數(shù)據(jù)配比和任務多樣性。實操中常見的問題有三類一是視覺編碼器和語言模型的學習率需要分別設置不能一刀切因為視覺塔通常已經(jīng)充分預訓練學習率要低一些二是圖像分辨率與訓練批次大小的平衡高分辨率輸入的顯存占用會暴漲三是災難性遺忘微調(diào)階段模型可能在視覺理解上進步了卻在純文本能力上倒退了解決方案是混入部分純文本數(shù)據(jù)一起微調(diào)。7. 總結下來第一站的核心不是“新”而是“不過時”寫下這篇綜述的時候我反復提醒自己一件事不要為了追求新潮而過度聚焦某個爆款模型。多模態(tài)領域的發(fā)展速度極快半年前的技術可能就已經(jīng)被超越但底層的問題——模態(tài)之間如何對齊、信息如何融合、任務如何統(tǒng)一——不會變。理解這些底層問題再去看模型更迭就像拿到了一張地圖不管路怎么修都能走對方向。我自己在實踐中的一個真實體會是動手做VLM之前先想清楚你面對的任務是檢索型還是生成型這決定了你要用雙塔架構還是生成式架構。這兩個方向的工程路徑差異極大前者需要關注向量索引和召回率后者需要關注解碼質(zhì)量和評測復雜度。如果你只是在探索階段我建議先從開源VLM的二次開發(fā)入手把視覺編碼器、連接器、語言模型三者的分工和組合方式摸清楚再考慮是否自研架構。把地基打牢后續(xù)的創(chuàng)新才有意義。下一篇我會深入講在各種任務上表現(xiàn)最好的那幾條技術路線以及它們背后演進的因果鏈條把“為什么這個方案贏了”講透。也會給出一些實戰(zhàn)中的參數(shù)與取舍參考方便你在自己的場景里判斷怎么選。這篇先到這里算是把地圖鋪開了。