Transfer Learning 是什麼?遷移學習原理與應用白話解析

一句話說明

遷移學習(Transfer Learning)是一種讓 AI 把在大量資料上學到的知識,轉移應用到資料較少的新任務上的技術,也是現代 AI(包含 ChatGPT、Claude)能夠運作的核心原理之一。

核心概念:先學通識再學專業

想像你要培養一個醫學影像判讀專家。你有兩種做法:

方法一:找一個完全沒有視覺經驗的人,從零開始教他辨認 X 光片。你需要幾萬張標註過的 X 光片,訓練幾個月,而且這個人學完 X 光判讀後,如果你要他改學 MRI 判讀,又要從頭來過。

方法二:找一個已經很會辨認日常物品的人(懂得什麼是邊緣、什麼是紋理、什麼是形狀、什麼是深淺),再花幾百張 X 光片教他「這個紋理代表肺炎」、「這個形狀是腫瘤」。因為他已經有視覺辨認的基礎,學得又快又準。而且如果之後要他學 MRI 判讀,他只需要再學「MRI 影像的特徵長什麼樣」,不用重新學習什麼是邊緣和形狀。

遷移學習就是方法二。先在大量通用資料上學會基礎能力,再用少量專業資料學會特定任務。

這個概念改變了整個 AI 領域的運作方式。在遷移學習普及之前,每個新任務都要從頭訓練模型——做情感分析要從頭訓練、做文件分類要從頭訓練、做命名實體辨識還是要從頭訓練。每個任務都需要大量的標註資料和運算資源。遷移學習讓一個預訓練好的模型可以快速適應各種新任務,大幅降低了 AI 的使用門檻。

技術上怎麼運作

遷移學習分成兩個階段:

預訓練(Pre-training)

在大規模的通用資料集上訓練模型,讓它學會通用的特徵表示。

圖片辨識領域:在 ImageNet(1400 萬張圖片、1000 個類別)上訓練。模型學會辨認邊緣、紋理、形狀、物件部件等通用的視覺特徵。

語言模型領域:在幾兆個文字 token 上訓練。模型學會語法規則、常識知識、推理能力、世界知識。這就是 GPT、Claude、Gemini 的預訓練過程——它們在網路上的大量文本上學習,學會了「語言是怎麼運作的」。

預訓練的成本很高。GPT-4 的預訓練據估計花了超過 1 億美元。但這個成本只需要付一次,訓練出來的模型可以被微調成千上萬次,用在各種不同的任務上。

微調(Fine-tuning)

把預訓練好的模型拿來,用特定任務的小量資料進一步訓練。模型會保留已經學到的通用知識,同時學會新任務的特定知識。

微調的成本比預訓練低很多。用 LoRA 技術微調一個 7B 的 LLM,只需要一張消費級 GPU、幾百到幾千筆資料、和幾個小時的時間。而預訓練同規模的模型可能需要幾百張 GPU 跑幾週。

為什麼遷移學習有效

神經網路的不同層學到的東西不一樣,而且有一個很有趣的規律。

圖片辨識的例子

以圖片辨識為例,ResNet 或 VGG 這類模型的層級結構如下:

淺層(靠近輸入的前幾層)學到的是邊緣、線條、色塊等基礎視覺特徵。這些特徵是「通用的」——無論你要辨認貓、車、X 光片還是衛星照片,邊緣和線條都是基本的視覺元素。

中間層學到的是紋理、圖案、物件部件等中等複雜度的特徵。例如毛皮的紋理、車輪的圓形結構、建築的幾何形狀。這些特徵的通用性比淺層低一些,但在很多任務中仍然適用。

深層(靠近輸出的最後幾層)學到的是最抽象的、和特定任務直接相關的特徵。例如「這是貓耳朵」、「這是車頭燈」。這些特徵在不同任務之間的可遷移性最低。

微調時,通常的做法是:保留淺層的參數不動(或只做很小的調整),重新訓練深層的參數。因為基礎的視覺特徵已經學得很好了,只需要教模型「用這些基礎特徵來做新的判斷」。

語言模型的例子

語言模型也是同樣的道理,只是層級的含義不同。

淺層學到的是字詞的基本語義和語法關係。例如「吃」後面通常接「名詞」、「不」是一個否定詞。

