Github万星!北航发布零代码大模型微调平台LlamaFactory
时间:2024-05-05 08:20:12 来源:网络cs 作者:焦糖 栏目:选词工具 阅读:
GPT-3.5研究测试:
https://hujiaoai.cn
GPT-4研究测试:
https://higpt4.cn
Claude-3研究测试(全面吊打GPT-4):
https://hiclaude3.com
LLAMA FACTORY的有效性和效率已通过语言建模和文本生成任务得到实证验证。该框架已在GitHub上发布,并获得了超过13,000个星标和1,600个分支。
论文标题:
LLAMAFACTORY: Unified Efficient Fine-Tuning of 100+ Language Models
论文链接:
https://arxiv.org/pdf/2403.13372.pdf
项目链接:
https://github.com/hiyouga/LLaMA-Factory
LLAMA FACTORY框架的核心组成
下图显示了LLAMA FACTORY由三个主要模块组成:模型加载器(Model Loader)、数据工作者(Data Worker)和训练器(Trainer)。
1. 模型加载器:支持100+语言模型的准备工作
LLAMA FACTORY框架的模型加载器是其核心组件之一,负责准备和加载超过100种不同的语言模型。这一模块通过建立模型注册表,精确地为预训练模型附加适配器,识别并处理模型的各个层次。此外,模型加载器还负责模型的初始化、模型补丁、模型量化和适配器附加等关键任务,确保了框架能够灵活地扩展到数百种模型和数据集。
2. 数据工作器:处理和标准化不同任务的数据集
数据工作器是LLAMA FACTORY框架的另一个关键模块,它通过一系列的数据处理流程,包括数据加载、数据对齐、数据合并和数据预处理,来处理和标准化不同任务的数据集。该模块利用数据描述规范(下表)来统一不同格式的数据集,使其能够适应各种任务。例如,对于文本生成模型的训练,数据工作器提供了多种聊天模板,这些模板可以根据模型类型自动选择,并通过分析器编码句子。
3. 训练器:整合多种高效微调方法
训练器是LLAMA FACTORY框架的第三个核心模块,它整合了多种高效的微调方法,如LoRA+和GaLore,通过替换默认组件来适应不同的任务和数据集。这些训练方法与训练器相互独立,易于应用于各种任务。训练器还支持分布式训练,可以与DeepSpeed等工具结合使用,进一步降低内存消耗。
高效微调技术的分类与应用
高效的LLM微调技术可以分为两个主要类别:一类专注于优化,另一类旨在计算。
1. 高效优化技术:减少参数调整成本
高效优化技术的主要目标是在保持成本最低的同时调整LLMs的参数。LLAMA FACTORY框架中包含的高效优化技术(下表)有freeze-tuning(冻结大部分参数,仅微调少量解码器层的参数)、GaLore(将梯度投影到低维空间,以内存高效的方式进行全参数学习)、LoRA(冻结所有预训练权重,引入可训练的低秩矩阵)以及DoRA(将预训练权重分解为幅度和方向组件,仅对方向组件应用LoRA)等。
2. 高效计算技术:降低计算所需的时间或空间
高效计算技术旨在减少LLMs所需的计算时间或空间。LLAMA FACTORY框架整合了一系列高效计算技术(上表),如混合精度训练、激活检查点、flash attention(一种硬件友好的注意力计算方法)、S2 attention(解决块稀疏注意力中上下文扩展的挑战)以及各种量化策略(使用低精度表示权重以减少内存要求)。此外,Unsloth技术通过Triton实现LoRA的反向传播,减少了梯度下降过程中的浮点运算,加速了LoRA训练。
LLAMA FACTORY的实用工具和特性
在当今大数据时代,高效地调整和优化LLMs对于实现其在下游任务中的最佳性能至关重要。LLAMA FACTORY框架应运而生,为广大研究者和开发者提供了一个统一、高效的LLM微调平台。以下是LLAMA FACTORY的一些核心工具和特性:
1. 加速推理:提供高吞吐量的并发推理服务
LLAMA FACTORY通过集成先进的计算技术,如混合精度训练、激活检查点以及特定的注意力机制优化(例如Flash Attention和S2 Attention),显著提高了模型的推理速度。这些技术共同作用,使得在进行大规模模型推理时,能够以更低的内存占用和更高的吞吐量执行,从而加速了模型的部署和应用。
2. 综合评估:包含多种评估LLMs的指标
为了全面评估微调后模型的性能,LLAMA FACTORY集成了一系列评估指标,包括多项选择任务的评估(如MMLU、CMMLU和C-Eval)以及文本相似度评分(如BLEU-4和ROUGE)。这些综合评估工具不仅支持自动评估模型的性能,还能通过人工评估提供更加深入的洞察,帮助用户从多个维度理解模型的优势和局限。
LLAMABOARD:用户友好的界面
为了降低LLM微调的门槛,LLAMA FACTORY提供了LLAMABOARD,一个基于Gradio构建的用户友好界面,使得用户无需编写任何代码即可轻松地进行模型的配置、训练和评估(下图)。
1. 易于配置:无需编码即可自定义微调参数
通过LLAMABOARD,用户可以通过简单的图形界面来配置微调参数,如学习率、批次大小等。该界面为用户提供了默认的参数值推荐,同时也允许用户根据自己的需求进行自定义,极大地简化了模型微调的配置过程。
2. 可监控训练:实时可视化训练日志和损失曲线
在模型训练过程中,LLAMABOARD实时更新并可视化训练日志和损失曲线,使用户能够实时监控训练进度和模型性能。这一特性为用户提供了及时调整训练策略的依据,有助于提高模型微调的效率和效果。
3. 灵活评估:支持自动和人工评估模型性能
LLAMABOARD支持在数据集上自动计算文本相似度分数来评估模型性能,同时也提供了与模型交互的界面,允许用户通过与模型的对话来进行人工评估。这种灵活的评估方式使用户能够从不同角度全面了解模型的性能,为进一步优化模型提供了宝贵的反馈。
通过这些实用的工具和特性,LLAMA FACTORY为广大研究者和开发者提供了一个高效、便捷的平台,以促进LLMs在各种应用场景中的发展和应用。
实证研究:框架的训练效率和任务适应性验证
1. 训练效率的实验设置和结果分析
在LLAMA FACTORY框架的训练效率实验中,研究者们选择了PubMed数据集作为训练材料,该数据集包含超过3600万条生物医学文献记录。从这些文献的摘要中提取了约40万个token作为训练样本。实验涉及了多种不同的高效微调方法,包括全参数微调(Full-tuning)、冻结微调(Freeze-tuning)、GaLore、LoRA以及4位QLoRA。实验中,研究者们使用了Gemma-2B、Llama2-7B和Llama2-13B模型,并通过计算在训练样本上的困惑度(Perplexity, PPL)来评估不同方法的效率。
实验结果显示(下表,粗体字是最佳结果),QLoRA在内存占用上一致表现最佳,这得益于其在低精度下表示预训练权重。而LoRA则在吞吐量上表现更优,这是由于使用了Unsloth对LoRA层进行的优化。在大型模型上,GaLore在降低PPL方面表现更好,而在较小的模型上,LoRA则具有优势。这些结果凸显了高效微调方法在适应特定任务时的有效性。
2. 在下游任务上的微调效果评估
为了评估不同高效微调方法的任务适应性,研究者们在多个下游任务上进行了实验。这些任务包括CNN/DM、XSum和AdGen,分别代表了文本摘要和广告文案生成等文本生成任务。实验中选取了多个指令调优模型,并采用序列到序列的任务进行微调。比较了全参数微调(FT)、GaLore、LoRA和4位QLoRA的效果,并在每个任务的测试集上计算了ROUGE得分。
实验结果表明(下表,粗体字是最佳结果),除了Llama2-7B和ChatGLM3-6B模型在CNN/DM和AdGen数据集上,LoRA和QLoRA在大多数情况下都取得了最佳性能。这表明这些高效微调方法在特定任务上具有良好的适应性。此外,Mistral-7B模型在英文数据集上表现更好,而Qwen1.5-7B模型在中文数据集上得分更高,这表明微调后模型的性能也与其在特定语言上的固有能力有关。
结论与未来工作:总结LLAMA FACTORY的贡献和展望
LLAMA FACTORY框架通过模块化设计,最小化了模型、数据集和训练方法之间的依赖性,并提供了一个集成化的方法,可以使用多种高效微调技术对超过100种语言模型进行微调。此外,该框架还提供了一个灵活的Web UI LLAMABOARD,使用户能够在无需编码的情况下自定义微调和评估语言模型。通过在语言建模和文本生成任务上的实证验证,证明了框架的效率和有效性。
未来,研究者们计划持续将LLAMA FACTORY与最新的模型和高效微调技术保持同步,并欢迎开源社区的贡献。在未来的版本中,研究者们将探索更先进的并行训练策略和多模态高效微调语言模型。
本文链接:https://www.kjpai.cn/news/2024-05-05/164947.html,文章来源:网络cs,作者:焦糖,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!
下一篇:返回列表