微信扫码
添加专属顾问
我要投稿
Firefly[1]是一个开源的大模型训练项目,支持对主流的大模型进行预训练、指令微调和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上验证了该方法的有效性,并且取得了非常不错的成绩。
本项目主要内容如下:
Firefly官方基于该项目的训练代码,以及训练数据,训练并开源了以下模型权重。
如下模型是官方在Firefly代码上训练的,训练脚本可以源码目录找到:train_args[4]
中文模型:
| firefly-baichuan2-13b[5] | ||
| firefly-baichuan-13b[6] | ||
| firefly-qwen-7b[7] | ||
| firefly-chatglm2-6b[8] | ||
| firefly-internlm-7b[9] | ||
| firefly-baichuan-7b[10] | ||
| firefly-ziya-13b[11] | ||
| firefly-bloom-7b1[12] | ||
| firefly-bloom-2b6-v2[13] | ||
| firefly-bloom-2b6[14] | ||
| firefly-bloom-1b4[15] |
英文模型:
| firefly-mixtral-8x7b[16] | ||
| firefly-llama-30b[17] | ||
| firefly-llama-13-v1.2[18] | ||
| firefly-llama2-13b[19] | ||
| firefly-llama-13b-v1.2[20] | ||
| firefly-llama-13b[21] |
扩展项目:
Firefly整理了如下指令集,并整理成统一的数据集格式:
| firefly-train-1.1M[24] | |
| moss-003-sft-data[25] | |
| ultrachat[26] | |
| WizardLM_evol_instruct_V2_143k[27] | |
| school_math_0.25M[28] | |
| shareAI/CodeChat[29] | |
| shareAI/ShareGPT-Chinese-English-90k[30] | |
| ultrachat_200k[31] | |
| ultrafeedback_binarized[32] |
train_args目录下存储了不同模型使用不同训练方式的配置文件,主要参数说明如下:
以下几个参数,当使用QLoRA训练的时候,需要设置:
关于deepspeed的参数配置,可按需自行修改。
训练脚本
全量参数预训练,将{num_gpus}替换为显卡数量:
deepspeed --num_gpus={num_gpus} train.py --train_args_file train_args/pretrain/full/bloom-1b1-pretrain-full.json
全量参数指令微调,将{num_gpus}替换为显卡数量:
deepspeed --num_gpus={num_gpus} train.py --train_args_file train_args/sft/full/bloom-1b1-sft-full.json
单卡QLoRA预训练:
python train.py --train_args_file train_args/pretrain/qlora/yi-6b-pretrain-qlora.json
单卡QLoRA指令微调:
python train.py --train_args_file train_args/sft/qlora/yi-6b-sft-qlora.json
多卡QLoRA预训练:
torchrun --nproc_per_node={num_gpus} train.py --train_args_file train_args/pretrain/qlora/yi-6b-pretrain-qlora.json
多卡QLoRA指令微调:
torchrun --nproc_per_node={num_gpus} train.py --train_args_file train_args/sft/qlora/yi-6b-sft-qlora.json
单卡QLoRA进行DPO训练:
python train.py --train_args_file train_args/sft/qlora/minicpm-2b-dpo-qlora.json
❝更详细的训练及推理使用说明,可以查看官网。
预训练时,我们采用经典的自回归损失,即每个位置的token都会参与loss计算。
指令微调时,仅计算assistant回复部分的loss。
❝这点还是蛮重要的,在一些训练框架中,不会提及也不会如此设计。
我个人接触这个库比较早,之前也算是用过,但后面选型用的还是LLaMA-Factory;现在深入的再了解对比,其实个人玩LLM的话,还是可以考虑Firefly。首先,对比较于LLaMA-Factory,Firefly官方开发人员基于此项目训练了一批LLM,从数据集到训练脚本参数,都是慢慢的提供了,这在我看来是实实在在的开源了。对于学生或是个人了解LLM的训练过程来说,是一个很好的参考。其次的话,看过一些issue,包括我自己之前也写过几篇关于Firefly训练效率的文章,在训练效率和效果上的确是要比LLaMA-Factory要好一些。前段时间,Firefly官方发布了基于Firefly与QWen知识蒸馏的文章,但还没把代码放出来,如果能放出来的话,那更好了。不过最大的劣势则是对模型的支持没有LLaMA-Factory齐全,且维护更新、解决issue并没有那么活跃。
对于学生、业余爱好者来说,推荐从Firefly入手训练模型,再可以过渡到LLaMA-Factory那边去使用,在Firefly的训练中,可以接触到更多的训练细节与实践。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-10-30
开源可信MCP,AICC机密计算新升级!
2025-10-30
OpenAI 开源了推理安全模型-gpt-oss-safeguard-120b 和 gpt-oss-safeguard-20b
2025-10-29
刚刚,OpenAI 再次开源!安全分类模型 gpt-oss-safeguard 准确率超越 GPT-5
2025-10-29
AI本地知识库+智能体系列:手把手教你本地部署 n8n,一键实现自动采集+智能处理!
2025-10-29
n8n如何调用最近爆火的deepseek OCR?
2025-10-29
OpenAI终于快要上市了,也直面了这23个灵魂拷问。
2025-10-29
保姆级教程:我用Coze干掉了最烦的周报
2025-10-29
维基百科,终结了!马斯克开源版上线,用AI重写「真相」
2025-08-20
2025-09-07
2025-08-05
2025-08-20
2025-08-26
2025-08-22
2025-09-06
2025-08-06
2025-10-20
2025-08-22
2025-10-29
2025-10-28
2025-10-13
2025-09-29
2025-09-17
2025-09-09
2025-09-08
2025-09-07