Firefly 项目介绍
项目概述
Firefly 是一个开源的大模型训练工具,设计用于支持主流大模型的预训练和微调。此项目特别适合对大模型进行指令微调,包括但不限于 Llama3、Baichuan、ChatGLM 等知名模型。Firefly 支持不同的训练模式,包括全量参数训练、LoRA 和 QLoRA 高效训练,并已在 Open LLM Leaderboard 上展示了其卓越的性能。
核心功能
-
多种训练模式:Firefly 项目支持全量参数训练、LoRA、QLoRA 等多种高效训练方法,无论是预训练还是指令微调都能胜任。这让用户能够根据自身资源情况选择合适的训练方式。
-
支持多种主流大模型:项目可以支持市面上大多数的开源大模型,包括但不限于 Llama 系列、MiniCPM、InternLM、Gemma 等。在训练过程中,能与各官方模型的 chat 模板对齐。
-
Unsloth 加速支持:使用 Unsloth 可以加速训练并节省显存,使得即便是显存相对较小的设备也能运行大模型训练任务。
-
丰富的数据集:开源了多种指令微调数据集,如 firefly-train-1.1M 和 ultrachat 等,方便用户快速进行多语言和多任务的模型训练。
-
开源模型:提供不同模型的预训练和微调模型权重,方便开发者直接应用于具体场景。
新增特性和更新
-
扩展支持:Firefly 最近扩展了对 Qwen2 模型结构的支持,并在多个平台上进行了性能的验证和展示。
-
显存优化:通过优化训练流程,Firefly 能显著降低显存需求,仅需小量显存即可支持大模型的训练。
-
长上下文模型扩展:通过 LongQLoRA 使LLama模型上下文长度能够高效扩展至数千,提升了解决长上下文问题的能力。
模型评测
在 Hugging Face 的 Open LLM Leaderboard 上,Firefly 系列模型如 firefly-mixtral-8x7b 和 firefly-llama-30b 等表现均有较高的评分,展示出在多种基准测试中的出色表现。
项目相关
-
Firefly-LLaMA2-Chinese:特别为中文语言的 Llama2 模型进行了优化,提升中文上下文的处理能力。
-
LLMPruner:用于压缩大语言模型,从而减少模型的参数量,提升训练和推理的效率。
安装与使用
Firefly 提供了便捷的安装方式,确保用户能快速上手使用。在环境配置环节,确保安装了必要的 Python 库,如Unsloth、torch等,以便实现不同模型和环境的兼容。
总结
Firefly 项目提供了强大且灵活的大模型训练支持,通过开源的方式让更多的开发者可以参与进来。无论是新手还是有经验的研究者,都能从 Firefly 项目中受益,并能根据具体的需求进行模型的定制与优化。通过不断的更新与社区支持,Firefly 正致力于成为最便捷和高效的大模型训练工具。