🚀 用於偏好優化(DPO)的微調語言模型
本模型是基於直接偏好優化(DPO)對Llama 3.2 - 3B - Instruct進行微調的版本,專門用於獎勵建模任務。它採用了內存高效的技術進行優化,包括4位量化、梯度檢查點和參數高效微調(PEFT)。該模型適用於需要語言理解、基於指令生成響應以及基於偏好對響應進行排序的任務。
🚀 快速開始
安裝依賴
確保安裝了torch
、transformers
、unsloth
和其他推理和微調所需的庫。
加載預訓練模型
你可以使用FastLanguageModel.from_pretrained()
方法,通過指定模型名稱和優化設置來加載模型。
微調
使用偏好對數據集,應用PEFT和量化策略(如LoRA、梯度檢查點)進行微調。
推理
使用FastLanguageModel.for_inference()
方法實現優化的文本生成,該方法支持流式推理以實現即時輸出。
✨ 主要特性
- 文本生成:能夠根據指令或提示生成詳細且連貫的文本響應。
- 基於偏好的優化:經過微調,可根據用戶反饋(選擇與拒絕)對響應進行排序。
- 長上下文處理:通過內部RoPE縮放,支持高效處理長達2048個標記的輸入。
- 快速推理:針對即時文本生成進行了優化,具備流式處理能力和低延遲響應。
📦 安裝指南
確保torch
、transformers
、unsloth
和其他所需庫已安裝,以便進行推理和微調。
💻 使用示例
基礎用法
from FastLanguageModel import FastLanguageModel
model = FastLanguageModel.from_pretrained('model_name', optimization_settings)
高級用法
from FastLanguageModel import FastLanguageModel
from dataset import preference_pairs_dataset
model = FastLanguageModel.from_pretrained('model_name', optimization_settings)
model.fine_tune(preference_pairs_dataset, peft_strategy='LoRA', quantization='4-bit')
inference_model = model.for_inference()
response = inference_model.generate_text('Your instruction or prompt')
📚 詳細文檔
模型詳情
屬性 |
詳情 |
基礎模型 |
unsloth/Llama-3.2-3B-Instruct |
微調目標 |
使用接受和拒絕的響應進行偏好優化(DPO) |
訓練框架 |
基於Unsloth構建,集成了Hugging Face Datasets和Transformers |
量化 |
使用4位量化以減少內存使用,適用於低顯存設備 |
優化措施 |
包括梯度檢查點以提高內存效率和更快的推理速度。使用PEFT方法(如LoRA)進行微調 |
訓練數據 |
在包含指令 - 輸入 - 響應三元組的Intel/orca_dpo_pairs數據集上進行訓練,用於基於偏好的學習 |
預期用途
該模型可應用於各種自然語言處理(NLP)任務,包括:
- 問答:以詳細且上下文準確的信息回答用戶查詢。
- 指令遵循:根據用戶定義的任務生成響應。
- 偏好建模:根據訓練數據中提供的偏好對不同響應進行排序。
- 文本補全:根據提供的指令補全部分給定的文本。
侷限性
- 上下文長度:雖然能夠處理長達2048個標記,但極長的文本可能需要額外的優化或截斷。
- 精度:模型的4位量化在某些需要高精度的邊緣情況下可能會導致輕微的精度損失。
- 數據集偏差:反映了用於偏好對標註的訓練數據集中存在的偏差。
性能指標
- 訓練損失:1.19
- 訓練運行時間:1974.06秒(約32分鐘)
- 每秒步數:0.063
- 每秒樣本數:0.507
模型版本
- 版本:Unsloth 2025.1.7(補丁版本)
- 訓練日期:2025年1月
致謝
該模型使用Unsloth框架進行訓練,感謝英特爾和Hugging Face在數據和工具方面的貢獻。
筆記本
你可以點擊此處訪問該模型的實現筆記本。該筆記本提供了微調與部署模型的詳細步驟。
🔧 技術細節
- 模型架構:基於Llama 3.2,具有30億個參數。
- 訓練方法:使用直接偏好優化(DPO)進行微調。
- 優化器:使用具有8位精度的AdamW優化器以提高效率。
- 批量大小:有效批量大小為8(每個設備2個,進行4步梯度累積)。
- 訓練配置:
- 學習率:5e - 6
- 熱身比例:0.1
- 輪數:1
- 最大序列長度:2048個標記
- 混合精度訓練:根據硬件支持FP16和BFloat16。
📄 許可證
本模型採用MIT許可證。