OptimalScale/LMFlow

An Extensible Toolkit for Finetuning and Inference of Large Foundation Models. Large Models for All.

LMFlow – 大型語言模型微調工具箱

是什麼 – LMFlow 是一個開源的 Python 庫,協助研究人員與開發者適應(微調)大型語言模型(LLM),例如 Llama‑3、Phi‑3、Llama‑2、GPT‑2 等。它整合了腳本、工具與可選整合,使整個流程——資料準備、訓練、推論與部署——更快速、更簡單。

核心功能

領域 LMFlow 提供的內容
訓練 • 全參數微調(更新每個權重)
• LoRA(低秩適應)——一種輕量級、參數高效的方法
• LISA——一種新的記憶體高效演算法,凍結大部分層,僅更新少數層,可在單張 24 GB GPU 上運行 7 B 等級模型
• QLoRA(8 位/4 位量化 LoRA)實現更低的記憶體使用量
• 梯度檢查點、FlashAttention‑2、DeepSpeed ZeRO‑3 等技巧,提升速度並減少 GPU 顯存
推論 • 標準的 Hugging‑Face 風格推論
• 高吞吐量服務的 vLLM 與 SGLang 後端
• 透過 llama.cpp 轉換腳本實現純 CPU 4 位推論
部署 • Gradio UI 用於快速聊天機器人示範
• Flask 結合用於自訂 Web 服務
擴充 • 可選套件(vllm, sglang, trl, deepspeed, flash_attn, ray, multimodal, gradio, flask)可依需求安裝。

如何使用

  1. 安裝pip install -e .(或加入所需擴充)。
  2. 準備資料 – 參考文件支援的資料集格式(如 Alpaca)。
  3. 執行訓練腳本 – 選擇所需方法(全參數:run_finetune.sh,LoRA:run_finetune_with_lora.sh,LISA:run_finetune_with_lisa.sh)。
  4. 聊天 – 訓練完成後,run_chatbot.sh 啟動簡單終端聊天機器人;如需 Web UI,使用 Gradio 範例。
  5. 部署 – 啟動 Flask 或 Gradio 服務,可選 DeepSpeed 實現多 GPU 擴展。

硬體建議 – README 包含一張實用表格,展示不同模型大小與訓練模式下的 GPU 顯存需求(例如,7 B 模型全精度微調需約 120 GB,LoRA 僅需約 16 GB,8 位 QLoRA 僅需約 10 GB)。

社群與支援 – 項目維護網站、Discord、Slack 與 WeChat 群組,並定期發布更新(新模型支援、如推測解碼等新演算法、對話範本預設等)。

為何重要 – 微調 LLM 資源消耗大;LMFlow 將 LISA、LoRA、QLoRA、FlashAttention‑2、DeepSpeed 等最新記憶體節省技巧整合到一個易於安裝的套件中,降低了實驗室與愛好者為特定任務或領域適配大模型的門檻。


快速入門範例

# 克隆穩定版本
git clone -b v1.0.0 https://github.com/OptimalScale/LMFlow.git
cd LMFlow
conda create -n lmflow python=3.9 -y && conda activate lmflow
conda install mpi4py
pip install -e .

# 在 Alpaca 資料上微調 GPT‑2
bash ./scripts/run_finetune.sh \
  --model_name_or_path gpt2 \
  --dataset_path data/alpaca/train_conversation \
  --output_model_path output_models/finetuned_gpt2

# 與結果聊天
bash ./scripts/run_chatbot.sh output_models/finetuned_gpt2

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • Dispatch