LLaMA Factory:轻松高效地微调100+大型语言模型的Web界面

LLaMA Factory Logo

随着大型语言模型(LLM)的广泛应用,如何高效地微调和管理这些模型成为了开发者们面临的巨大挑战。LLaMA Factory 是一个开源项目,旨在通过一个统一的Web界面,帮助用户高效地微调、评估和部署100多个大型语言模型。本文将深入介绍LLaMA Factory的主要功能、支持的模型和训练方法,以及如何快速上手使用这个强大的工具。

一、LLaMA Factory简介

LLaMA Factory 是一个基于Web的用户界面,提供了对多种大型语言模型的微调、训练和部署支持。它集成了多种训练方法和先进的算法,旨在简化大型语言模型的微调过程,让用户能够以最小的资源高效地训练和管理模型。

1.1 主要特性

  • 多样化的模型支持:支持LLaMA、LLaVA、Mistral、Qwen、Yi、Gemma、Baichuan、ChatGLM、Phi等模型,涵盖了市场上主流的LLM。

  • 集成的训练方法:支持连续预训练、多模态监督微调、奖励建模、PPO、DPO、KTO、ORPO等训练方法。

  • 高效的资源利用:提供16位全参数微调、冻结微调、LoRA,以及2/3/4/5/6/8位的QLoRA,支持多种量化策略,降低显存占用。

  • 先进的算法支持:集成了GaLore、BAdam、Adam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ、PiSSA等前沿算法。

  • 实用的训练技巧:支持FlashAttention-2、Unsloth、Liger Kernel、RoPE scaling、NEFTune、rsLoRA等,提高训练效率和模型性能。

  • 实验监控和可视化:提供LlamaBoard、TensorBoard、Wandb、MLflow等工具,方便监控和分析训练过程。

  • 快速推理部署:支持OpenAI风格的API、Gradio UI和CLI,集成vLLM worker,加速推理速度。

二、性能基准测试

在广告文本生成任务中,与ChatGLM的P-Tuning相比,LLaMA Factory的LoRA微调在训练速度上提高了3.7倍,并在Rouge得分上表现更好。通过采用4位量化技术,LLaMA Factory的QLoRA进一步提高了显存利用效率。

Benchmark

定义:

  • 训练速度:训练过程中每秒处理的样本数量(批次大小=4,序列长度=1024)。

  • Rouge得分:在广告文本生成任务的开发集上计算的Rouge-2得分。

  • 显存占用:在4位量化训练中显存的峰值使用量(批次大小=1,序列长度=1024)。

  • 对于ChatGLM的P-Tuning,设置pre_seq_len=128;对于LLaMA Factory的LoRA微调,设置lora_rank=32

三、支持的模型

LLaMA Factory支持多种大型语言模型,以下是部分支持的模型列表:

  • LLaMA系列:7B、13B、33B、65B

  • LLaVA系列:7B、13B

  • Mistral系列:7B、8x7B、8x22B

  • Qwen系列:0.5B、1.5B、3B、7B、14B、32B、72B、110B

  • Baichuan系列:7B、13B

  • ChatGLM系列:6B

  • Phi系列:1.3B、2.7B、4B、7B、14B

  • Yi系列:1.5B、6B、9B、34B

注意: 对于“基础”模型,template参数可以选择defaultalpacavicuna等。但对于“指令/聊天”模型,请确保使用对应的模板。在训练和推理中使用相同的模板。

完整的支持模型列表请参考constants.py。您也可以在template.py中添加自定义的聊天模板。

四、支持的训练方法

训练方法全参数微调冻结微调LoRAQLoRA
预训练
监督微调
奖励建模
PPO训练
DPO训练
KTO训练
ORPO训练
SimPO训练

提示: PPO的实现细节可参考这篇博客。

五、提供的数据集

LLaMA Factory提供了多种预训练和监督微调数据集,涵盖英文、中文、多语言等多种类型。部分数据集包括:

  • 预训练数据集:RefinedWeb、RedPajama V2、Pile、SkyPile、The Stack等。

  • 监督微调数据集:Stanford Alpaca、BELLE系列、UltraChat、OpenPlatypus、Firefly等。

  • 偏好数据集:DPO mixed、UltraFeedback、RLHF-V等。

注意: 部分数据集需要先登录Hugging Face账号才能使用。请使用以下命令登录:

pip install --upgrade huggingface_hub  
huggingface-cli login  

六、系统要求

