AI 的多任務學習:為什麼一個模型能做很多事
多任務學習之所以有效,並不是玄學,而是有堅實的機器學習理論與實驗支撐。大致可以從三個角度來理解:共享表徵、正則化效果、以及任務互補與資料效率。
共享表徵:讓模型學會「舉一反三」
深度學習模型的本質,是一層一層地把原始輸入轉換成越來越抽象的表徵(representation)。以語言模型為例,底層可能學到詞彙與語法,中層學到句法結構,高層學到語意與任務相關的資訊。多任務學習的關鍵想法是:讓多個任務共用底層與中層的表徵,只在上層保留任務專屬的輸出頭。
這樣做的好處是,共享表徵會被迫學到「對多個任務都有用」的通用特徵。例如在自然語言處理中,一個同時學過翻譯、問答、摘要的模型,其共享層會學到更通用的語意空間,而不是只記住某個任務的捷徑。這種通用表徵就像一個「通才」,遇到新任務時只需微調少量參數,就能快速上手。
更具體地說,共享表徵減少了模型對「任務特定捷徑」的依賴。單任務模型有時會學到一些只在該任務資料中成立的偏誤,例如只靠關鍵字判斷情感。多任務學習因為要同時滿足多個任務,這些捷徑往往無法通用,模型只好去學更本質的特徵。這正是「舉一反三」能力的來源。
正則化效果與歸納偏誤
從學習理論的角度看,多任務學習是一種強力的正則化(regularization)。正則化的目的是防止模型過度擬合(overfitting)訓練資料。當模型同時學習多個任務時,它必須找到一組參數,能讓所有任務的損失都維持在可接受範圍。這等於對參數空間加了額外约束,模型比較不容易「死記」單一任務的雜訊。
此外,多任務學習也引入了有幫助的歸納偏誤(inductive bias)。所謂歸納偏誤,是指模型在學習時優先傾向某類假設。當多個任務共享結構時,模型會傾向學到能解釋所有任務的共同結構,而這種結構通常更接近真實世界的規律。例如,同時學習語音辨識與語者辨識,會促使模型分離「說了什麼」與「誰在說」,這兩種資訊在表徵上本來就該糾纏又分離,多任務訊號幫助模型找到更好的拆解方式。
任務互補與資料效率
多任務學習最實際的好處之一,是提升資料效率。對資料量少的任務而言,它可以「借用」資料量大的任務所學到的表徵。例如某些低資源語言的翻譯任務,資料非常稀少,但若與高資源語言任務共享表徵,就能顯著改善表現。這種現象在文獻中被稱為「輔助任務」(auxiliary task)的效果:一個資料充足的任務,可以當作另一個資料稀缺任務的「老師」。
任務之間還可能出現「互補」:A 任務學到的特徵,恰好是 B 任務難以學到的。例如在自動駕駛中,車道線偵測與可行駛區域分割密切相關;在醫療影像中,器官分割與病灶分類可以互相提供線索。當任務彼此互補時,多任務學習的表現往往能超越各自獨立訓練的模型,這被稱為「多任務增益」(multi-task gain)。
不過要強調的是,互補不是自動發生的。任務若彼此衝突(例如一個要求保留細節、一個要求高度抽象),共享表徵反而可能兩邊都學不好。這也帶出了後面會談的「負遷移」問題。
三、多任務學習的主流架構與訓練策略
理解了原理之後,接下來要看工程上怎麼做。多任務學習的架構大致可分為「硬參數共享」與「軟參數共享」兩大類,訓練時還有許多權重平衡與排程技巧。
硬參數共享與軟參數共享
硬參數共享(Hard Parameter Sharing)是最常見的做法:所有任務共用底層的編碼器(encoder),上層再分接多個任務專屬的輸出頭。這種架構參數效率高,過擬合風險低,但缺點是任務之間可能互相干擾,因為共享層必須同時滿足所有任務。實作上,共享層的比例、輸出頭的深度、是否讓部分層保持任務專屬,都是需要調整的設計。
軟參數共享(Soft Parameter Sharing)則是每個任務擁有自己的模型或參數,但透過正則化或交叉注意力機制,讓不同任務的參數彼此靠近、交換資訊。這種架構彈性大,能緩解任務衝突,但參數量大、訓練成本高。近年流行的「專家混合」(Mixture of Experts, MoE)與「跨任務注意力」都可視為軟共享的變體:模型動態決定哪些參數要共享、哪些要專屬。
在大型語言模型中,還有一種介於兩者之間的做法:用同一個主幹模型處理所有任務,透過「提示」(prompt)或「任務指令」來切換行為。這其實是把任務專屬的資訊從參數中移到輸入中,讓共享變得更徹底,也讓模型能泛化到訓練時沒見過的任務。
常見的訓練策略與權重平衡
多任務學習最頭痛的問題之一,是「損失權重怎麼配」。如果某個任務的損失數值特別大,梯度就會主導更新,其他任務等於被忽略。常見的策略包括:
手動調整權重:最直觀,但非常依賴經驗,換一組任務就要重新調。
不確定性加權:讓模型自己學習每個任務的不確定性,並據此調整權重,讓容易學的任務不會壓過困難任務。
梯度正規化與投影:例如 PCGrad、GradNorm 等方法,偵測任務梯度是否衝突,若衝突就把梯度投影到不互相傷害的方向。
動態任務排程:先學簡單任務、再逐漸加入困難任務,或根據表現動態調整取樣比例,避免模型一開始就被太難的任務拖垮。
另一個實務重點是「資料取樣」。不同任務的資料量可能相差百倍,若直接混合訓練,大任務會淹沒小任務。因此常需要對小任務進行過度取樣(oversampling),或採用「溫度取樣」讓各任務的出現頻率更均衡。
從多任務到多模態:界線正在模糊
傳統多任務學習處理的是「同一種輸入、多種輸出」,例如同一段文字做分類、問答、摘要。但近年的大型模型更進一步,處理「多種輸入、多種輸出」,也就是多模態(multimodal)學習。文字、圖像、音訊、影片被映射到同一個表徵空間,模型可以看圖回答問題、根據文字生成圖片、或把語音轉成摘要。
從技術角度看,多模態學習可以視為多任務學習的延伸:不同模態的任務共享同一個語意空間,並且透過對齊(alignment)與融合(fusion)機制互相增強。這也是為什麼一個大型模型能同時「看懂」圖片、「聽懂」語音、「寫出」文章——它並不是把多個獨立模型硬綁在一起,而是讓不同能力在同一個表徵空間中共同成長。
四、真實世界的應用:一個模型如何同時做很多事
多任務學習早已不是實驗室裡的概念,而是許多產品的核心。以下從語言、視覺、推薦與通用助理幾個面向來看。
自然語言處理:從單一任務到通用語言理解
在自然語言處理(NLP)領域,多任務學習的演進非常清楚。早期模型如 BERT 透過大規模預訓練學到通用語言表徵,再針對下游任務微調;這已經是一種「預訓練 + 微調」的共享模式。後來的 T5 更進一步,把翻譯、摘要、分類、問答全部轉成「文字到文字」的格式,用同一個模型、同一組參數處理,等於把多任務學習推到極致。
大型語言模型(LLM)則是這條路線的集大成者。它們在預訓練階段接觸大量文字,學到語言結構與世界知識;在指令微調(instruction tuning)階段,則同時學習數十到數百種任務,例如問答、改寫、推理、寫程式。因為任務以自然語言指令表示,模型能靈活切換行為,甚至泛化到訓練時沒見過的任務。這正是「一個模型做很多事」最直觀的體現。
電腦視覺與自動駕駛:幾何與語意的互相加持
在電腦視覺中,多任務學習常用於自動駕駛與機器人。一輛自駕車需要同時進行物件偵測、語意分割、深度估計、車道線偵測、可行駛區域判斷等多項感知任務。這些任務共享同一組影像特徵,且彼此高度相關:了解深度有助於分割,分割結果又有助於判斷可行駛區域。
實務上,車廠與自駕公司常採用「多任務感知網路」,讓一個主幹模型同時輸出多種感知結果,再交由後續規劃模組使用。這樣做不僅減少運算重複,也讓各任務的預測更一致——例如偵測到的車輛位置與分割出的車輛區域不會互相矛盾。這種「一致性」是單任務模型難以保證的。
推薦系統與搜尋:一次預測多種行為
在推薦系統中,使用者行為非常多樣:點擊、停留、收藏、購買、分享。單一模型若只預測點擊率,容易忽略長期價值。多任務學習讓模型同時預測多種行為,共享使用者與物品的表徵。例如電商平台可以同時預測「是否點擊」與「是否購買」,並透過共享層學到更全面的使用者偏好。
搜尋引擎也是類似道理:一個查詢可能同時需要判斷意圖、預測點擊、評估相關性、偵測垃圾內容。多任務學習讓這些訊號共享同一個語意表徵,提升整體排序品質。這種做法在業界已相當普遍,因為它能用一套模型服務多個業務目標,降低維護成本。
五、挑戰與限制:多任務學習不是萬靈丹
多任務學習聽起來很美好,但實際落地時會遇到不少困難。了解這些限制,才能正確評估它是否適合你的場景。
負遷移與任務衝突
最著名的問題是「負遷移」(negative transfer):當任務之間關聯薄弱或彼此衝突時,共享表徵反而讓表現變差。例如同時學習「情感分類」與「機器翻譯」,兩者都需要語言理解,但最佳表徵可能不同,硬共享可能兩邊都受損。
任務衝突還表現在梯度方向上:不同任務可能要求參數往相反方向更新,導致訓練震盪、收斂困難。這也是為什麼許多研究致力於梯度手術(gradient surgery)、任務分群、以及動態共享機制,試圖在共享與專屬之間取得平衡。
資料不平衡與評估困難
多任務學習的另一個難題是資料不平衡。某些任務資料多、某些任務資料少,模型容易偏向資料多的任務。即使做了取樣調整,各任務的學習難度也不同,有些任務很快收斂,有些任務卻始終學不好。如何讓每個任務都獲得足夠的學習訊號,是實務上的關鍵挑戰。
評估也不容易。多任務模型通常需要在多個指標上同時表現良好,但這些指標之間可能互相 trade-off。究竟要追求平均表現、還是確保每個任務都達到門檻?這牽涉到產品目標與業務優先順序,沒有標準答案。此外,多任務模型的除錯也比單任務模型複雜:當某個任務表現下降時,很難判斷是共享層的問題、權重設定的問題,還是任務衝突所致。
規模化與部署的現實考量
大型多任務模型雖然強大,但推論成本高、延遲大,不是所有場景都能承受。邊緣裝置(手機、攝影機、車機)的算力有限,往往需要模型壓縮、知識蒸餾或任務特定的小模型。此外,多任務模型的更新也比較複雜:若只更新其中一個任務的資料,是否會影響其他任務?如何做到「局部更新、全局穩定」,是維運上的實際問題。
六、未來展望:從多任務學習走向通用人工智慧
多任務學習的終極願景,是打造能處理廣泛任務的通用模型。近年的大型語言模型與多模態模型,已經展現出這種潛力:同一個模型可以寫詩、解數學題、看圖回答、寫程式、甚至操作工具。這背後正是多任務學習、大規模預訓練與指令微調的結合。
未來幾個值得關注的方向包括:更智慧的參數共享機制,讓模型自動決定哪些能力該共享、哪些該專屬;任務之間的持續學習,讓模型在學新任務時不忘舊任務,避免災難性遺忘;多模態與多任務的統一架構,讓文字、影像、音訊、動作在同一個框架中學習;以及以人為中心的評估方法,不只追求 Benchmark 分數,更重視模型在真實場景中的可靠性與安全性。
當然,通用並不代表萬能。多任務模型再強,仍有幻覺、偏誤、推理不穩定等問題。多任務學習是讓模型「多才多藝」的手段,但要讓它「可靠可信」,還需要資料治理、對齊技術與人類監督的配合。
七、結語:一個模型做很多事,背後是「共享」的智慧
回到最初的問題:為什麼一個模型能做很多事?答案不是魔法,而是多任務學習所體現的「共享」智慧。透過共享表徵,模型能把一個任務學到的知識遷移到另一個任務;透過共享訓練訊號,模型能學到更通用、更穩健的特徵;透過共享架構,系統能降低部署與維護成本。這些好處讓多任務學習成為現代 AI 的核心典範。
但多任務學習也提醒我們,共享不是無條件的。任務要相關、權重要平衡、架構要設計、評估要全面,否則共享反而變成互相拖累。真正成功的多任務系統,往往是在「共享」與「專屬」之間找到巧妙平衡的結果。
對開發者而言,多任務學習是一個值得深入掌握的技術方向;對一般讀者而言,理解多任務學習,也就理解了為什麼今天的 AI 能從「只會一件事」走向「什麼都能聊上幾句」。下一次當你看到同一個 AI 模型幫你翻譯、寫信、看圖、寫程式時,不妨想想背後那套共享學習的機制——那正是讓機器邁向通用智慧的重要一步。