中間層學到的是句子結構和語義理解。例如「小明打了小華」和「小華被小明打了」表達的是同一件事。

深層學到的是更抽象的推理和任務特定的能力。例如判斷一段文字的情感是正面還是負面、回答特定領域的問題。

ChatGPT 和 Claude 的訓練流程就是遷移學習:先在大量網路文本上預訓練(學會語言能力和世界知識),再透過 RLHF(Reinforcement Learning from Human Feedback)或類似技術微調(學會「怎麼像一個有禮貌且有幫助的助手一樣回答問題」)。

實際應用場景

醫療影像

在 ImageNet 上預訓練的模型,微調後可以用來辨識皮膚癌、肺炎 X 光、視網膜病變、骨折等。醫療標註資料昂貴且稀少(每張 X 光片的標註需要放射科醫師,成本高且耗時),遷移學習讓幾百張標註圖片就能訓練出有用的模型。

一個經典的研究是 Stanford 的 CheXNet,它用 ImageNet 預訓練的 DenseNet 微調,在 112,000 張胸腔 X 光片上微調後,在肺炎偵測上的表現超過了放射科醫師。如果從頭訓練,同樣的效能可能需要百萬張以上的標註資料。

自然語言處理

BERT 和 GPT 系列都是遷移學習的直接產物。Google 在幾十億筆文本上預訓練 BERT,然後使用者可以用自己的幾千筆資料微調,做情感分析、文件分類、問答系統、命名實體辨識等各種 NLP 任務。

BERT 的論文(2018 年)是 NLP 領域的一個分水嶺。在 BERT 之前,每個 NLP 任務都需要特製的模型架構和大量的標註資料。BERT 之後,大多數 NLP 任務都變成「下載預訓練的 BERT,微調一下就好」。引用次數超過 100,000 次,是 AI 領域被引用最多的論文之一。

企業客服機器人

拿一個通用的語言模型,用企業內部的客服紀錄和產品文件微調,讓它能回答該企業特定的問題。

2026 年的做法通常不是真的微調模型參數,而是用 RAG(Retrieval-Augmented Generation)——把企業的文件建成向量資料庫,查詢時先檢索相關文件,再讓 LLM 根據檢索到的文件回答。但底層的道理是一樣的:LLM 的通用語言能力(預訓練學到的)加上企業特定的知識(RAG 提供的),組合出特定場景的解決方案。

語音辨識

在大量英文語音上預訓練的 Whisper 模型,可以用少量的台語語音資料微調,讓它辨識台語。底層的聲學特徵(什麼是母音、什麼是子音、什麼是語調變化、什麼是停頓)跨語言通用。Whisper 不需要重新學習「聲音是什麼」,只需要學習「台語的聲調和發音規則」。

程式碼生成

Code Llama 是 Meta 的 Llama 2 在程式碼資料上做遷移學習的產物。Llama 2 已經學會了語言的通用知識(語法、邏輯、推理),Code Llama 在這個基礎上學習了程式碼的語法、設計模式、和常見的 API 使用方式。

同樣的做法也被用在 StarCoder、DeepSeek-Coder 等程式碼模型上。

遷移學習的方式

全模型微調(Full Fine-tuning)

更新模型所有的參數。效果通常最好,因為模型可以完全適應新任務。但需要的運算資源最多(要在 GPU 上存放完整模型的參數和梯度),也容易在小資料集上過擬合(模型記住了訓練資料而不是學會了任務的規律)。

適合的場景:有大量的標註資料(幾萬筆以上)、需要模型深度適應新任務(例如從英文模型變成中文模型)。

凍結部分層(Freeze Layers)

只更新模型的最後幾層,其他層的參數保持不變(凍結)。運算資源需求較低,適合資料量很少的情況(幾百到幾千筆)。

凍結多少層是一個需要實驗的超參數。通常的做法是:資料量越少,凍結越多層(只讓最後 1-2 層可訓練)。資料量越多、新任務和原始任務越不同,可以解凍更多層。

LoRA(Low-Rank Adaptation)

不直接修改原始參數,而是在每一層旁邊加一個小型的「適配器」矩陣。訓練時只更新這些適配器的參數,原始模型完全不動。

