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 和微信群组,并定期发布更新(新模型支持、如推测解码等新算法、对话模板预设等)。

为何重要 – 微调 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