如何使用QLoRA和DPO在Google Colab上微調LFM2:完整的分步程式設計教程
本教程詳細介紹瞭如何在Google Colab上使用QLoRA、監督微調(SFT)和直接偏好最佳化(DPO)微調Liquid AI的LFM2模型。包括載入模型、準備資料集、訓練LoRA介面卡、合併介面卡以及進行DPO訓練的全流程,最終獲得一個可部署的模型檢查點。
本教程演示瞭如何使用完全開源的工作流程微調Liquid AI的LFM2模型。首先,我們透過QLoRA載入基礎LFM2檢查點,準備聊天風格的監督微調資料集,使用TRL和PEFT訓練輕量級LoRA介面卡,然後將介面卡合併回模型。我們還擴充套件了工作流程,使用DPO來展示如何透過選擇的和拒絕的答案改進響應偏好。最終,我們獲得了一個從基礎LFM2模型到SFT調優、偏好對齊的檢查點的實用管道,可供進一步測試或部署。
教程首先安裝必要的庫,包括Transformers、TRL、PEFT、datasets、bitsandbytes和PyTorch。然後定義訓練設定,檢測GPU並選擇適當的精度。接下來,載入LFM2基礎模型,可選擇4位量化以減少GPU記憶體使用。準備分詞器,並定義一個聊天函式用於測試模型響應。在微調前,我們執行一個基線提示以比較模型行為。
然後,我們載入聊天格式的監督微調資料集,僅保留訊息列。配置LoRA用於輕量級介面卡訓練,並定義SFT訓練設定。使用SFT訓練模型,儲存LoRA介面卡,並測試改進後的模型響應。之後,我們清理記憶體,重新載入基礎模型,附加訓練好的SFT LoRA介面卡,合併介面卡並儲存合併後的SFT檢查點。
可選地,我們使用提示-選擇-拒絕響應對執行DPO。配置另一個LoRA介面卡用於偏好調優,並在SFT合併模型上訓練DPO。最後,合併DPO介面卡,儲存最終模型檢查點,並與之前的輸出進行比較。
總之,我們使用完全開源的工具構建了LFM2的完整微調管道,包括Transformers、TRL、PEFT、datasets和bitsandbytes。我們使用QLoRA使訓練在Colab GPU上高效,應用監督微調於聊天格式資料,將訓練好的介面卡合併到基礎模型中,並可選地透過DPO進一步改進模型。這讓我們清楚地看到現代LLM微調的實際工作方式,從載入模型到生成可與原始基線比較並準備部署的最終檢查點。