2. 偏好對齊方法(Preference Alignment)
(1) 基于人類反饋的強化學習(Reinforcement Learning with Human Feedback, RLHF)
- 收集偏好數據集:針對同一個問題,提供兩個答案并標注優劣。
- 訓練獎勵模型(Reward Model):基于偏好數據集,構建一個評分機制。
- 強化學習優化:結合獎勵模型與強化學習算法(如 PPO),教導 LLM 提供更優質的回答。
- 典型訓練流程:預訓練 → SFT → 偏好對齊。
- 優缺點:雖然效果顯著,但訓練過程復雜且需要大量人力標注。
(2) 直接偏好優化(Direct Preference Optimization, DPO)
- 直接使用損失函數對偏好進行優化,無需訓練獎勵模型。
- 訓練過程更簡單,且更穩定。
- 適用場景:大部分應用中,DPO 是更易于實施的選擇,尤其在小型數據集上更具優勢。
- 研究發現:在部分數據集中,RLHF 仍表現更佳,但成本較高。
(3) 單體偏好優化(Monolithic Preference Optimization, ORPO)
- 創新點:ORPO 是 2024 年提出的全新方法,旨在融合 SFT 和偏好對齊的步驟。
- 原理:
- 解決了 SFT 過程中負對樣本(不偏好的答案)缺乏懲罰的問題。
- 在優化過程中,不僅提升了理想答案的預測概率,還有效減少了不理想答案的可能性。
- 優勢:結合領域知識學習和偏好對齊,同時保證收斂穩定性,適合更復雜的微調任務。
原文:https://arxiv.org/abs/2403.07691
ORPO Fine-tuning:https://huggingface.co/blog/mlabonne/orpo-llama-3
微調LLM常用的工具庫與框架
在微調大語言模型(LLMs)的過程中,選擇合適的工具庫和框架可以極大地簡化開發流程,提高效率。以下是常用的工具和集成框架匯總,讓你快速入門并靈活應用。
常用工具庫
- bitsandbytes
- 提供多種 LLM 量化(quantization)相關的工具,包括層(layer)、函數(function)和優化器(optimizer)。
- 適用于需要優化存儲和算力的任務,尤其是大規模模型的微調。
- Parameter-Efficient Fine-Tuning (PEFT)
- 專注于參數高效微調,提供多種方法,其中最知名的是 LoRA(Low-Rank Adaptation)及其衍生算法。
- 隸屬于 HuggingFace 生態系統,支持無縫集成 HuggingFace 的模型,非常適合快速開發和實驗。
- Transformer Reinforcement Learning (TRL)
- SFT(監督式微調)。
- RLHF所需的獎勵建模(Reward Modeling, RM)和近端策略優化(PPO)。
- DPO(直接偏好優化)。
- 同樣屬于 HuggingFace 生態系統,支持多種微調方法:
- 適合需要實現復雜訓練流程的開發者。
- wandb
- 用于跟蹤和記錄模型訓練過程中的數據,包括超參數設置、訓練進度等信息。
- 是許多訓練框架的配套工具,讓實驗更加可視化和規范化。
常用微調框架
- LLaMA-Factory
- 微調框架,盡管以 “LLaMA” 命名,但實際上支持超過 100 種語言模型(LM)。
- 提供微調所需的各種工具,并集成了友好的 WebUI 界面,大幅簡化了訓練流程,非常適合初學者快速上手。
- Alpaca-Lora
- 早期開源項目,提供簡單的微調腳本,支持基礎的 LoRA 微調功能。
- 注意:項目已停止更新,但仍可作為入門參考(曾有人提議整合 QLoRA,但未被采納)。
- torchtune
- 由 PyTorch 團隊推出的微調框架,整體架構設計簡潔易懂,適合學習和實踐。
- 推薦:框架上手簡單,本文后續會提供獨立教程,進一步介紹其使用方法與案例。
完整代碼:
Github REAME : https://github.com/jeff52415/yoga-model-hub/blob/main/docs/fine_tune_llm.md
Jupyter Notebook Tutorial:https://github.com/jeff52415/yoga-model-hub/blob/main/notebooks/fine_tune_llm.ipynb
原文轉載出自:@AI技術研習社《如何提升預訓練LLMs:從零打造到微調優化的全攻略》
我們有何不同?
API服務商零注冊
多API并行試用
數據驅動選型,提升決策效率
查看全部API→