LoRA 的優勢:需要的 GPU 記憶體大幅減少(只需要存放適配器的梯度,不需要整個模型的梯度)。一個基底模型可以搭配多個不同的 LoRA 適配器——切換任務只要換一個適配器,不用重新載入模型。原始模型的參數完全保留,微調不會「破壞」模型的通用能力。

LoRA 是目前最流行的微調方式,特別是在 LLM 的微調場景中。QLoRA(Quantized LoRA)進一步把基底模型量化到 4-bit,讓一張 24GB 記憶體的消費級 GPU 就能微調 70B 的模型。

Prompt Tuning

連模型參數都不碰,只在輸入前面加上可學習的「軟提示」(Soft Prompt)。這些軟提示是一組連續的向量,不對應任何真實的文字,但會引導模型的行為。

Prompt Tuning 的訓練成本最低,但效果通常也最有限。適合不想動模型、只想在特定任務上微調行為的場景。

各方式的比較

方式 可訓練參數量 GPU 需求 效果 過擬合風險
全模型微調 全部 很高 最好 高(資料少時)
凍結部分層 最後幾層 中等 中等
LoRA 0.1-1% 接近全模型
Prompt Tuning 極少 最低 有限

什麼時候遷移學習會失敗

領域差距太大

用自然風景照訓練的模型去辨認醫療 X 光片,因為兩個領域的視覺特徵差異太大,遷移的效果有限。自然照片中學到的「綠色通常是草地」對 X 光片完全沒用。但用日常物品照片訓練的模型去辨認特定商品(例如辨認不同品牌的手機),因為都是拍攝實體物品,遷移效果就很好。

判斷原則:如果你閉上眼想像兩個領域的資料,它們「看起來」差異很大(黑白 vs 彩色、文字 vs 程式碼、英文 vs 中文),遷移的效果可能有限。如果「看起來」類似(都是自然照片、都是中文文本、都是程式碼),遷移效果通常不錯。

負面遷移(Negative Transfer)

在某些情況下,預訓練的知識反而會干擾新任務的學習,導致效果比從頭訓練更差。

最常見的情境是:預訓練和目標任務的資料分布或邏輯規則衝突。例如,一個在正式英文文本上預訓練的語言模型,如果用來做社群媒體的情感分析,可能表現不好——因為社群媒體的語言充滿了縮寫、俚語、表情符號和反諷,和正式文本的語言規則很不同。模型學到的「正式英文語法」反而干擾了它理解「非正式社群語言」的能力。

資料分布不匹配

目標任務的資料分布和預訓練資料差異太大。例如用英文資料預訓練的語言模型來處理程式碼,雖然都是文字序列,但程式碼的語法結構、token 分布、和語義規則和自然語言完全不同。這就是為什麼 Code Llama 需要在程式碼資料上額外做「繼續預訓練」(continue pre-training),光微調不夠——微調只能調整深層的表示,但程式碼需要淺層的 token 表示也被調整。

樣本量極端不足

即使遷移學習可以大幅降低資料需求,但不是零資料就能做。如果你只有 10 筆標註資料,微調的效果通常很不穩定——模型可能只是記住了這 10 筆資料而不是學會了任務的規律。

經驗法則:簡單的分類任務(二分類),大約需要每個類別 50-100 筆。複雜的任務(多分類、生成),需要幾百到幾千筆。少於 50 筆時,考慮用 Few-shot Learning(直接在 prompt 中給例子)而不是微調。

安全與限制

微調資料會影響安全性

微調資料會影響模型行為的安全性。如果微調資料中包含有偏見或有害的內容,模型的行為也會受到影響。

更嚴重的是,研究已經證明,用少量有害資料微調 LLM,可以繞過原本的安全對齊(safety alignment)。只需要幾百筆精心設計的有害訓練範例,就能讓一個原本拒絕回答危險問題的模型變得「配合」。這代表開源模型的安全對齊可以被輕易移除。

預訓練偏見的遷移

如果預訓練資料中對特定族群的描述有偏見(例如性別刻板印象、種族偏見),這些偏見會被遷移到下游任務中。微調無法完全消除預訓練階段引入的偏見——因為偏見已經編碼在模型的底層表示中,微調只調整了表面的行為。

