
Firefly
一键微调 20+ 主流大模型,快速定制专属 AI
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 6641
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Python 环境与 pip
- PyTorch,默认调试环境为 torch==1.13、transformers==4.36
- requirements.txt 中固定的若干主要 Python 包版本
- 使用 QLoRA 训练时需相应的 GPU 显存与 CUDA 环境
安装与启动步骤
-
1获取项目代码
从 GitHub 克隆 Firefly 仓库到本地,README 未给出 clone 命令,此处按仓库地址补全。
git clone https://github.com/yangjianxin1/Firefly.git cd Firefly -
2安装基础依赖
requirements.txt 已固定主要 Python 包版本,直接执行即可满足绝大部分模型训练需求。
pip install -r requirements.txt -
3按模型调整版本
Qwen1.5 需 transformers 升级到 4.37;Gemma 需 transformers 4.38.1 且 torch==2.0.0。此处以 Qwen1.5 为例。
pip install transformers==4.37 -
4可选安装Unsloth
需要 Unsloth 加速并节省显存时,安装或更新以下包,注意 torch 与 xformers 版本固定。
pip install git+https://github.com/unslothai/unsloth.git pip install bitsandbytes==0.43.1 pip install peft==0.10.0 pip install torch==2.2.2 pip install xformers==0.0.25.post1 -
5Qwen1.5用Unsloth
若要用 Unsloth 训练 Qwen1.5,需改装作者提供的 fork 版本,不要用官方包。
pip install git+https://github.com/yangjianxin1/unsloth.git -
6指定GPU启动训练
通过 CUDA_VISIBLE_DEVICES 指定显卡,torchrun 启动 QLoRA 训练脚本并读取 json 配置。示例用 0、1 号卡共 2 进程。
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node=2 train_qlora.py --train_args_file train_args/qlora/baichuan-7b-sft-qlora.json
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
CUDA_VISIBLE_DEVICES | 否 | 指定用于训练的 GPU 编号,默认使用全部可见卡 | 0,1 |
--train_args_file | 是 | 训练参数 json 配置文件路径,不同模型/训练方式对应不同文件 | train_args/qlora/baichuan-7b-sft-qlora.json |
--nproc_per_node | 是 | torchrun 启动的进程数,一般等于使用的 GPU 数量 | 2 |
如何确认成功
README 未提供专门自检命令;训练脚本正常输出日志并进入训练迭代,即视为启动成功。
常见问题
Q:执行安装时报包错误怎么办?
A:README 指明 requirements.txt 中已固定各 Python 包版本,直接执行 pip install -r requirements.txt 安装即可。
Q:如何指定使用某些卡训练?
A:通过环境变量指定,例如 CUDA_VISIBLE_DEVICES=0,1 配合 torchrun --nproc_per_node={num_gpus} 启动训练脚本。
Q:Qwen1.5 或 Gemma 训练报错?
A:这两类较新模型需要更新 transformers:Qwen1.5 升到 4.37,Gemma 升到 4.38.1 并搭配 torch==2.0.0。
Q:QLoRA 训练 Baichuan2 报错?
A:需要安装 torch==2.0,并且卸载 xformers 和 apex。
Q:QLoRA 训练 Qwen 报错?
A:需将 flash-attn 卸载,否则会报错。
注意事项
- 绝大部分模型在 torch==1.13、transformers==4.36 环境下调试和训练,新模型需按说明单独升级版本。
- 项目支持预训练、指令微调(SFT)、DPO,以及全量、LoRA、QLoRA 三种训练方式。
- 训练流程通过配置文件切换模型,训练时已与各官方 chat 模型的 template 对齐。
- 本项目代码、数据、模型不得用于危害社会的用途,并须遵循基座模型的商业许可。
核心亮点
- 支持模型数量多,覆盖 Qwen2.5、Llama3、Deepseek 等主流系列,切换方便
- 内置 LoRA/QLoRA 等高效微调策略,降低显存门槛,适合单卡训练
- 训练脚本配置简洁,文档清晰,新手也能快速跑通流程
不足之处
- 文档/社区待观察
- 部分新模型(如 Qwen2.5)的适配可能滞后于官方发布
适用场景
- 在消费级显卡上微调 7B 以下模型用于垂直领域问答
- 企业快速定制私有化大模型,如客服、法律、医疗等场景
- 学术研究中进行模型对比实验,快速验证不同基座的效果
替代项目
LLaMA-Factory、Unsloth、Axolotl
同类项目推荐
LLMtuner
开源
几行代码微调大模型,文本语音全覆盖
FineTune LLMs in few lines of code (Text2Text, Text2Speech, Speech2Text)
gorilla
开源
让大模型学会精准调用API,连接真实世界工具
Gorilla: Training and Evaluating LLMs for Function Calls (Tool Calls)
burn-onnx
开源
把 ONNX 模型转成纯 Rust Burn 代码,推理微调不再依赖 Python
Convert ONNX models into native, backend-agnostic Burn code for inference and fine-t···
DS2
开源
用 LLM 评分自动筛数据,少数据也能训出好模型
[ICLR 2025] Official implementation of paper "Improving Data Efficiency via Curating···
MedicalGPT
开源
一键训练你的医疗GPT,从预训练到对齐全流程搞定
MedicalGPT: Training Your Own Medical GPT Model with ChatGPT Training Pipeline. 训练···
LlamaFactory
开源
上百种模型随意挑,教出你专属的 AI
Unified Efficient Fine-Tuning of 100+ LLMs & VLMs (ACL 2024)
AngelSlim
开源
一键压缩大模型,部署更快更省资源
Model compression toolkit engineered for enhanced usability, comprehensiveness, and ···
Time-R1
开源
让大模型像专家一样一步步推理预测时间序列
Time-R1 is a two-stage reinforcement fine-tuning framework that trains large languag···
Medusa
开源
给大模型加几个解码头,生成速度翻倍,不用改架构
Medusa: Simple Framework for Accelerating LLM Generation with Multiple Decoding Head···