2026/2/12 16:54:31
网站建设
项目流程
24小时通过网站备案,个人网页html实例完整代码,58网站怎么做才有客户问,公司网站模板 网盘下载LLAMA FACTORY是一个统一框架#xff0c;用于高效微调100种大语言模型。它整合了LoRA、QLoRA、GaLore等前沿微调技术#xff0c;提供无需编码的Web界面LLAMA BOARD#xff0c;降低微调门槛和计算成本。该框架支持预训练、指令微调和偏好优化等多种训练范式#xff0c;已在G…LLAMA FACTORY是一个统一框架用于高效微调100种大语言模型。它整合了LoRA、QLoRA、GaLore等前沿微调技术提供无需编码的Web界面LLAMA BOARD降低微调门槛和计算成本。该框架支持预训练、指令微调和偏好优化等多种训练范式已在GitHub获得25K星标使大模型微调变得民主化让更多人能轻松使用。今天我们要聊的这篇论文介绍了一个非常厉害的工具叫做LLAMA FACTORY。你可以把它想象成一个“大语言模型工厂”。通俗解释一下现在市面上有很多强大的语言模型比如大家可能听说过的LLaMA、GPT等等。但是这些模型就像刚从工厂出来的“通用产品”要让它帮你写邮件、做翻译或者当客服就需要根据你的具体任务对它进行“再培训”这个过程就叫做微调Fine-Tuning。那么问题来了不同的模型比如LLaMA和ChatGLM微调方法不一样很麻烦。微调需要很多计算资源比如很贵的显卡成本很高。微调过程复杂对新手不友好。LLAMA FACTORY就是为了解决这些问题而生的它就像一个大工具箱把100多种不同语言模型的微调方法都统一到了一起。无论你用哪个模型都可以用同样的、高效的方法来微调它大大降低了使用门槛和计算成本。举个例子假设你开了一家电商公司想训练一个智能客服。以前你需要为不同的模型A模型、B模型分别学习不同的微调方法费时费力。现在有了LLAMA FACTORY你只需要学会这一种工具就可以轻松微调A模型或B模型来当你的客服又快又省事。摘要高效微调对于将大语言模型LLMs适配到下游任务至关重要。然而在不同的模型上实现这些方法需要付出不小的努力。我们提出了LLAMA FACTORY这是一个集成了多种前沿高效训练方法的统一框架。它提供了一个解决方案可以通过内置的Web用户界面LLAMA BOARD灵活定制100多种大语言模型的微调而无需编写代码。我们在语言建模和文本生成任务上通过实验验证了我们框架的效率和有效性。该框架已在 https://github.com/hiyouga/LLaMA-Factory 发布并获得了超过 25000 个星标和 3000 个分支。1 引言想象一下有一个超级聪明的“大脑”它不仅能回答问题、翻译语言还能从一堆信息里提取关键内容。这就是大语言模型它展现出了惊人的推理能力并推动了问答系统、机器翻译和信息抽取等众多应用的发展。随之而来的是开源社区涌现了大量的大语言模型。比如Hugging Face 的开放大语言模型排行榜上就有超过5000个模型这为想要利用大语言模型力量的人们提供了极大的便利。但是问题来了这些模型通常有海量的参数可以理解为模型的“知识量”或“复杂度”。如果我们想用有限的资源比如普通的电脑显卡来训练它让它适应某个特定任务比如专门回答医学问题这成本太高了几乎不可能。怎么办呢一个流行的解决方案是高效微调Efficient Fine-tuning。这种方法可以大大降低训练大语言模型以适应各种任务时的成本。然而社区里贡献了各种各样的高效微调方法却缺少一个系统性的框架能够把这些方法统一起来适配到不同的大语言模型上并为用户提供一个友好的界面来自定义训练。为了解决上述问题我们开发了LLAMA FACTORY框架。这个框架的目标是让大语言模型的微调变得“民主化”——也就是让更多人能轻松使用。它通过可扩展的模块统一了多种高效微调方法使得用极少的资源和高效率来微调数百个大语言模型成为可能。此外它还简化了常用的训练方法包括生成式预训练Generative Pre-training监督式微调Supervised Fine-tuning, SFT基于人类反馈的强化学习Reinforcement Learning from Human Feedback, RLHF直接偏好优化Direct Preference Optimization, DPO用户可以利用命令行或网页界面以最少甚至无需编码的方式来定制和微调他们的大语言模型。LLAMA FACTORY 主要由三个核心模块构成模型加载器Model Loader、数据处理器Data Worker和训练器Trainer。我们最大限度地减少了这些模块对特定模型和数据集的依赖使得框架能够灵活扩展到数百个模型和数据集。具体来说我们建立了一个模型注册表模型加载器可以通过识别精确的层将适配器Adapter精确地附加到预训练模型上。我们开发了一种数据描述规范数据处理器可以通过对齐相应的数据列来收集数据集。我们提供了即插即用的最先进高效微调方法实现训练器可以通过替换默认方法来激活它们。我们的设计使得这些模块可以在不同的训练方法中重复使用显著降低了集成成本。LLAMA FACTORY 使用 PyTorch 实现并极大地受益于 Transformers、PEFT 和 TRL 等开源库。在此基础上我们提供了一个开箱即用、具有更高抽象层次的框架。此外我们还基于 Gradio 构建了LLAMA BOARD使得微调大语言模型完全不需要编码。表 1LLAMAFACTORY 与流行的大语言模型微调框架功能对比。LLAMAFACTORY 在 Apache-2.0 许可证下开源。它在 GitHub 上已经获得了超过 25,000 颗星和 3,000 次分支并且在 Hugging Face Hub 上有数百个开源模型是基于 LLAMAFACTORY 构建的。例如Truong 等人基于 LLAMAFACTORY 构建了 GemSura-7B 模型揭示了 Gemma 模型的跨语言能力。此外数十项研究已经利用我们的框架来探索大语言模型。2 相关工作随着对微调大语言模型LLMs的需求快速增长许多用于将LLM适配到特定目的的框架被开发出来。LLAMAFADapter(Zhang et al., 2024) 通过使用零初始化的注意力zero-initialized attention来高效地微调Llama模型 (Touvron et al., 2023a)。FastChat(Zheng et al., 2023) 是一个专注于为聊天完成chat completion目的训练和评估LLM的框架。LitGPT(AI, 2023) 提供了生成模型的实现并支持多种训练方法。Open-Instruct(Wang et al., 2023d) 提供了训练指令instruct模型的方案。Colossal AI(Li et al., 2023b) 采用了先进的并行策略进行分布式训练。LMFlow(Diao et al., 2024) 支持为特定领域或任务训练LLM。GPT4All(Anand et al., 2023) 允许LLM在消费级设备上运行同时也提供微调能力。与现有的竞争框架相比LLAMAFACTORY支持更广泛的高效微调技术和训练方法。我们在表1中列出了代表性框架之间的特性对比。表2LLAMAFACTORY中特色微调技术之间的兼容性。3 高效的微调技术高效的大型语言模型LLM微调技术主要可以分为两大类一类侧重于优化另一类侧重于计算。高效的优化技术其主要目标是在尽可能降低成本的前提下微调LLM的参数。高效的计算方法其主要目标是减少LLM所需计算的时间或空间。换句话说优化技术关心“花更少的钱”而计算方法关心“用更少的资源时间/内存”。LLAMAFACTORY框架中包含的方法在表2中列出。在接下来的章节中我们将介绍这些高效的微调技术并展示将它们集成到我们的框架中所带来的显著效率提升。3.1 高效优化首先我们来概览一下LLAMAFACTORY中用到的高效优化技术。冻结微调freeze-tuning这个方法Houlsby等人2019的思路是“冻住大部分只动一小部分”。它会把模型里大部分的参数都固定住冻结只去微调解码器层中一个小子集里的剩余参数。这就像你有一本厚厚的说明书但只允许修改其中几页的内容其他页都保持原样以此来节省计算资源。梯度低秩投影Gradient low-rank projection, GaLore这个方法Zhao等人2024则更巧妙一些。它不冻结参数而是把计算出来的梯度指导参数更新的方向投影到一个更低维度的空间里。这样做的好处是你可以在内存高效的情况下对整个模型的所有参数进行学习。简单来说就是把原本复杂、庞大的更新信息压缩成一个精简版再用这个精简版去更新模型。BADAM这个方法Luo等人2024利用了块坐标下降Block Coordinate Descent, BCD的思想。想象一下你要优化一个巨大的模型如果一次性考虑所有参数计算量会非常大。BCD的策略是“分而治之”把参数分成很多块然后轮流优化每一块而暂时固定其他块。BADAM就用这个思路来高效地优化海量参数。低秩适应Low-Rank Adaptation, LoRA这是一个非常流行的方法Hu等人2022。它的核心思想是“原封不动外加补丁”。它会把预训练好的模型权重全部冻结原封不动然后在指定的层比如注意力层旁边引入一对可训练的低秩矩阵就是两个又窄又长的矩阵。在微调时只训练这对新加的“补丁”矩阵然后用它们的结果和原始的冻结权重相加来得到最终的输出。这极大地减少了需要训练的参数数量。QLoRA这是LoRA的“升级版”Dettmers等人2023。它在LoRA的基础上又加上了量化Quantization技术。量化就是把模型权重从高精度比如32位浮点数转换成低精度比如4位整数从而进一步减少内存占用。所以QLoRA LoRA 量化是双重省内存的利器。DoRA这个方法Liu等人2024对预训练权重进行了“解剖”。它将权重分解为幅度magnitude和方向direction两个部分。在微调时主要更新方向部分以此来提升模型性能。你可以把它想象成调整一个向量我们保持它的长度幅度大致不变但精细地调整它指向的方向。LoRA这个方法Hayou等人2024是为了解决LoRA可能存在的“次优”问题而提出的。在标准的LoRA中新增的两个低秩矩阵的学习率通常是相同的。LoRA发现为这两个矩阵设置不同的、经过精心设计的学习率可以让模型收敛得更好、效果更优。PiSSA这个方法Meng等人2024在初始化LoRA的“补丁”矩阵时动了脑筋。它不像LoRA通常用随机初始化而是使用预训练权重矩阵的主成分principal components来初始化这些适配器。这样做的好处是这些“补丁”从一开始就包含了原始权重中最关键的信息因此模型能够更快地收敛到好的结果。3.2 高效计算在LLAMAFACTORY中我们整合了一系列高效计算技术。常用的技术包括混合精度训练Mixed Precision Training和激活检查点Activation Checkpointing。通过分析注意力层的输入输出开销Flash Attention引入了一种对硬件友好的方法来加速注意力计算。 Attention则通过移位稀疏注意力来解决长上下文带来的挑战从而减少了在微调长上下文大语言模型时的内存占用。各种量化策略通过使用更低精度的权重表示降低了大语言模型的内存需求。然而量化模型的微调通常仅限于像LoRA这样的基于适配器的技术。Unsloth集成了Triton来实现LoRA的反向传播这减少了梯度下降过程中的浮点运算次数从而加速了LoRA的训练。LLAMAFACTORY将这些技术无缝结合成一个整体以提升大语言模型微调的效率。这使得内存占用从混合精度训练时的每个参数18字节或半精度训练时的每个参数8字节降低到了仅每个参数0.6字节。关于LLAMAFACTORY中各组件的更多细节将在后续章节中提供。4 LLAMAFACTORY 框架LLAMAFACTORY 框架主要由三个核心模块构成模型加载器Model Loader、数据处理器Data Worker和训练器Trainer。模型加载器Model Loader它的职责是管理和操作各种不同的模型架构以便进行微调。它既支持大语言模型Large Language Models, LLMs也支持视觉语言模型Vision Language Models, VLMs。换句话说无论你的模型是纯文本的还是能理解图片的这个模块都能帮你加载和准备好。数据处理器Data Worker这个模块负责处理来自不同任务的数据。它有一个设计良好的处理流程能够支持单轮对话和多轮对话两种数据格式。例如单轮对话可能是一个简单的问答Q: 天空是什么颜色的 A: 蓝色的。而多轮对话则更像一次连续的聊天用户你好。 助手你好有什么可以帮您 用户今天天气怎么样。训练器Trainer这个模块负责应用高效的微调技术到不同的训练方法中。它支持预训练Pretraining、指令微调Instruction Tuning和偏好优化Preference Optimization等多种训练范式。除此之外LLAMAFACTORY 还提供了一个名为LLAMABOARD的友好可视化界面。这个界面让用户能够无代码地配置和启动单个大语言模型的微调任务并且可以同步监控训练状态。我们在下面的图1中展示了这些模块之间的关系以及 LLAMAFACTORY 的整体架构。图1LLAMAFACTORY 的架构。4.1 模型加载器这一节首先介绍模型加载器中的四个组成部分模型初始化、模型修补、模型量化和适配器附加然后描述我们通过在处理微调期间的参数浮点精度来适应广泛设备的方法。模型初始化我们利用Transformers库的自动类来加载预训练模型并初始化参数。简单来说就是用一个“万能钥匙”来打开不同的模型文件。具体来说对于视觉语言模型我们使用AutoModelForVision2Seq类来加载。对于其他模型我们使用AutoModelForCausalLM类来加载。tokenizer分词器则使用AutoTokenizer类与模型一起加载。特殊情况处理词汇表扩容有时候分词器的词汇量比如有10万个词会超过模型嵌入层比如只能装5万个词的容量。这时我们会调整嵌入层的大小并用一种“带噪声的平均初始化”方法来初始化新增的参数。RoPE缩放因子RoPE是一种让模型理解位置信息的技术。为了确定它的缩放因子我们计算一个比例最大输入序列长度 / 模型的上下文长度。这就像是根据你需要的最大句子长度来调整模型的“记忆窗口”大小。模型修补为了启用 注意力机制我们采用了一种叫做“猴子补丁”的技术来替换模型的前向计算过程。你可以把它想象成给汽车的发动机模型的核心计算换了一个更高效的零件。Flash Attention对于Flash Attention一种加速注意力计算的技术我们直接使用其原生类因为它已经被广泛支持。MoE模型优化对于混合专家模型为了防止在DeepSpeed ZeRO stage-3优化过程中对动态层进行过度分割我们将MoE块设置为“叶子模块”这就像把一整个功能模块打包不让优化器拆开它。模型量化量化就是把模型参数从高精度如32位浮点数转换为低精度如8位或4位整数从而大幅减少模型大小和内存占用。动态量化我们可以通过bitsandbytes库使用LLM.int8方法将模型动态量化为8位或4位。4位量化对于4位量化我们采用QLoRA中使用的“双重量化”和“4位正态浮点数”技术以获得更好的效果。后训练量化我们也支持微调那些已经通过GPTQ、AWQ、AQLM等后训练量化方法处理过的模型。重要提示我们无法直接微调已经被量化的权重本身。因此量化模型只兼容基于适配器的方法如LoRA即只训练新增的小参数而不动原始的大模型参数。适配器附加适配器是一种轻量级的微调方法我们只在原始模型上附加一些小的、可训练的参数层。自动识别我们通过遍历模型的所有层自动识别出适合附加适配器的位置。附加位置为了获得更好的收敛效果我们将低秩适配器附加到所有的线性层上。实现工具PEFT库为我们实现LoRA、rsLoRA、DoRA和PiSSA等适配器方法提供了极其便捷的方式。训练加速我们使用Unsloht中的反向计算方法来替换原有的以加速训练过程。RLHF支持为了进行基于人类反馈的强化学习我们会在transformer模型的顶部附加一个“价值头”层它的作用是将每个token的表示映射成一个标量值可以理解为对该token的“打分”。精度适应我们根据计算设备的能力来处理预训练模型的浮点精度。这就像根据不同的路况设备选择不同的驾驶模式精度。NVIDIA GPU如果计算能力≥8.0则采用bfloat16精度。否则采用float16精度。昇腾NPU和AMD GPU采用float16精度。非CUDA设备采用float32精度。混合精度训练在混合精度训练中为了训练稳定性我们将所有可训练参数设置为float32。但在半精度训练中我们仍将可训练参数保留为bfloat16。表3LLAMAFACTORY中的数据集结构。4.2 数据工作者我们开发了一个数据处理流水线包括数据集加载、数据集对齐、数据集合并和数据集预处理。它将不同任务的数据集标准化为统一的格式使我们能够在各种格式的数据集上对模型进行微调。数据集加载我们利用 Datasets 库来加载数据该库允许用户从 Hugging Face Hub 加载远程数据集或通过脚本或文件读取本地数据集。Datasets 库显著减少了数据处理过程中的内存开销并使用 Arrow 加速样本查询。默认情况下整个数据集会被下载到本地磁盘。但是如果一个数据集太大而无法存储我们的框架提供了数据集流式处理功能可以在不下载的情况下对其进行迭代。数据集对齐为了统一数据集格式我们设计了一个数据描述规范来描述数据集的结构。例如alpaca 数据集有三列instruction指令、input输入和 output输出。我们根据数据描述规范将数据集转换为与各种任务兼容的标准结构。数据集结构的一些示例如下表所示。数据集合并统一的数据集结构为合并多个数据集提供了一种高效的方法。对于非流式模式下的数据集我们只需在训练期间数据集被打乱之前将它们连接起来。然而在流式模式下简单地连接数据集会妨碍数据打乱。因此我们提供了从不同数据集交替读取数据的方法。数据集预处理LLAMAFACTORY 是为微调文本生成模型而设计的主要用于聊天补全。聊天模板是这些模型中的一个关键组件因为它与这些模型的指令跟随能力高度相关。因此我们提供了数十种聊天模板可以根据模型类型自动选择。我们在应用聊天模板后使用分词器对句子进行编码。默认情况下我们只计算补全部分的损失而忽略提示部分。可选地我们可以利用序列打包来减少训练时间这在执行生成式预训练时会自动启用。4.3 训练器高效训练我们将最先进的、高效的微调方法整合到了训练器中包括 LoRA、GaLore 和 BAdam。具体做法是用这些新方法替换掉训练器里默认的组件。这些微调方法与训练器本身是相互独立的所以它们可以很方便地应用到各种不同的任务上。我们是怎么做的呢对于预训练和监督微调我们使用的是 Transformers 库里的训练器。对于RLHF和DPO我们使用的是 TRL 库里的训练器。我们还从 TRL 库里引入了像KTO和ORPO这样的高级偏好优化方法的训练器。为了让不同的训练方法能正确工作我们使用了专门定制的“数据整理器”。特别是对于偏好数据比如RLHF中“被选中的回答”和“被拒绝的回答”为了匹配训练器需要的输入格式我们是这样构建一个批次的在一个批次里前 个样本是“被选中的例子”后 个样本是“被拒绝的例子”。这样一个批次总共就有 个样本。模型共享的RLHF让 RLHF 训练能在消费级设备比如个人电脑上运行对于普及大语言模型微调至关重要。但传统 RLHF 很难做到这一点因为它需要同时加载四个不同的模型策略模型、价值模型、参考模型、奖励模型内存开销巨大。为了解决这个问题我们提出了模型共享的RLHF方法使得整个 RLHF 训练过程只需要一个预训练模型。具体是怎么实现的呢第一步训练奖励模型。我们给这个预训练模型加上一个“适配器”和一个“价值头”然后用奖励建模的目标函数去训练它们。训练完成后这个模型就能计算奖励分数了。第二步训练策略模型。我们再初始化另一套适配器和价值头用 PPO 算法去训练它们。动态切换。在训练过程中我们利用 PEFT 库提供的set_adapter和disable_adapter方法动态地切换使用哪一套适配器和价值头。这样同一个预训练模型就能在不同的时刻分别扮演策略模型、价值模型、参考模型和奖励模型。据我们所知这是第一个支持在消费级设备上进行 RLHF 训练的方法。分布式训练我们还可以将上面提到的这些训练器与DeepSpeed框架结合起来进行分布式训练。我们主要采用数据并行的方式来充分利用所有计算设备的能力。通过利用 DeepSpeed 的 ZeRO 优化器我们可以通过参数分区或卸载到 CPU/硬盘的方式进一步降低内存消耗。4.4 实用工具在推理阶段我们复用了来自数据工作器Data Worker的聊天模板来构建模型输入。我们提供了使用Transformers库和vLLM库来采样模型输出的支持这两个库都支持流式解码。此外我们还实现了一个OpenAI风格的API。这个API利用了vLLM的异步LLM引擎和分页注意力paged attention机制能够提供高吞吐量的并发推理服务。这使得将微调后的大语言模型部署到各种应用中变得更加容易。模型评估我们包含了几种用于评估大语言模型的指标。这些指标包括多项选择题任务例如MMLU、CMMLU和C-Eval。同时也包括计算文本相似度分数的指标例如BLEU-4和ROUGE。这个功能方便用户衡量微调后模型的能力。举个例子假设你微调了一个模型来写诗。你可以用MMLU测试它的常识用BLEU-4来比较它生成的诗句和经典诗句的相似度从而全面了解模型的能力。4.5 LLAMA BOARDLLAMA FACTORY的统一界面LLAMA BOARD是一个基于GradioAbid等人2019的统一用户界面它允许用户无需编写任何代码即可定制大语言模型LLMs的微调。它提供了一个简化的模型微调和推理服务使用户能够轻松探索大语言模型在其环境中的潜力。LLAMA BOARD具有以下显著特点。易于配置LLAMA BOARD允许我们通过与网页界面交互来自定义微调参数。我们为大多数参数提供了推荐给大多数用户的默认值从而简化了配置过程。此外用户可以在网页界面上预览数据集以进行验证。可监控的训练在训练过程中训练日志和损失曲线会被可视化并实时更新使用户能够监控训练进度。这个功能为分析微调过程提供了有价值的洞察。表4在LLAMA FACTORY中使用不同微调方法的训练效率比较。每个模型中GaLore、LoRA和QLoRA的最佳结果已加粗。灵活评估LLAMA BOARD支持计算数据集上的文本相似度分数来自动评估模型或者通过与模型聊天来进行人工评估。多语言支持LLAMA BOARD提供了本地化文件便于集成新语言来渲染界面。目前我们支持三种语言英语、俄语和中文这使得更广泛的用户能够使用LLAMA BOARD来微调大语言模型。5 实证研究我们系统地从两个角度评估了LLAMAFACTORY训练效率从内存使用、吞吐量和困惑度perplexity方面进行评估。下游任务适应能力评估其适应下游任务的有效性。5.1 训练效率实验设置我们使用了PubMed数据集它包含了超过3600万条生物医学文献记录。我们从这些文献的摘要中提取了大约40万个token来构建训练语料库。然后我们使用生成式预训练目标结合多种高效微调方法对Gemma-2B、Llama2-7B和Llama2-13B模型进行微调。我们比较了以下方法的微调结果全量微调更新模型的所有参数。冻结微调只更新模型的一部分参数。GaLore一种低秩梯度投影方法。LoRA低秩适应。4位QLoRA量化低秩适应。微调完成后我们计算模型在训练语料库上的困惑度以此来评估不同方法的效率。同时我们也记录了预训练模型的困惑度作为基线。实验细节在这个实验中我们采用了以下设置学习率批次大小512个token优化器使用8位AdamW优化器精度为bfloat16。内存优化启用了激活检查点以减少内存占用。冻结微调只微调模型的最后3个解码器层。GaLore设置秩为128缩放因子为2.0。LoRA/QLoRA设置在所有线性层上附加适配器秩为128alpha值为256。硬件所有实验均在单张NVIDIA A100 40GB GPU上进行。软件优化所有实验都启用了Flash Attention。对于LoRA和QLoRA实验还启用了Unsoloth优化。代码实现# 定义学习率learning_rate 10 ** -5print(f学习率设置为{learning_rate})# 定义批次大小batch_size 512print(f批次大小设置为{batch_size})# 定义GaLore参数galore_rank 128galore_scale 2.0print(fGaLore参数秩{galore_rank}, 缩放因子{galore_scale})# 定义LoRA/QLoRA参数lora_rank 128lora_alpha 256print(fLoRA/QLoRA参数秩{lora_rank}, alpha{lora_alpha})结果分析关于训练效率的结果展示在下面的表格中。其中内存指训练过程中消耗的峰值内存。吞吐量指每秒训练的token数量。PPL指模型在训练语料库上的困惑度。由于全量微调Llama2-13B会导致内存溢出因此没有记录其结果。我们观察到QLoRA始终具有最低的内存占用因为它的预训练权重以较低的精度表示。LoRA通过Unsoloth对LoRA层的优化表现出更高的吞吐量。GaLore在大型模型上取得了更低的困惑度而LoRA在较小的模型上表现更优。换句话说如果你想节省内存QLoRA是最好的选择如果你想训练得更快LoRA更胜一筹而对于大模型的效果GaLore可能略好一些。5.2 在下游任务上进行微调实验设置为了评估不同高效微调方法的有效性我们比较了各种模型在下游任务上微调后的性能。我们使用了三个有代表性的文本生成任务来构建互不重叠的训练集和测试集分别是CNN/DM、XSum和AdGen每个任务分别使用了2000个和1000个例子。我们选择了几种经过指令调优instruction-tuned的模型并使用不同的微调方法按照序列到序列sequence-to-sequence任务的方式对它们进行微调。然后我们比较了全参数微调full-tuning, FT、GaLore、LoRA和4-bit QLoRA的结果。微调完成后我们在每个任务的测试集上计算ROUGE分数。我们还将原始指令调优模型的分数作为基线baseline纳入比较。实验结果下游任务的评估结果如表5所示。我们报告的是ROUGE-1、ROUGE-2和ROUGE-L分数的平均值。表格中没有包含Gemma-7B和Qwen2-7B模型的部分结果因为GaLore方法可能不适用于它们。从结果中我们发现一个有趣的现象在大多数情况下LoRA和QLoRA取得了最佳性能除了ChatGLM3-6B和Llama2-7B模型在CNN/DM和AdGen数据集上的表现。这一现象凸显了这些高效微调方法在使大语言模型LLMs适应特定任务方面的有效性。此外我们观察到在这些模型中Llama3-8B取得了最佳的整体性能而Yi-6B和Mistral-7B在同等规模的模型中表现出了有竞争力的性能。例如你可以把微调想象成“专业培训”。一个通用的大语言模型就像一个刚毕业的大学生知识面广但不专精。全参数微调就像让他回炉重造把所有知识都按新领域更新一遍成本高。而LoRA这类方法就像给他报了一个高效的“周末培训班”只学习新任务最关键的那部分“技能包”适配器成本低效果却常常很好。实验细节在这个实验中我们将学习率learning rate设置为 批大小batch size设置为4最大输入长度设置为2048。我们使用8-bit AdamW优化器以bfloat16精度并启用激活检查点activation checkpointing来微调这些模型。对于GaLore方法我们将其秩rank和缩放因子scale分别设置为128和2.0。 对于LoRA和QLoRA方法我们将适配器adapters附加到所有线性层并将其秩rank和alpha参数分别设置为128和256。 所有实验均在NVIDIA A100 40GB GPU上进行。代码实现# 这里我们模拟一下实验中的关键超参数设置# 注意以下代码不涉及复杂的训练过程仅用于展示参数配置# 定义实验超参数learning_rate 1e-5# 学习率即公式中的 10^{-5}batch_size 4max_input_length 2048# GaLore 方法的参数galore_rank 128galore_scale 2.0# LoRA/QLoRA 方法的参数lora_rank 128lora_alpha 256# 示例打印参数配置print(实验超参数配置)print(f学习率 (learning rate): {learning_rate})print(f批大小 (batch size): {batch_size})print(f最大输入长度: {max_input_length})print(f\nGaLore 参数 - 秩 (rank): {galore_rank}, 缩放因子 (scale): {galore_scale})print(fLoRA/QLoRA 参数 - 秩 (rank): {lora_rank}, alpha: {lora_alpha})# 示例一个简单的计算模拟使用学习率更新参数的过程概念性展示def update_parameters_with_lr(parameters, gradients, lr): 使用梯度下降和学习率更新参数。 这是一个简化的示例实际优化器如AdamW更复杂。 updated_parameters parameters - lr * gradients return updated_parameters# 假设某个参数的初始值和梯度initial_param 1.0gradient 0.5updated_param update_parameters_with_lr(initial_param, gradient, learning_rate)print(f\n参数更新示例)print(f初始参数值: {initial_param})print(f梯度值: {gradient})print(f应用学习率 {learning_rate} 更新后的参数值: {updated_param})表5在LLAMA FACTORY中使用不同微调方法在特定任务上的性能以ROUGE计比较。每个模型的最佳结果加下划线每个任务的最佳结果加粗。6 结论与未来工作在这篇论文中我们介绍了LLAMA FACTORY这是一个用于高效微调大语言模型LLMs的统一框架。通过模块化的设计我们最小化了模型、数据集和训练方法之间的依赖关系并提供了一种集成方法可以用多种高效微调技术对超过100种大语言模型进行微调。此外我们还提供了一个灵活的网页界面LLAMA BOARD使得无需编码即可对大语言模型进行定制化的微调和评估。我们通过实验在语言建模和文本生成任务上验证了我们框架的效率和有效性。最后我在一线科技企业深耕十二载见证过太多因技术更迭而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我整理出这套 AI 大模型突围资料包✅AI大模型学习路线图✅Agent行业报告✅100集大模型视频教程✅大模型书籍PDF✅DeepSeek教程✅AI产品经理入门资料完整的大模型学习和面试资料已经上传带到CSDN的官方了有需要的朋友可以扫描下方二维码免费领取【保证100%免费】为什么说现在普通人就业/升职加薪的首选是AI大模型人工智能技术的爆发式增长正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议到全国两会关于AI产业发展的政策聚焦再到招聘会上排起的长队AI的热度已从技术领域渗透到就业市场的每一个角落。智联招聘的最新数据给出了最直观的印证2025年2月AI领域求职人数同比增幅突破200%远超其他行业平均水平整个人工智能行业的求职增速达到33.4%位居各行业榜首其中人工智能工程师岗位的求职热度更是飙升69.6%。AI产业的快速扩张也让人才供需矛盾愈发突出。麦肯锡报告明确预测到2030年中国AI专业人才需求将达600万人人才缺口可能高达400万人这一缺口不仅存在于核心技术领域更蔓延至产业应用的各个环节。资料包有什么①从入门到精通的全套视频教程⑤⑥包含提示词工程、RAG、Agent等技术点② AI大模型学习路线图还有视频解说全过程AI大模型学习路线③学习电子书籍和技术文档市面上的大模型书籍确实太多了这些是我精选出来的④各大厂大模型面试题目详解⑤ 这些资料真的有用吗?这份资料由我和鲁为民博士共同整理鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。所有的视频教程由智泊AI老师录制且资料与智泊AI共享相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念通过动态追踪大模型开发、数据标注伦理等前沿技术趋势构建起前沿课程智能实训精准就业的高效培养体系。课堂上不光教理论还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作把课本知识变成真本事如果说你是以下人群中的其中一类都可以来智泊AI学习人工智能找到高薪工作一次小小的“投资”换来的是终身受益应届毕业生无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界。业务赋能 突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型。获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】**