例如,一個在網路文本上預訓練的模型,可能學到了「護士」和「女性」有更強的關聯。即使你用性別中立的資料微調它做簡歷篩選,底層的偏見仍然可能影響它對女性和男性候選人的評分。

訓練資料洩漏風險

微調後的模型可能洩漏訓練資料。如果微調資料包含敏感資訊(如客戶個資),模型有可能在生成時重現這些資訊。這在企業場景中是需要特別注意的風險——你用客服紀錄微調的模型,可能在回答其他客戶的問題時,不小心透露了某個客戶的私人資訊。

模型來源的信任鏈

使用別人預訓練好的模型時,你無法確認模型是否被植入後門。研究已經證明,可以在預訓練階段植入「觸發器」——模型在正常使用時表現正常,但遇到特定的觸發輸入時會產生攻擊者想要的行為(例如繞過內容過濾)。

防範措施:從可信來源(Hugging Face 官方帳號、Meta 官方發布、Google 官方發布)下載模型,並驗證校驗碼。不要下載來源不明的模型檔案。

常見問題

遷移學習和微調(Fine-tuning)有什麼不同?

遷移學習是概念,微調是做法。遷移學習指的是「把在一個任務學到的知識用在另一個任務」這個概念。微調是實現遷移學習最常見的技術手段——把預訓練模型的參數在新資料上進一步調整。其他實現方式包含 LoRA、Prompt Tuning、Feature Extraction(只用模型的中間層輸出作為特徵,不更新模型參數)等。

ChatGPT 和 Claude 用了遷移學習嗎?

用了,而且是最大規模的遷移學習應用。這些模型的訓練流程是:先在大量網路文本上預訓練(學會語言能力和世界知識),再透過 RLHF 或 RLAIF 等技術微調(學會對齊人類偏好——有禮貌、有幫助、拒絕有害請求)。這個「先學通識再學專業」的過程就是遷移學習。每次你跟 ChatGPT 對話,你都在使用遷移學習的產物。

企業想微調自己的模型,需要多少資料?

取決於任務複雜度和使用的微調方式。簡單的分類任務(例如判斷客戶信件的情緒是正面、負面、中性),每個類別 100-200 筆標註資料通常就夠。複雜的對話任務(例如讓模型用公司的語氣回答客戶問題),通常需要 1,000-10,000 筆高品質的範例。LoRA 微調的資料需求通常比全模型微調少。在預算有限的情況下,建議從少量高品質的資料開始,看效果再決定要不要投資更多標註。

遷移學習可以跨語言嗎?

可以,但效果取決於預訓練階段是否見過目標語言。多語言模型(如 mBERT、XLM-R、mT5)在 100 多種語言上預訓練,可以在某種語言上微調後,在其他語言上也有一定的表現——這叫做 Cross-lingual Transfer。例如用英文的情感分析資料微調 XLM-R,它在中文、日文、法文的情感分析上也能有不錯的準確率(通常比英文低 5-15%)。但資源較少的語言(如台語、客語)效果通常較差,因為預訓練階段看到的資料太少。

微調和 RAG 哪個適合企業場景?

取決於你想改變的是什麼。微調適合需要改變模型的風格或行為的場景:讓模型用特定的語調回答(例如台灣口語、專業術語)、讓模型遵循特定的回答格式、讓模型在特定領域表現更好。RAG 適合需要讓模型存取外部知識的場景:查詢最新的產品規格(模型的訓練資料不包含最新資訊)、回答基於內部文件的問題(產品手冊、SOP)。兩者可以搭配使用——先用微調調整模型的風格,再用 RAG 提供最新的知識。

相關文章

  • LoRA 是什麼?
  • RLHF 是什麼?
  • Supervised Learning 是什麼?
  • Overfitting 是什麼?
  • Fine-tuning 是什麼?
  • Knowledge Distillation 是什麼?

參考資料

  • Pan & Yang, "A Survey on Transfer Learning" (2010)
  • Devlin et al., "BERT: Pre-training of Deep Bidirectional Transformers" (2018)
  • Hu et al., "LoRA: Low-Rank Adaptation of Large Language Models" (2021)
  • Howard & Ruder, "Universal Language Model Fine-tuning for Text Classification" (ULMFiT, 2018)