SkillAgentSearch skills...

Firefly

Firefly: 大模型训练工具,支持训练Qwen2.5、Qwen2、Yi1.5、Phi-3、Llama3、Gemma、MiniCPM、Yi、Deepseek、Orion、Xverse、Mixtral-8x7B、Zephyr、Mistral、Baichuan2、Llma2、Llama、Qwen、Baichuan、ChatGLM2、InternLM、Ziya2、Vicuna、Bloom等大模型

Install / Use

/learn @yangjianxin1/Firefly

README

Firefly: 一站式大模型训练工具

<div align="left">

GitHub Repo stars Generic badge Generic badge

</div> <img src="pics/firefly_logo.png" width="250">

欢迎加入Firefly大模型技术交流群,关注我们的公众号,点击加群按钮即可。

<img src="pics/gongzhonghao.png" width="300">

欢迎关注我们的知乎进行交流讨论:红雨瓢泼

项目简介

Firefly 是一个开源的大模型训练项目,支持对主流的大模型进行预训练、指令微调和DPO,包括但不限于Qwen2、Yi-1.5、Llama3、Gemma、Qwen1.5、MiniCPM、MiniCPM3、Llama、InternLM、Baichuan、ChatGLM、Yi、Deepseek、Qwen、Orion、Ziya、Xverse、Mistral、Mixtral-8x7B、Zephyr、Vicuna、Bloom等。 本项目支持全量参数训练、LoRA、QLoRA高效训练,支持预训练、SFT、DPO。 如果你的训练资源有限,我们极力推荐使用QLoRA进行指令微调,因为我们在Open LLM Leaderboard上验证了该方法的有效性,并且取得了非常不错的成绩。

🔔 本项目主要内容如下:

  • 📗 支持预训练、指令微调、DPO,支持全量参数训练、LoRA、QLoRA高效训练。通过配置文件的方式训练不同的模型,小白亦可快速上手训练模型。
  • 📗 支持使用Unsloth加速训练,并且节省显存。
  • 📗 支持绝大部分主流的开源大模型,如Llama3、Gemma、MiniCPM、Llama、InternLM、Baichuan、ChatGLM、Yi、Deepseek、Qwen、Orion、Ziya、Xverse、Mistral、Mixtral-8x7B、Zephyr、Vicuna、Bloom,训练时与各个官方的chat模型的template对齐。
  • 📗 整理并开源指令微调数据集:firefly-train-1.1M 、moss-003-sft-data、ultrachat、 WizardLM_evol_instruct_V2_143k、school_math_0.25M。
  • 📗 开源Firefly系列指令微调模型权重
  • 📗 在Open LLM Leaderboard上验证了QLoRA训练流程的有效性。

当前版本针对不同的chat模型的template进行了适配,代码存在较大的更新。若你更喜欢此前的版本,可下载代码v0.0.1-alpha

News

  • 🔥 Unsloth x Qwen2模型结构的PR已merge到Unsloth的master分支。
  • 🔥 扩展Unsloth,支持Qwen2模型结构,包括Qwen1.5系列的Dense模型,代码库:Unsloth技术文章
  • 🔥 支持Unsloth,训练Llama3-8B仅需7.75GB显存,可减少42.58%显存占用,减少30.72%训练时间。 训练增益评测
  • 🔥 优化训练流程,支持全量训练、LoRA、QLoRA高效训练,支持预训练、指令微调和DPO。指令微调与DPO的template与原有的chat模型对齐,支持绝大多数开源模型,包括Gemma、MiniCPM、Llama、InternLM、Baichuan、ChatGLM、Yi、Deepseek、Qwen、Orion、Ziya、Xverse、Mistral、Mixtral-8x7B、Zephyr、Vicuna、Bloom等。
  • 🔥 开源模型权重firefly-mixtral-8x7b ,在🤗Open LLM排行榜分数为70.34,超越Yi-34B、Llama2-65B-Chat、Qwen-14B、Vicuna-33B-v1.3等模型。
  • 🔥 开源LongQLoRA, 【技术报告】。可高效扩展LLama上下文长度,在单张32GB V100上将Llama2长度扩展至8k(亦可扩展至12k),仅微调1000 step,在PG19和Proof-pile数据集上的perplexity优于LongLoRA,在PG19上略胜MPT-7B-8K。
  • 🔥 开源Firefly-LLaMA2-Chinese项目在4*V100上进行高效训练,经过中文词表扩充、增量预训练、多轮指令微调,在CMMLU上超越Linly、Yayi、FlagAlpha等,与Ziya、Chinese-Alpaca表现基本持平。
  • 🔥 开源firefly-baichuan2-13b,在OpenCompass的CMMLU榜单上以56.83的分数,位列第8,比百川官方Chat模型略低1.57分。
  • 🔥 开源firefly-llama-30b,在🤗Open LLM排行榜上以64.83分,同量级模型排名第10
  • 🔥 开源firefly-llama2-13b,在🤗Open LLM排行榜上以62分,同量级模型排名第3,比榜首略低0.5分。
  • 🔥 开源firefly-llama-13b,在Hugging Face的Open LLM排行榜上复刻Vicuna-13B,比Vicuna-13b-1.1略高0.2分,比llams-2-13b-chat略低0.5分。
  • LLMPruner:大语言模型裁剪工具 ,开源裁剪后的Bloom模型权重

