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