微調(又稱大模型微調,英語:fine-tuning)是深度學習遷移學習的一種方法,其中預訓練模型的權重會在新數據上進行訓練[1]。微調可以在整個神經網絡上執行,也可以僅在其部分層上執行,此時未進行微調的層會被「凍結」(在反向傳播步驟中不更新)[2]。模型還可以通過「適配器」進行增強,適配器的參數遠少於原始模型,通過調整適配器的權重並保持模型的其餘權重不變的方式,以參數有效的方式進行微調[3]

對於一些體系結構,比如卷積神經網絡,通常會將較早的層(靠近輸入層的層)凍結,因為它們捕捉到較低層次的特徵,而較後的層通常能夠識別更高層次的特徵,這些特徵可能更相關於模型訓練的任務。[2][4]

對於在大型和通用語料庫上進行預訓練的模型,通常通過重用模型的參數作為起點,並添加一個從頭開始訓練的任務特定層進行微調。[5] 對整個模型進行微調也很常見,通常會產生更好的結果,但計算成本更高。[6]

微調通常通過監督學習完成,但也有使用弱監督英語Weak supervision進行模型微調的技術。[7] 微調可以與基於人類反饋的強化學習目標相結合,以生成像ChatGPTGPT-3的微調版本)和Sparrow英語Sparrow (bot)語言模型[8][9]

變種

低秩適應

低秩適應(英語:Low-rank adaptation, LoRA)是一種基於適配器的有效微調模型的技術。其基本思想是設計一個低秩矩陣,然後將其添加到原始矩陣中。[10] 在這個背景下,「適配器」是一組低秩矩陣,當添加到基礎模型時,產生一個微調模型。它允許在更少的空間需求下接近全模型微調的性能。擁有數十億參數的語言模型可能只需數百萬參數進行LoRA微調。

LoRA-based微調在Stable Diffusion社區中變得流行。[11] 對LoRA的支持正在集成到Hugging Face的Diffusers庫中。[12] 對LoRA和類似技術的支持也通過Hugging Face的Parameter-Efficient Fine-Tuning(PEFT)軟件包提供給廣泛的其他模型。[13]

應用領域

自然語言處理

微調在自然語言處理(NLP)中很常見,特別是在語言建模領域。像OpenAIGPT基礎模型系列這樣的大型語言模型可以在特定下游NLP任務的數據上進行微調(使用預訓練模型的任務),以提高性能,超過未修改的預訓練模型。[6]

商業模型

商業化的語言模型, 有時提供商提供了微調API,可以進行微調。 截至2023年6月19日,OpenAIMicrosoft Azure的「Azure OpenAI Service」為其部分模型提供了語言模型微調API,Google Cloud Platform為其部分PaLM模型提供了API,其他提供商也有類似服務。[14][15][16] 但是,並非所有商業模型目前都支持微調。

參見

參考資料

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.