相关项目

  • Firefly-LLaMA2-Chinese:中文Llama2模型,对Llama2进行中文词表扩充、增量预训练和指令微调。
  • LongQLoRA:大模型长度扩展项目,可在单卡V100上将LLaMA-13B的长度扩展至8192,且性能逼近MPT-8K。
  • LLMPruner:对Bloom进行词表裁剪,减少模型参数量。

技术博客

<details><summary><b>技术博客</b></summary> </details>

模型评测

Open LLM Leaderboard评测

评测结果来源于Hugging Face的Open LLM Leaderboard。我们的模型均采用QLoRA脚本进行训练,训练仅使用1~2张V100。

| 模型 | Average | ARC | HellaSwag | MMLU | TruthfulQA | |-----------------------------|---------|-------|-----------|-------|------------| | firefly-mixtral-8x7b | 70.16 | 68.09 | 85.76 | 71.49 | 55.31 | | Yi-34B-Chat | 69.97 | 65.44 | 84.16 | 74.9 | 55.37 | | firefly-llama-30b | 64.83 | 64.25 | 83.64 | 58.23 | 53.2 | | falcon-40b-instruct | 63.47 | 61.6 | 84.31 | 55.45 | 52.52 | | guanaco-33b | 62.98 | 62.46 | 84.48 | 53.78 | 51.22 | | firefly-llama2-13b-v1.2 | 62.17 | 60.67 | 80.46 | 56.51 | 51.03 | | firefly-llama2-13b | 62.04 | 59.13 | 81.99 | 55.49 | 51.57 | | vicuna-13b-v1.5 | 61.63 | 56.57 | 81.24 | 56.67 | 51.51 | | mpt-30b-chat | 61.21 | 58.7 | 82.54 | 51.16 | 52.42 | | wizardlm-13b-v1.2 | 60.79 | 59.04 | 82.21 | 54.64 | 47.27 | | vicuna-13b-v1.3 | 60.01 | 54.61 | 80.41 | 52.88 | 52.14 | | llama-2-13b-chat | 59.93 | 59.04 | 81.94 | 54.64 | 44.12 | | vicuna-13b-v1.1 | 59.21 | 52.73 | 80.14 | 51.9 | 52.08 | | guanaco-13b | 59.18 | 57.85 | 83.84 | 48.28 | 46.73 |

模型列表

🔔 使用本项目的训练代码,以及上述训练数据,我们训练并开源了以下模型权重。

中文模型:

| 模型 | 基座模型 | 训练长度 | |--------------------------------------------------------------------------------|-------------------------------------|------| | firefly-baichuan2-13b | baichuan-inc/Baichuan2-13B-Base | 1024 |
| firefly-baichuan-13b | baichuan-inc/Baichuan-13B-Base | 1024 |
| firefly-qwen-7b | Qwen/Qwen-7B | 1024 |
| firefly-chatglm2-6b | THUDM/chatglm2-6b | 1024 |
| firefly-internlm-7b | internlm/internlm-7b | 1024 |
| firefly-baichuan-7b | baichuan-inc/baichuan-7B | 1024 |
| firefly-ziya-13b | YeungNLP/Ziya-LLaMA-13B-Pretrain-v1 | 1024 |
| firefly-bloom-7b1 | bigscience/bloom-7b1 | 1024 | | firefly-bloom-2b6-v2 | YeungNLP/bloom-2b6-zh | 512 | | firefly-bloom-2b6 | YeungNLP/bloom-2b6-zh | 512 | | firefly-bloom-1b4 | YeungNLP/bloom-1b4-zh | 512 |

英文模型:

| 模型 | 基座模型 | 训练长度 | |------------------------------------------------------------------------|-------------------|--

View on GitHub
GitHub Stars6.7k
CategoryDevelopment
Updated1d ago
Forks587

Languages

Python

Security Score

85/100

Audited on Mar 26, 2026

No findings