6.1 软件要求

  • Python:最低3.8,推荐3.11

  • PyTorch:最低1.13.1,推荐2.4.0

  • Transformers:最低4.41.2,推荐4.43.4

  • Datasets:最低2.16.0,推荐2.20.0

  • Accelerate:最低0.30.1,推荐0.32.0

  • PEFT:最低0.11.1,推荐0.12.0

  • TRL:最低0.8.6,推荐0.9.6

6.2 硬件要求

根据不同的训练方法和模型大小,显存需求各不相同。以下是估计的显存需求:

方法位宽7B13B30B70B110B8x7B8x22B
全参数微调AMP120G240G600G1200G2000G900G2400G
全参数微调1660G120G300G600G900G400G1200G
冻结微调1620G40G80G200G360G160G400G
LoRA/GaLore等1616G32G64G160G240G120G320G
QLoRA810G20G40G80G140G60G160G
QLoRA46G12G24G48G72G30G96G
QLoRA24G8G16G24G48G18G48G

七、如何开始使用LLaMA Factory

7.1 安装

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git  
cd LLaMA-Factory  
pip install -e ".[torch,metrics]"  

提示: 如果遇到包冲突问题,可以使用pip install --no-deps -e .

7.2 数据准备

请参考data/README.md了解数据集文件的格式。您可以使用Hugging Face或ModelScope上的数据集,也可以加载本地数据集。

注意: 如果使用自定义数据集,请更新data/dataset_info.json

7.3 快速开始

使用以下命令进行LoRA微调、推理和合并,以Llama3-8B-Instruct模型为例:

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml  
llamafactory-cli chat examples/inference/llama3_lora_sft.yaml  
llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml  

更多高级用法(包括分布式训练)请参考examples/README.md。

提示: 使用llamafactory-cli help查看帮助信息。

7.4 使用Web界面进行微调

llamafactory-cli webui  

该命令将启动基于Gradio的Web界面,您可以在浏览器中进行模型的微调、评估和推理。

7.5 部署OpenAI风格的API

API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml  

提示: 您可以参考OpenAI的API文档来了解如何与该API交互。

八、类似项目介绍

在大型语言模型的微调和管理领域,还有一些值得关注的项目。以下是对这些项目的简要介绍:

8.1 PEFT

特点:

  • 由Hugging Face提供的轻量级微调库。

  • 支持LoRA、Prefix Tuning等参数高效微调方法。

  • 与Transformers库无缝集成。

应用场景:

适合需要对Transformer模型进行参数高效微调的用户,尤其是资源受限的情况下。

8.2 TRL

特点:

  • 专注于使用强化学习对语言模型进行训练。

  • 支持PPO、DPO等强化学习算法。

  • 提供与Transformers的集成。

应用场景:

适合需要对模型进行强化学习训练,以优化特定目标(如人类反馈)的用户。

8.3 QLoRA

特点:

  • 提供了4位量化LoRA微调的实现。

  • 大幅降低了显存占用,支持在单张GPU上微调大型模型。

  • 与Hugging Face的Transformers库兼容。

应用场景:

适合需要在有限硬件资源上微调大型语言模型的用户。

8.4 FastChat

特点:

  • 提供了一个开源的AI助手框架。

  • 支持多种模型和聊天界面。

  • 可用于部署和评估聊天机器人。

应用场景:

适合需要快速搭建聊天机器人的用户,支持多种模型的推理和评估。

对比总结:

  • LLaMA Factory:提供了一个统一的Web界面,集成了多种模型和训练方法,适合需要高效微调和管理多种大型语言模型的用户。

  • PEFT:专注于参数高效微调,适合资源受限的情况下对单个模型进行微调。

  • TRL:专注于强化学习训练,适合需要优化特定目标的用户。

  • QLoRA:提供了低显存占用的微调方法,适合在单张GPU上微调大型模型。

  • FastChat:提供了聊天机器人框架,适合快速部署和评估对话模型。

九、结语

LLaMA Factory为大型语言模型的微调和管理提供了一个强大而高效的解决方案。通过统一的Web界面和对多种模型、训练方法的支持,用户可以更轻松地训练、评估和部署大型语言模型。在快速发展的AI领域,LLaMA Factory为开发者和研究人员提供了重要的工具,助力他们在有限的资源下实现最佳的模型性能。

如果您对LLaMA Factory感兴趣,欢迎访问其GitHub仓库获取更多信息和资源。无论您是初学者还是资深研究人员,LLaMA Factory都将是您不可或缺的伙伴。

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

😝有需要的小伙伴,可以VX扫描下方二维码免费领取🆓

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

在这里插入图片描述
👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值