Firefly大模型训练工具简介
Firefly是一个开源的一站式大模型训练工具,支持对主流的大模型进行预训练、指令微调和DPO(Direct Preference Optimization)训练。它的主要特点包括:
- 支持全量参数训练、LoRA、QLoRA等高效训练方法
- 支持绝大多数主流开源大模型,如Llama3、Gemma、MiniCPM、Llama、InternLM、Baichuan、ChatGLM等
- 支持使用Unsloth加速训练并节省显存
- 开源了多个高质量的指令微调数据集
- 开源了多个在Open LLM Leaderboard上表现优秀的模型权重
通过配置文件的方式,Firefly能够让新手也能快速上手训练大模型。
支持的模型
Firefly支持的主流开源大模型包括但不限于:
- Llama3、Gemma、MiniCPM
- Llama、InternLM、Baichuan、ChatGLM
- Yi、Deepseek、Qwen、Orion
- Ziya、Xverse、Mistral、Mixtral-8x7B
- Zephyr、Vicuna、Bloom等
训练时与各个官方chat模型的template保持一致。
训练方法
Firefly支持以下几种训练方法:
- 全量参数训练
- LoRA (Low-Rank Adaptation)
- QLoRA (Quantized LoRA)
其中QLoRA是一种高效的训练方法,可以在单张消费级显卡上训练百亿级大模型。Firefly团队在Open LLM Leaderboard上验证了QLoRA的有效性。
训练数据
Firefly整理并开源了多个高质量的指令微调数据集,包括:
- firefly-train-1.1M:包含23种常见中文NLP任务的数据,数据量115万
- moss-003-sft-data:复旦大学MOSS团队开源的中英文多轮对话数据,100万+
- ultrachat:清华大学开源的英文多轮对话数据,140万+
- WizardLM_evol_instruct_V2_143k:WizardLM项目开源的英文复杂指令数据,14.3万
- school_math_0.25M:BELLE项目组开源的数学运算指令数据,25万
此外还有CodeChat、ShareGPT等多个数据集可供选择。
模型评测
在Hugging Face的Open LLM Leaderboard上,Firefly训练的多个模型取得了不错的成绩:
- firefly-mixtral-8x7b: 70.16分,超越Yi-34B、Llama2-65B-Chat等模型
- firefly-llama-30b: 64.83分,同量级模型排名第10
- firefly-llama2-13b: 62.04分,13B模型中排名第3
这些结果验证了Firefly训练流程的有效性。
开源模型
Firefly团队使用该项目开源了多个训练好的模型权重,包括:
中文模型:
- firefly-baichuan2-13b
- firefly-qwen-7b
- firefly-chatglm2-6b
- firefly-internlm-7b等
英文模型:
- firefly-mixtral-8x7b
- firefly-llama-30b
- firefly-llama2-13b等
这些模型都可以在Hugging Face上获取。
技术博客
Firefly团队发布了大量技术博客,介绍项目的最新进展和技术细节,包括:
- Unsloth加速训练的实践
- 大模型推理优化之KV Cache
- LongQLoRA扩展上下文长度
- QLoRA轻量级增量预训练方案
- 多轮对话微调实践等
这些博客可以帮助读者更好地理解和使用Firefly。
总结
Firefly作为一个一站式的大模型训练工具,为研究人员和开发者提供了强大而易用的大模型训练平台。无论是想要微调已有模型,还是从头训练新模型,Firefly都能满足需求。相信随着项目的不断发展,Firefly会帮助更多人参与到大模型的开发中来。
欢迎访问Firefly GitHub仓库了解更多详情,也可以加入Firefly技术交流群与其他开发者交流讨论。让我们一起推动大模型技术的发展!