Unsloth 大語言模型微調工具介紹

關鍵字 :Unsloth微調大語言模型LLM

►前言

在人工智慧蓬勃發展的今日,大型語言模型(LLM, Large Language Model)正迅速改變我們與資訊互動的方式。無論是進行自然語言處理、生成文字內容,或是作為智慧助手的核心引擎,LLM 都展現了強大的語言理解與生成能力。

 

隨著開源模型與工具鏈的日益成熟,越來越多的開發者開始關注模型的本地部署與客製化微調。Unsloth 作為一款高效能的大模型微調工具,能協助開發者在本地端以更快速且低資源的方式進行 LLM 的微調工作,並支援如 LoRA、QLoRA 等主流技術,大幅降低微調的門檻。

 

本文將介紹 Unsloth 進行模型微調,打造更符合應用需求的大語言模型系統。

 

Unsloth介紹

Unsloth 是一個開源專案,專為加速大型語言模型(LLMs)的微調和推理而設計。它基於 PyTorch 和 Hugging Face Transformers 框架,並且透過使用 OpenAI 的 Triton 語言重寫底層核心,實現了顯著的效能提升和記憶體優化。

 

Unsloth 的主要特點包括:

  • 加速微調與推理:Unsloth 聲稱能夠比 Hugging Face 框架快 2-5 倍地微調 Llama 3、Mistral 和 Gemma 等模型,同時減少 80% 的記憶體消耗。
  • Triton 核心加速:透過使用Triton語言重寫底層核心,並手動實現反向傳播引擎,Unsloth顯著提升了模型訓練速度和記憶體利用率。
  • 無精度損失:Unsloth 的重寫不引入近似計算,確保模型訓練的精度不受影響。
  • 支援 4-bit 和 16-bit QLoRA/LoRA 微調:基於bitsandbytes,支援低精度微調,進一步降低顯存需求。

操作流程

安裝Unsloth套件,並加入預訓練量化工具。

預訓練模型已載入,使用DeepSeek 8B。

微調前測試 DeepSeek 8B,模型推論程式碼部分。

資料集已載入,並打印確認載入成功。

 開始微調訓練:

儲存為GGUF格式後,即可供Ollama進行調用

►小結

透過以上講解,搭配程式碼進行範例講解,相信各位對於Unsloth 微調能有更深刻的理解,期待下一篇博文吧!

 

問與答

 問題一:Unsloth 和 Hugging Face 的 Trainer 有什麼差別?我該用哪一個?

Unsloth 是專為輕量、快速、高效率微調而設計的套件,特別針對 LoRA 與 QLoRA 微調進行優化。


 相較於 Hugging Face 的 Trainer,Unsloth 提供更快速的訓練速度、支援更簡單的 LoRA 整合與權重合併。

 

問題二:可以在 GPU 上使用 Unsloth 嗎?記憶體需求高嗎?

Unsloth 專為低記憶體環境設計,支援 4bit QLoRA 微調,最低只需 8GB VRAM,內建支援 bnb_config(bitsandbytes)與 Gradient Checkpointing。

 

問題三:Unsloth 支援哪些模型?能用在中文模型或自定義模型嗎?

LLaMA 2 / 3

密史托 / 密克斯托

Qwen / Phi / TinyLLaMA / Gemma

 

問題四:可以在 Windows 中使用 Unsloth 嗎?它有 API 嗎?

開發者可以自行建立符合需求的環境,調用 GPU,即可進行微調動作。

 

問題五:使用 Unsloth 微調後,如何匯出模型並部署到其他平台?

使用 merge_lora_weights() 將 LoRA 權重合併為單一模型,或者匯出為 Hugging Face 格式的 .bin 和 config.json,進一步轉換為 GGUF 或 ONNX 格式。

 

參考資料

https://github.com/unslothai/unsloth

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

:

評論