基於 LLaMA-Factory 框架對 Qwen2-7B 模型進行微調實踐
一、引言
在當前人工智能的發展中,大型語言模型(LLMs)已成爲 NLP 研究和應用的關鍵。Qwen2-7B 模型作爲領域的領先者,以其巨大的參數量和強大的功能獲得了廣泛注意,尤其是它在經過微調後能更好地完成特定任務。本文旨在詳述如何運用 LLaMA-Factory 框架高效微調 Qwen2-7B 模型,以優化其在特定任務中的表現。
**二、**LLaMA-Factory 簡介
LLaMA-Factory 是一個集多種微調技術於一身的高效框架,支持包括 Qwen2-7B 在內的多種大型語言模型。它通過集成如 LoRA、QLoRA 等先進的微調算法,以及提供豐富的實驗監控工具,如 LlamaBoard、TensorBoard 等,爲用戶提供了一個便捷、高效的微調環境。此外,LLaMA-Factory 還支持多模態訓練方法和多硬件平臺,包括 GPU 和 Ascend NPU,進一步拓寬了其應用範圍。
三、安裝 modelscope
在國內,由於網絡環境的特殊性,直接從國際知名的模型庫如 Hugging Face 下載模型可能會遇到速度慢或連接不穩定的問題。爲了解決這一問題,我們選擇使用國內的 ModelScope 平臺作爲模型下載的渠道。ModelScope 不僅提供了豐富的模型資源,還針對國內用戶優化了下載速度。
修改模型庫爲 modelscope
export USE_MODELSCOPE_HUB=1
修改模型緩存地址,否則默認會緩存到/root/.cache,導致系統盤爆滿
export MODELSCOPE_CACHE=/root/autodl-tmp/models/modelscope
學術資源加速
source /etc/network_turbo
安裝 modelscope(用於下載 modelscope 的相關模型)
pip install modelscope
四、模型下載
在下載 Qwen2-7B 模型之前,我們首先需要設置 modelscope 的環境變量,確保模型能夠被正確地緩存到指定的路徑,避免因爲默認路徑導致的空間不足問題。接下來,通過編寫一個簡單的 Python 腳本,我們可以使用 modelscope 的 API 來下載所需的模型。
使用 modelscope 中的 snapshot_download 函數下載模型,第一個參數爲模型名稱,參數 cache_dir 爲模型的下載路徑。
from modelscope import snapshot_download
model_dir = snapshot_download(
'qwen/Qwen2-7B',
cache_dir='/root/autodl-tmp',
revision='master')
運行 python /root/autodl-tmp/d.py 執行下載;執行完成如下:
五、安裝 LLaMA-Factory
LLaMA-Factory 的安裝過程相對簡單,通過 Git 克隆倉庫後,使用 pip 安裝即可。這一步驟是整個微調流程的基礎,爲後續的操作提供了必要的工具和庫。
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
六、啓動 LLaMA-Factory
在 LLaMA-Factory 安裝完成後,我們可以通過簡單的命令啓動其 Web UI 界面。這一界面提供了一個用戶友好的操作環境,使得微調過程更加直觀和便捷。
修改 gradio 默認端口
export GRADIO_SERVER_PORT=6006
啓動 LLaMA-Factory
llamafactory-cli webui
啓動如下:
七、LLaMA-Factory 操作實踐
1、訪問 UI 界面
http://localhost:6006/
通過訪問 Web UI,用戶可以進行模型的配置、訓練參數的設置以及微調過程的監控。
2、配置模型本地路徑
在 UI 界面中,用戶可以根據自己的需求選擇模型來源,無論是直接使用 Hugging Face 模型庫中的資源,還是加載本地下載的模型。
3、微調相關配置
微調配置是整個流程中至關重要的一步。用戶需要根據具體的任務需求,設置訓練階段、數據集、學習率、批次大小等關鍵參數。
4、預覽訓練參數
在開始訓練之前,用戶可以預覽所有的訓練參數,確保配置無誤。
點擊 “預覽命令” 按鈕,查看訓練的參數配置,可以進行手工修改調整
5、開始訓練
一旦確認配置無誤,用戶可以啓動訓練過程。LLaMA-Factory 將根據用戶的配置進行模型的微調。
點擊 “開始” 按鈕,開始訓練
訓練完成結果如下:
訓練完成後,會在本地輸出微調後的相關權重文件,Lora 權重文件輸出如下:
6、模型加載推理
在高級設置中有一個 “Chat” 頁籤,可用於模型推理對話
模型對話
7、模型合併導出
模型訓練完成後,我們可以將訓練完後的 Lora 相關權重文件,和基礎模型進行合併導出生成新的模型
合併後模型文件如下:
導出後我們可以基於導出後的新模型進行推理對話。
八、結語
通過本文的詳細介紹,大家應該對如何使用 LLaMA-Factory 對 Qwen2-7B 進行微調有了清晰的認識。微調不僅能夠提升模型在特定任務上的表現,還能夠爲模型賦予更加豐富的應用場景。希望本文能夠爲大家在大型語言模型的微調實踐中提供有價值的參考和指導。隨着技術的不斷進步,我們期待 LLaMA-Factory 和 Qwen2-7B 能夠在未來的 AI 領域發揮更大的作用。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/EIwmK5tHw3n7EGXkKhg4YQ