当前位置: 华文头条 > 推荐

Firefly:大模型训练工具, 4.2stars, 单卡微调7B

2024-03-31推荐

「Firefly」是一个专门针对大模型 训练 的开源框架,其主要功能包括对大模型进行 预训练、指令微调(SFT, Supervised Fine-Tuning)以及DPO (可能指Direct Policy Optimization)等不同阶段的训练。以下是关于「Firefly」这个大模型微调平台的详细介绍:

项目概述

Firefly 是一个开源的大模型一站式训练框架,旨在简化和加速对多种大型语言模型进行训练和微调的过程。它支持对包括但不限于Gemma、Qwen1.5、MiniCPM、Mixtral-8x7B、Mistral、Llama等在内的主流大模型进行高效训练。该项目源代码可在GitHub上访问:

项目链接 : https://github.com/yangjianxin1/Firefly

关键特性与支持

多阶段训练支持

Firefly涵盖了大模型训练的三大核心阶段:

  • 预训练 :利用超大规模文本数据对模型进行基础训练,任务通常是基于「下一个token预测」,需要处理数万亿级别的文本数据。
  • 指令微调(SFT) :使用含有明确指令的数据集,调整模型输出格式以与人类期望的对话模式对齐,赋予模型进行自然、有意义的聊天交互能力。
  • DPO(Direct Policy Optimization) :一种基于人类反馈或偏好数据对模型进行价值观对齐训练的方法,目的是使模型输出更符合人类价值观和预期行为。相较于传统的RLHF(Reinforcement Learning with Human Feedback)方法中常用的PPO(Proximal Policy Optimization),DPO简化了流程,避免了奖励模型的构建,直接使用偏好数据训练,并减少了显存需求,仅需加载策略网络和参考网络。
  • 灵活的训练技术

    Firefly支持多种训练技术,以适应不同场景和资源限制:

  • 全量参数训练 :对模型的所有参数进行更新,适用于拥有充足计算资源的情况。
  • LoRA (Low-Rank Adaptation) :通过在模型的线性层添加低秩矩阵来实现轻量级微调,减少对模型参数的修改量,降低计算成本。
  • QLoRA (Quantized LoRA) :可能是对LoRA技术的量化版本,进一步压缩模型参数,优化内存使用和计算效率。
  • 硬件效率与优化

    即使在有限的硬件资源下,Firefly也能有效地进行大模型训练:

  • 单卡V100支持 :实验展示了使用单张NVIDIA V100 GPU即可完成对Qwen1.5-7B模型的SFT和DPO两阶段训练,表明Firefly能够有效利用单GPU进行大规模模型的微调。
  • QLoRA技术 :在所有Linear层应用QLoRA技术,通过添加adapter提升训练效果,同时可能有助于减少模型的内存占用。
  • 实验案例与成果

    Firefly团队对Qwen1.5-7B模型进行了SFT和DPO两阶段训练,并取得了显著的性能提升:

  • 数据筛选与处理 :对训练数据进行了精细化筛选,确保输入高质量的数据进行微调。
  • 训练参数 :提供了详细的训练参数配置,如学习率、批量大小、序列长度、优化器类型、学习率调度策略、LoRA相关超参数等,以供参考和复现实验。
  • 模型性能 :经过Firefly训练后的Qwen1.5模型在Open LLM Leaderboard上的表现显著超越了原版Qwen1.5-7B-Chat和Gemma-7B-it等模型,平均得分提升近1分,显示出Firefly在微调大模型方面的强大能力。
  • Firefly微调后的模型

    整理提供的指令微调数据

    数据

    综上所述, Firefly 是一个专为大模型训练设计的开源框架,它集成了多种先进的训练技术和策略,支持预训练、指令微调(SFT)以及DPO等多种训练阶段,尤其擅长在有限的计算资源(如单张V100 GPU)上高效地微调大型语言模型,并已通过实验证明了其在提升模型性能方面的显著效果。无论是学术研究还是工业应用,Firefly都为用户提供了便捷、灵活且高效的大模型训练解决方案。