微調到底是什麼
微調(fine-tuning)的意思是:拿一個已經從龐大語料學會語言的模型,再用一份小得多、聚焦得多的資料繼續訓練,讓它的權重往「你」想要的行為偏移。你不是從零打造一個大型語言模型(large language model),而是輕推一個既有的模型。基礎模型早已懂得文法、事實與推理模式;微調是在這個地基之上,教它「風格」、「格式」與「任務」。
\theta \leftarrow \theta - \eta\,\nabla_{\theta}\,\mathcal{L}(\theta)
微调沿用预训练同样的梯度更新步骤,只是在小得多、更聚焦的数据集上微移权重 \theta。
三根槓桿,不只一根
在你動手微調之前,先認識其他選項。改變大型語言模型行為的方式主要有三種,由最便宜到最費工——而微調是最重的那一個。功夫就在於在提示、RAG 與微調之間做取捨。
- 提示(prompting)——改變你在請求時送出的指令。提示不需任何前置成本、幾分鐘就能上線,幾乎永遠是你該起步的地方。
- 檢索(RAG)——抓取相關文件並貼進提示裡。當模型缺的是「知識」(私有文件、最新事實)而非「行為」時,RAG才是解答。
- 微調——改變權重。當提示與檢索都無法穩定產出你要的「風格」、「格式」或「技能」,或當你想讓一個更小、更便宜的模型表現得像大模型時,才動用它。
检索增强生成流程:查询取回文档,作为上下文喂给模型。
微調地景的一張地圖
「微調」是一把大傘,底下罩著好幾種不同的程序,本系列後面會逐一拆解。第一個分岔是「你拿什麼來訓練」:持續預訓練餵入更多原始文字以教會一個領域;監督式微調(supervised fine-tuning)餵入輸入—輸出配對以教會一項任務;偏好微調(在對齊系列中介紹)則用人類的判斷來塑造語氣與安全性。
第二個分岔是「你改動多少」:完整微調與參數高效微調的對比。完整微調更新每一個權重、需要強悍的硬體;參數高效方法則凍結模型、只訓練一個極小的附加件。第三篇就在談這個。
你會需要什麼
每一次微調都立在三根支柱上。任何一根虛弱,最後都會變成一個令人失望的模型,所以動手前要對這三項都誠實。
- 資料——一組示範你想要行為的範例。品質與一致性遠比純粹的數量重要。
- 一個基礎模型——通常是開放權重模型。一開始就決定你要從基礎模型還是已對話微調的模型出發,因為這會改變你的資料格式。
- 一套評估——一種衡量微調是否真有幫助的方法,最好在上線前就有。沒有它,你就是盲飛。
数据被划分为独立的训练集、验证集和测试集,用于留出评估。
一份快速決策清單
下決定前先把這幾個問題走一遍。如果前兩題你的答案是「否」,那你大概還不需要微調。
- 我是否已經試過一個強力提示、以及(若是知識問題)檢索,卻仍然不夠好?
- 我能不能用一致的範例描述出想要的行為——至少幾百筆?
- 問題是關於「行為、風格或格式」(適合微調)而非「缺少事實」(更適合 RAG)嗎?
- 我有沒有一套能抓出退步、而不只是挑好看結果的評估?