LoRA Land: 310个经微调的大语言模型可媲美GPT-4

摘要

低秩自适应 (LoRA) 已成为大语言模型 (LLM) 参数有效微调 (PEFT) 中最广泛采用的方法之一。LoRA 减少了可训练参数的数量和内存使用,同时达到了与全面微调相当的性能。该研究旨在评估在实际应用中训练和服务使用 LoRA 微调的 LLM 的可行性。首先,该研究测量了在 10 个基础模型和 31 个任务上使用量化低秩适配器微调的 LLM 的质量,总共有 310 个模型。研究发现,4 位 LoRA 微调模型的平均性能优于基础模型 34 个点,优于 GPT-4 10 个点。其次,该研究调查了用于微调的最有效的基础模型,并评估了任务复杂度启发式方法在预测微调结果方面的相关性和预测能力。最后,该研究评估了 LoRAX 的延迟和并发能力,LoRAX 是一个开源的多 LoRA 推理服务器,通过共享基础模型权重和动态适配器加载,促进了在单个 GPU 上部署多个 LoRA 微调模型。LoRAX 为 LoRA Land 提供支持,LoRA Land 是一个 Web 应用程序,在单个 NVIDIA A100 GPU 上托管了 25 个 LoRA 微调的 Mistral-7B LLM,内存为 80GB。LoRA Land 突出了使用多个专门的 LLM 相比单个通用 LLM 在质量和成本效益方面的优势。

在这里插入图片描述

1 引言

微调大语言模型 (LLM) 是提高其性能以及添加理想行为或消除不良行为的一种非常有效的方法。低秩自适应 (LoRA) 是最广泛采用的 LLM 微调方法之一,在使用少量可训练参数的情况下,展示了使较小的专门模型在特定任务上优于更大、更通用的模型的巨大前景,挑战了更大的通用模型总是优于较小模型的观念。

尽管新的基础模型不断推出,如 Gemma、Llama 和 Mistral,它们声称易于在各种任务上进行微调,但对这些模型的全面评估仍然很少。MMLU 和 HellaSwag 等基于广泛知识和推理的基准通常用于 Open LLM Leaderboard 等排行榜,但是,这不一定能代表任务特定的性能,无论是在微调之前还是之后。技术报告通常没有指定训练配置,关于易于微调的说法也没有得到衡量。虽然微调的有效性已被广泛证明,但缺乏大规模实验使几个关键问题没有得到回答,特别是关于通过微调提高性能的一致性和可预测性,以及模型大小、基础模型和任务复杂性的影响。

评估对提示很敏感,出版物和库中使用的公式存在显著差异。技术报告通常使用专门的、特定于数据集的提示策略来展示模型性能,例如角色扮演提示(例如"假设你是专家")、maj@k 投票、不同的 n-shot、MedPrompt 和 chain-of-thought 提示。虽然这些方法旨在突出模型的最佳能力,但使用如此多样化的提示技术会使跨模型和任务的直接比较具有挑战性。

在这项工作中,该研究通过对 10 个基础模型和 31 个任务进行广泛分析,总共分析了 310 个使用 LoRA 微调的 LLM,以弥补这些差距。该研究特意保持所有 LLM 都使用相同的训练参数,并强调使用 zero 或 single-shot 的 completion 风格提示进行查询,其中包含简单的指令,如"解决以下多项选择问题"。总而言之,这提供了一个标准化的框架,用于比较和评估在特定任务上,使用一致条件通过 LoRA 微调的不同基础模型的内在能力。

该研究还旨在探讨在实际生产应用中服务多个 LoRA 模型的可行性。LoRAX 通过利用共享的基础模型权重和动态适配器加载,实现了在单个 GPU 上同时服务多个 LoRA 模型。该研究测量了这个库的延迟和并发指标。该研究使用 LoRAX 在单个 A100 上部署了 25 个微调过的 LLM,用于 LoRA Land Web 应用程序。该研究的成功实施展示了服务多个专门的 LoRA 自适应 LLM 的经济效率。

最后,该研究在 LoRA Land Web 应用程序上发布了所有 25 个微调模型,并在 (Hugging Face) 上发布了它们的训练配方,以允许社区进一步分析和复制。

2 相关工作

参数有效微调 (PEFT) 方法旨在减少大规模模型微调的高昂成本。与总参数数量相比,它们通过训练相对较少的参数子集来实现这一目标,以适应下游任务。现有的 PEFT 策略可分为两类:基于提示的方法在初始输入中添加额外的软标记(提示),并仅专注于微调这些可训练向量。基于适配器的方法在原始冻结主干中引入额外的可训练模块。LoRA 通过在冻结权重层旁边添加少量可训练的低秩矩阵来扩展基于适配器的微调,这引入了可忽略的推理开销。LoRA 的变体包括使用 SVD 分解来修剪不太重要的奇异值以进行更有效的更新的工作。另一个变体 DoRA 将预训练权重分解为幅度和方向分量,同时将 LoRA 应用于后者。QLoRA 使用 4 位 NF4 权重、双量化来减少内存占用,以及分页优化器来缓解内存峰值,从而进一步优化了 LoRA 的设计。在该研究的实验中,主要关注具有 4 位量化的 LoRA 的原始实现。

LoRA 模型的高效服务。服务多个微调模型的主要挑战是:

  1. 可扩展性:随着对模型推理的需求增长,系统必须有效地扩展以处理增加的负载。这不仅涉及扩展计算资源,还涉及管理模型之间的负载分配以保持性能。
  2. 成本:服务多个微调模型所需的计算资源可能导致显著的成本。在保持高性能和可用性的同时有效管理这些成本是一个主要挑战。

Segmented Gather Matrix-Vector Multiplication (SGMV) 等技术旨在通过优化计算执行方式和资源使用来解决这些挑战。DeepSpeed、FasterTransformer 和 vLLM 等开源工具也旨在实现微调模型的经济高效和可扩展的服务。在本文中,该研究使用 LoRAX,它专门设计用于使用 LoRA 微调的 LLM 的高效服务。LoRAX 支持动态适配器加载,因此可以在推理期间异步下载适配器,支持多个模型系列,如 Llama 和 Mistral,以及 bitsandbytes 量化模型。

3 方法

3.1 任务选择

在为该研究选择数据集和任务时,该研究优先考虑那些可通过 Kaggle 和 HuggingFace 广泛获得的数据集和任务,以及常用于基准测试的数据集和任务,例如 Open LLM Leaderboard 上的那些。

该研究的选择包括用于广泛领域知识的 MMLU 数据集、用于内容审核的 Jigsaw、用于 SQL 生成的 WikiSQL,以及 GLUE 基准。该研究将这些数据集涵盖的任务分为 5 种类型:

  • 经典 NLP:源自 2018 年至 2022 年发布的常见 NLP 数据集的任务,涵盖命名实体识别、数据到文本和标题生成等任务。
  • 编码:SQL 查询生成和 Python 编程问题,主要集中在算法和面向对象设计上。
  • 知识:基于知识的多项选择题。
  • 推理:基于推理的多项选择题。
  • 数学:数值、基于数学的文字问题。

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

3.2 提示选择

之前的研究已经证明,利用提示工程技术,如使用多数投票、包含多个上下文示例(n-shot)、MedPrompt、chain-of-thought 提示等,可以增强模型在特定任务上的性能。

在该研究的评估中,有意选择不为任何特定数据集、任务或模型采用额外的提示工程或调优策略。尽管使用更多的上下文示例或在 n-shot 提示中使用更有选择性的方法可能会产生更好的结果,但该研究优先考虑可重复性,并最大限度地减少可能因定制上下文学习而产生的偏差。相反,该研究选择对所有任务使用简单的零或单样本完成风格的提示。提示以完成的风格编写,如图 3 所述,以提供微调、指令调优和自动完成模型之间的公平比较。对于分类任务,提示包括所有可能的类别,以告知模型的响应。对于更专业的任务,描述预期输出格式具有挑战性,该研究使用单个上下文示例(来自已发布训练集的第一个示例)来指导模型。

最后,该研究遵循每个模型在 HuggingFace 上的文档中概述的规定的提示标记约定,以确保对预训练和指令调优的基础模型进行正确查询。这包括对于 Mistral Instruct 使用 <s>[INST] ... [/INST],对于 Gemma 的指令调优模型使用<bos><start_of_turn>user ... <end_of_turn><start_of_turn><model> 。有关应用于每个任务和模型的确切提示模板的详细信息,请参见附录 A。

在这里插入图片描述

3.3 基础模型

所有基础模型都列在表 2 中。该研究使用 GPT-4 (gpt-4-0613) 和 GPT-3.5-Turbo (gpt-3.5-turbo-0125) 作为两个强大的 LLM 基线。选择这十个基础模型的考虑因素包括它们在 AI 社区中的广泛采用、具有宽松许可的可用性以及技术报告的可用性。该研究特意选择参数 ≤ 80 亿的基础模型,以确保每个模型都可以在单个 A10G GPU 的资源限制内高效训练。

3.4 训练参数

每个模型都使用已发布的训练集进行训练。每个模型都训练 40000 个训练步骤,批量大小为 1,使用 bitsandbytes 进行 4 位量化,LoRA 秩为 8。该研究使用分页 adam 优化器,学习率为 0.002,余弦学习率调度器的预热分数为 0.03(1200 个训练步骤)。梯度在 16 个累积步骤上应用,有效批量大小为 16。

在这里插入图片描述

这些训练参数与梯度检查点相结合,允许每个 LLM 在具有 24 GB 内存的单个 A10 GPU 上进行微调。对于使用完整序列长度仍会导致 GPU OOM 错误的任务,该研究首先将示例输入截断为设置为所有任务输入的第 95 百分位数的最大序列长度。

3.5 评估

如表 2 所示,如果存在测试集并且已标记,则在测试集上评估模型,否则在验证集上评估。该研究采用一组定制的评估指标来准确评估所有任务的性能。对于分类任务使用准确性,对于回归任务使用(1 - 平均绝对误差),对于生成任务使用 rouge-L。WikiSQL 数据集有自己的评估套件,但由于集成 WikiSQL 评估套件存在挑战,该研究采用 ROUGE 指标作为评估查询质量的代理。对于编码,该研究使用 HumanEval。对于 GSM8K,使用基于正则表达式的启发式方法来提取数学答案,以与 Open LLM Leaderboard 保持一致。所有指标都在 0 到 1 的范围内,其中 0 是最差的分数,1 是最好的分数。

非微调模型通常会生成更多不同的输出,包括意外的伪影,如提示中未指定的额外单词或解释。对于分类任务,有时这些模型会生成实际的类字符串,如拼写出的"Yes/No"、“positive/negative"或"True/False”,而不是数据集中的真实的"1/0"标签,即使被指示这样做。为了最大限度地减少由于响应解析严格性而导致的指标扣减,该研究首先使用基于正则表达式的提取步骤将模型的响应映射到地面实况词汇表。如果生成的文本中有多个匹配项,则使用第一个有效匹配项。用于正则表达式预指标响应提取的代码可在 github.com/predibase/lora-bakeoff 上找到。

在这里插入图片描述

与 LLM API 相关的财务限制并非微不足道。例如,使用 GPT-4 评估完整的 WikiSQL 测试集(15,878 个示例)将花费约 400 美元,考虑到每个示例的平均输入(805)和输出(16)令牌计数。这些成本可能是高昂的,尤其是对于预算有限的组织或研究人员而言。为了在保持严谨性的同时管理成本,该研究将评估限制在评估集大于 1000 个示例的数据集的前 1000 个示例。该研究承认,这种方法可能会引入选择偏差,并影响研究结果的普遍性。该研究建议未来的研究考虑在资源允许的情况下进行更广泛的评估。

4 结果

如图 5 所示,LoRA 微调在基础模型和任务中提供了一致且显著的提升。在微调之前,GPT-4 和 GPT-3.5 在所有其他基础模型中表现最强,总分分别为 0.599 和 0.661。根据基础模型的不同,微调带来的性能提升范围从 +26.3 到 +51.2 点,平均为 +38.7(表 3)。根据任务的不同,最佳微调 LLM 的性能优于最佳基础模型 +8.3 到 +67.5 点,平均为 +25.0 点(表 4)。

在这里插入图片描述

在微调后,301/310 个模型超过了它们的基础模型对应物,而 224/310 个微调 LLM 超过了 GPT-4 设定的基准(表 4)。Gemma-2b 是微调后性能最差的基础模型,但也经历了整体微调的最大提升,这表明初始分数较低的模型可能从微调中获益最多(图 1)。

通过对所有任务的总体平均值,所有微调模型的性能都优于 GPT-3.5,所有 7B 微调模型的性能都优于 GPT-4,除了 gemma-7b 和 gemma-7b-it。Phi-2 的参数只有 20 亿,在微调后表现出与 GPT-4 相当的性能,这与 Phi-2 技术报告的发现一致。

在 31 个任务上平均,最佳微调 LLM(0.756)的整体性能显著高于 GPT-4(0.661)(表 4)。每个模型、每个任务的性能细分可以在附录 C 中找到。

5 讨论和分析

5.1 哪个基础模型最适合 LoRA 微调?

Mistral-7B 和 Zephyr-7b-beta 脱颖而出,尽管在不同的类别中。Mistral-7B 经常在最多的任务(10/31)上实现最高性能,表明适应性强(图 6)。相比之下,Zephyr 拥有最高的整体平均性能(0.731)。Mistral-7b、Mistral-7b-instruct 和 Zephyr-7b-beta(本身基于 Mistral-7b-instruct)在 LoRA 微调性能方面领先,超过了 Llama、Phi 和 Gemma 系列。

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

5.2 LoRA 微调的模型大小是否重要?2B vs. 7B

微调后,2B 参数的 Phi-2 模型在整体平均值上优于所有 2B 和 7B 的 Gemma 模型,仅比下一个最高性能的 7B 模型 Llama-2-7b 落后 1.9 个点(0.677 vs. 0.696)。尽管如此,该研究发现微调后的 7B 模型几乎总是优于微调后的 2B 模型(29/31 个任务)。特别是在 2B 参数模型(Phi 和 Gemma)中,该研究看到所有 Gemma instruct 模型在微调前都优于 Phi,但是在微调后,Phi-2 的性能优于所有其他 Gemma 模型。

在这里插入图片描述

5.3 使用指令调优模型或自动完成模型进行微调是否更好?

在图 7 中,该研究观察到在微调之前,尽管使用完成风格的提示,指令调优模型的性能优于自动完成模型。定性分析表明,自动完成模型更有可能"偏离轨道",生成长的不相关文本序列,而指令调优模型在正确尝试迫在眉睫的任务方面表现出更高的一致性。

微调后,模型之间的性能差异缩小了。平均指令调优模型略微优于平均自动完成模型,优势为 +0.009,但是在比较最佳微调指令调优模型和最佳微调自动完成模型时则相反(-0.002)。自动完成模型可能由于其更广泛和不太专门化的知识库,可能本质上更容易适应各种任务。然而,通过充分的微调,两种类型的模型都达到了相当的性能水平。该研究鼓励进一步的研究,探讨指令调优模型的基础设计如何影响它们在特定任务微调中的适应性和有效性。

在这里插入图片描述

5.4 GPT-4 在什么时候始终优于微调模型?

该研究观察到,微调的 LLM 在狭义任务(如 GLUE 基准中的任务)上具有明显优势。这些主要是面向分类的任务,微调的 LLM 达到了近 90% 的准确性,优于 GPT-4。GPT-4 继续在 6/31 个任务中优于微调模型,特别是在 Python 编码和 MMLU 等更广泛、更复杂的领域。

5.5 量化微调质量提升与任务复杂度之间的关系

如果微调模型在专门的"狭义"任务上表现更好,在"广义"任务上表现更差,我们能否在任务的复杂性和 LoRA 微调的效果之间建立预测关系?确定这种关系可以提供一个有价值的预测工具,用于在微调过程开始之前评估新任务的微调增强的潜在好处。

5.5.1 微调质量、质量提升和任务复杂度的启发式方法

为了量化任务复杂度,该研究使用了几种启发式方法:

  • 训练样本数量
  • 输入和输出的长度(μ、σ 和第 95 百分位数)
  • 可压缩性(μ 和 σ)
  • 内容多样性,该研究通过测量输入和输出之间的 rouge-L 相似性来近似(μ 和 σ)。

对于模型质量度量,该研究跟踪:

  • 基线 GPT-4 分数
  • 最佳微调模型与 GPT-4 的提升(“Max GPT-4 Lift”)
  • 基础模型的平均微调提升
  • 最佳基础模型分数(无微调)
  • 平均基础模型分数(无微调)
  • 最佳微调模型分数
  • 平均微调模型分数

完整示例请参考表 5。

在这里插入图片描述

5.5.2 将微调质量和质量提升与任务复杂度相关联

该研究发现了几个有趣的相关性,表明任务复杂度启发式方法与模型性能测量之间存在显著的相互作用。主要观察结果包括:

  • 可压缩性表现出双重影响,与最佳和平均基础模型分数呈正相关(0.36),而当可压缩性的方差增加时,与这些分数呈负相关(-0.37)。这表明,虽然均匀的可压缩性支持模型性能,但可压缩性的可变性较高往往会降低性能。
  • 输入和输出长度:输出长度更长、更多样化与 GPT-4 微调的最大提升呈正相关,表明具有扩展和更多样化输出的任务对微调没有不利影响。相反,输入和输出长度越长、越多样化,与绝对基础模型和微调模型分数呈负相关。
  • 输入和输出 Rouge-L 相似性:输入/输出 Rouge-L 相似性的标准差越大,与基础模型和微调模型分数呈负相关。这表明数据集内容相似性的可变性越大,可能会给模型学习带来困难。
  • 训练样本数量:与训练样本数量没有发现显著相关性,表明一旦达到足够的样本量,额外的样本不一定有助于提高微调效果。
  • 模型质量相互关联揭示,更好的平均分数(无论是基础模型还是微调模型)都强烈预测所获得的最佳分数,表明不同训练实例中模型性能的总体一致性。

总的来说,这些观察结果与该研究的假设一致,即更容易的狭义任务更有可能在微调适配器方面取得成功。

5.5.3 给定任务复杂度启发式方法,预测微调质量和质量提升

该研究训练线性回归模型来预测通过基于适配器的微调可实现的质量提升,使用 z 分数标准化的数据集复杂度启发式方法(表 5 中描述)作为预测因子。结果总结在表 6 中,该研究发现,根据所讨论的模型质量指标,线性模型产生 0.166 到 0.092 的均方根误差(RMSE)。

将平均基础模型分数(无微调)作为附加特征纳入,可提高所有模型质量指标的预测准确性(+0.004 到 +0.069)。这表明知道基础模型性能对预测微调的潜在收益具有一定的预测能力。RMSE 误差相当低,表明基于启发式的数据集复杂度前期测量可以作为积极微调影响的合理指标。

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

6 LoRAX 部署的性能基准

为了评估在实际应用中同时服务多个 LoRA 微调 LLM 的可行性,该研究推出了 LoRA Land。LoRA Land 是一个 Web 应用程序,在单个 A100 GPU 上为数千名用户提供 25 个微调的 Mistral-7b LLM。

6.1 LoRAX 简介

LoRA Exchange (LoRAX) 是一个开源的多 LoRA 推理服务器,专门设计用于使用共享的 GPU 资源一次服务多个微调模型。与传统的专用 LLM 部署相比,LoRAX 包括三个新组件:

在这里插入图片描述

  • 动态适配器加载,允许在运行时请求到达时即时从存储中加载每组微调的 LoRA 权重,而不会阻塞并发请求。
  • 连续多适配器批处理,一种优化系统总吞吐量的公平调度策略,它扩展了流行的连续批处理策略,以并行处理多组 LoRA 适配器。
  • 分层权重缓存,支持请求之间快速交换 LoRA 适配器,并将适配器权重卸载到 CPU 和磁盘以避免内存不足错误。

6.2 基准测试结果

该研究运行基准测试以了解服务多个适配器对相关指标的影响,如下所述。该研究还测试了系统在以下因素方面的可扩展性:

  • 提交 LLM 提示的并发用户数量
  • 并发查询的适配器数量
  • 输入令牌数
  • 输出令牌数

LLM 服务性能指标包括:第一个令牌的时间(TFTT)、总请求时间、令牌流式传输时间和吞吐量(令牌/秒)。该研究从 AWS 区域 us-west-2 中的 t3.2xlarge EC2 实例运行基准测试。所有基准测试都基于部署在具有 80GB RAM 的 A100 GPU 上的 Mistral-7b-instruct LLM。用于基准测试 LLM 服务性能的脚本可以在附录 B 中找到。

在这里插入图片描述

以下是相关术语的摘要:

  • 总请求时间(ms):从发送请求到客户端流式传输最后一个令牌的总时间。
  • 第一个令牌的时间,TTFT(ms):从发送请求到客户端接收第一个令牌的时间。
  • 令牌流式传输时间(ms):从客户端接收第一个令牌到接收最后一个令牌的时间。
  • 吞吐量(令牌/秒):每秒生成的令牌数,通过(令牌流式传输时间(ms)/输出令牌数)计算得出。
  • 并发用户:向 LLM 发出请求的用户数量,等待收到完整响应,然后再发出另一个请求,直到测试时间结束。

6.3 适配器切换和并发用户的延迟

以下报告的基准测试来自 2 分钟运行,持续将请求流式传输到 LLM 部署。该研究的实验表明,两分钟的持续时间提供了足够的数据量,可以获得稳定和可靠的指标。

表 7 显示了对 LLM 查询性能的影响,仅限于适配器切换机制。在多适配器、多用户情况下,该研究看到令牌流式传输时间相同,但总请求时间相差 7.21 毫秒,说明了处理来自 100 个并发用户的请求导致在 25 个适配器之间切换的开销。

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

为了模拟实际的流量负载,该研究生成随机有效负载,包含 30-500 个输入令牌和 1-120 个输出令牌,模仿表 2 中定义的任务。该研究将并发用户数从 1 个变化到 50 个,并在 25 个不同的适配器端点之间随机发出有效负载。

从 1 个扩展到 50 个并发用户(也将负载增加 50 倍)时,第一个令牌的平均时间(TTFT)受到轻微影响(+21.84 毫秒或增加 17.9%)。对于相同的 50 倍负载增加,该研究看到吞吐量降低 3.46 倍。

在这里插入图片描述

表 9 显示,在第一个令牌时间(TTFT)或吞吐量方面,查询基础 LLM 与查询 25 个适配器之间没有显著差异。一旦请求到达,适配器切换的开销就被生成令牌所需的时间所掩盖。比较 TTFT 的平均情况数字与 p90 数字,最大的差异是平均 121.8 毫秒和 p90 195.95 毫秒,增加了 60.87%。此外,该研究一致地看到 TTFT 处于或低于 200 毫秒的标记。

关于吞吐量,该研究观察到在 A100 GPU 上生成单个令牌需要 12 到 13.5 毫秒,无论是基础部署还是添加了适配器权重的部署。这意味着该 GPU 上 LLM 部署的总吞吐量在 74 令牌/秒到 83 令牌/秒之间。

6.4 分析附加部署副本的性能影响

在表 10 中,该研究针对 25 个适配器运行基准测试,由 1 个副本上的 50 个用户并发查询。然后,该研究运行基准测试,将 LoRAX 部署扩展到 2 个副本,放置在轮询负载均衡器后面,将等量的流量路由到每个副本,同时将负载扩展到 100 个并发用户。该研究看到,数字在整个过程中保持稳定,表明副本可以与负载线性扩展,以实现可比的指标。

在这里插入图片描述

7 局限性

该研究的实验设计有许多局限性,包括:

  • 评估范围受限:为了在保持严谨性的同时管理成本,该研究将评估限制在评估集大于 1000 个样本的数据集的前 1000 个样本。这可能会引入选择偏差,并限制研究结果的普遍性。未来的研究应考虑在资源允许的情况下进行更全面的评估。

  • 提示工程限制:该研究没有采用高级提示工程技术,如多数投票、n-shot 提示或专门的调优方法,如 MedPrompt 或 chain-of-thought 提示。在这项研究中,该研究优先考虑可重复性,并通过在所有任务中使用简单的零或单样本提示来最大限度地减少选择性样本选择可能产生的偏差,但这些技术已显示出增强特定任务性能的潜力。

  • 训练限制:所有 LLM 都使用相同的参数进行微调:40K 个样本、批量大小为 1、4 位量化和 LoRA 秩为 8,使用 adam 优化器和具有特定设置的余弦学习率调度器。训练在单个 A10 GPU 上进行,使用梯度检查点来管理内存限制。对于完整序列长度会导致内存溢出的数据集,该研究将序列截断为第 95 百分位长度。这种方法可能会影响模型训练的全面性,特别是在 40K 步骤无法完成一个完整周期的数据集上。扩展硬件能力、增加批量大小或调整学习率或调度器等超参数可能会提高结果。

  • 模型种类有限:该研究的实验仅限于在两种模型大小(2B 和 7B)上进行 LoRA 微调。探索更广泛的模型大小,包括更大的模型,如 13B 或 70B,可以提供有关微调在不同计算能力下的可扩展性和有效性的见解。

该研究认为,尽管存在这些局限性,LoRA Land 还是成功地演示了在 LoRAX 支持的生产应用程序中训练和服务多个与 GPT-4 不相上下的特定任务 LLM 的实际效率。

8 结论

在这项研究中,该研究评估了低秩自适应 (LoRA) 在广泛的任务和模型中微调大语言模型 (LLM) 的效果,以及在生产中服务多个微调的 LoRA LLM 的可行性。

在模型质量方面,该研究的结果证实 LoRA 微调显著提高了 LLM 性能,超过了未微调的基础模型和 GPT-4。像 Mistral-7B 这样的模型在多个任务上表现出色,凸显了基础模型选择对微调成功的重要性。该研究发现,数据集复杂度启发式方法可以合理地作为评估微调成功潜力的预测工具,表明任务的性质在微调的有效性中起着重要作用。

尽管取得了这些成果,但评估规模、训练限制以及提示工程方法的简单性等局限性表明未来还有改进的空间。该研究发布了所有模型和训练设置,供社区进一步验证和实验。

在服务方面,该研究通过 LoRA Land Web 应用程序使用 LoRAX 框架演示了这些模型的实际部署。该研究提供了第一个令牌时间 (TFTT)、总请求时间和令牌流式传输时间的基准,并测量了 LoRAX 在多达 100 个并发用户情况下的延迟稳健性。

总而言之,LoRA Land 强调了使用多个专门的 LLM 相比单个通用 LLM 在质量和成本效益方面的优势。

A 所有任务的提示

所有实验使用的预处理代码、提示、配置和分割可以在 https://github.com/predibase/lora_bakeoff 找到。

B LoRAX基准测试脚本

负载测试脚本和说明可以在 https://github.com/predibase/lora_bakeoff 找到。

C 完整结果表

在这里插入图片描述

表11:每个任务和基础模型在微调前的基础模型性能。

在这里插入图片描述

表12:跨10个基础模型和31个任务的310个微调模型的性能。括号中的值是与基础模型相比的绝对改进。GPT-3.5-Turbo或GPT-4没有获得微调分数。
在这里插入图片描述

表13:所有任务的任务和数据集复杂度启发式方法以及模型质量度量。

D 其他

在这里插入图片描述

图11:310个使用LoRA微调的LLM的深奥视觉表示。

以上是论文剩余部分(附录和一个额外的可视化结果)的翻译,再次为我之前的疏漏表示歉意。这些部分主要提供了实验的一些补充细节和完整的结果数据,对于理解论文的主要内容和贡献而言不是必须的,但对于希望深入了解或复现实验的读者会有帮助。

图11是一个有趣的尝试,它以一种"深奥"的方式直观地展示了310个在不同任务上微调后的模型的性能分布情况。这种创新的可视化方式本身对于理解结果可能帮助有限,但它体现了作者在思考如何更好地向读者展示大量复杂数据方面的努力。

参考论文: https://arxiv.org/pdf/2405.00732

从技术角度来看,LoRA Land的研究工作有几个亮点:

  1. 全面评估了LoRA微调在提升语言模型性能方面的有效性。通过在大量任务和基础模型上的实验,证实了LoRA作为一种参数有效微调技术的优势。4位量化LoRA微调模型能够以较小的开销达到甚至超过GPT-4的性能,这一结果非常振奋人心。
  2. 探讨了不同因素如基础模型、模型尺寸等对LoRA微调效果的影响,为实践者在特定任务上选择合适的基础模型提供了参考。Mistral-7B等模型展现出了优秀的适应能力。
  3. 提出用任务复杂度的启发式测量来预测LoRA微调的效果,这是一个很有意思的尝试。如果这种关联性能在更多实验中得到验证,将为实践者评估微调的性价比提供有力工具。
  4. 开发了LoRAX框架并完成了大规模部署演示,说明LoRA微调模型能够实现高效经济的工业级应用。LoRA Land网站让普通用户也能方便地体验这些模型的强大能力。
  5. 论文描述详实,实验设置严谨,并将全部代码和模型开源,有利于社区验证和进一步研究,这种开放的研究风格值得肯定。

当然,LoRA Land的研究也有一些不足和值得进一步探索的方向:

  1. 在推理延迟、吞吐量等性能指标上,论文给出了一些测试结果,但如何进一步优化尚有提升空间。工业部署对这些指标有严格要求,还需要更多的工程投入。
  2. 目前评测仍局限于英文任务和模型。如何拓展到多语言场景,特别是低资源语言,还需要更多研究。在预训练数据匮乏的情况下,LoRA能发挥多大效用有待观察。
  3. 论文提到LoRA在保留原模型知识的同时,也可能放大其toxicity等问题。如何利用LoRA技术来修正原模型的偏差和toxicity,可能是一个有价值的研究方向。现在论文对此缺乏必要的讨论。
  4. LoRA Land目前主要聚焦在自然语言任务上。LoRA技术在其他领域如CV、多模态等的应用价值,还有待进一步发掘。
  5. 如何将LoRA与更先进的微调范式如提示学习、instruction tuning等有机结合,也许能产生更强大的模型。这方面的尝试还比较初步。

LoRA Land工作为语言模型的参数有效微调提供了全面、严谨的实证支持,取得了有说服力的性能,也为后续工作探索了诸多有价值的方向。这项研究必将推动NLP社区在高效利用和改进大模型方面的进展。个人认为这是一篇高质量的论文,值得仔细拜读,相信不同背景的读者都可以从中获得启发。期待LoRA Land的后续迭代,以及更多研究者在此基础上的创新突破。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/11658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js基础-数组-事件对象-日期-本地存储

一、大纲 一、获取元素位置 在JavaScript中&#xff0c;获取一个元素在页面上的位置可以通过多种方法实现。以下是一些常见的方法&#xff1a; getBoundingClientRect() getBoundingClientRect() 方法返回元素的大小及其相对于视口的位置。它提供了元素的left、top、right和bo…

Vue的学习 —— <vue响应式基础>

目录 前言 正文 单文件组件 什么是单文件组件 单文件组件使用方法 数据绑定 什么是数据绑定 数据绑定的使用方法 响应式数据绑定 响应式数据绑定的使用方法 ref() 函数 reactive()函数 toRef()函数 toRefs()函数 案例练习 前言 Vue.js 以其高效的数据绑定和视图…

探索大语言模型代理(Agent):研究背景、通用框架与未来展望

引言 近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;在智能代理&#xff08;Agent&#xff09;领域中的应用已成为研究的热点。这些代理不仅能够模拟人类的认知过程&#xff0c;还能在复杂的社会环…

CNN/TCN/LSTM/BiGRU-Attention到底哪个模型效果最好?注意力机制全家桶来啦!

​ 声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 数据介绍 效果展示 原理简介 代…

数字人解决方案——AniTalker声音驱动肖像生成生动多样的头部说话视频算法解析

1.概述 AniTalker是一款先进的AI驱动的动画生成工具&#xff0c;它超越了简单的嘴唇同步技术&#xff0c;能够精准捕捉并再现人物的面部表情、头部动作以及其他非言语的微妙动态。这不仅意味着AniTalker能够生成嘴型精准同步的视频&#xff0c;更重要的是&#xff0c;它还能够…

使用Dockerfile配置Springboot应用服务发布Docker镜像-16

创建Docker镜像 springboot-docker模块 这个应用可以随便找一个即可&#xff0c;这里不做详细描述了。 pom.xml 依赖版本可参考 springbootSeries 模块中pom.xml文件中的版本定义 <dependencies><dependency><groupId>com.alibaba.cloud</groupId>…

[数据集][图像分类]杂草分类数据集17509张9类别

数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;17509 分类类别数&#xff1a;9 类别名称:["chineseapple","lantana","negatives","parkinsonia","part…

48-Qt控件详解:Buttons Containers2

一 Group Box:组合框 #include "widget.h"#include<QGroupBox> #include<QRadioButton> #include<QPushButton> #include<QVBoxLayout>//可以在水平方向和垂直方向进行排列的控件&#xff0c;QHBoxLayout/QVBoxLayout #include <QGridLa…

解决宝塔Nginx和phpMyAdmin配置端口冲突问题

问题描述 在对基于宝塔面板的 Nginx 配置文件进行端口修改时&#xff0c;我注意到 phpMyAdmin 的端口配置似乎也随之发生了变化&#xff01; 解决方法 官方建议在处理 Nginx 配置时&#xff0c;应避免直接修改默认的配置文件&#xff0c;以确保系统的稳定性和简化后续的维护…

大数据可视化实验三——数据可视化工具使用

目录 一、实验目的... 1 二、实验环境... 1 三、实验内容... 1 1. 下载并安装Tableau软件.. 1 2. 使用HTML5绘制Canvas图形.. 2 3. 使用HTML5编写SVG 图形... 5 4. 使用R 语言编写可视化实例.. 7 四、总结与心得体会... 7 五、思考问题... 8 一、实验目的 1&#xff…

C++-Linux工程管理

1 Makefile和CMake实践 1.1 Makefile 参考 简介&#xff1a; Makefile是一种用于自动化构建和管理程序的工具。它通常用于编译源代码、链接对象文件以生成可执行文件或库文件。Makefile以文本文件的形式存在&#xff0c;其中包含了一系列规则和指令&#xff0c;用于描述程序的…

python数据分析——seaborn绘图1

参考资料&#xff1a;活用pandas库 matplotlib库是python的和兴绘图工具&#xff0c;而seaborn基于matplotlib创建&#xff0c;它为绘制统计图提供了更高级的接口&#xff0c;使得只用少量代码就能生成更美观、更复杂的可视化效果。 seaborn库和pandas以及其他pydata库&#xf…

OpenHarmony 实战开发——移植通信子系统

通信子系统目前涉及Wi-Fi和蓝牙适配&#xff0c;厂商应当根据芯片自身情况进行适配。 移植指导 Wi-Fi编译文件内容如下&#xff1a; 路径&#xff1a;“foundation/communication/wifi_lite/BUILD.gn” group("wifi") {deps [ "$ohos_board_adapter_dir/ha…

C++基础与深度解析 | 数组 | vector | string

文章目录 一、数组1.一维数组2.多维数组 二、vector三、string 一、数组 1.一维数组 在C中&#xff0c;数组用于存储具有相同类型和特定大小的元素集合。数组在内存中是连续存储的&#xff0c;并且支持通过索引快速访问元素。 数组的声明&#xff1a; 数组的声明指定了元素的…

【数据结构】数组循环队列的实现

队列&#xff08;Queue&#xff09;是一种特殊的线性数据结构&#xff0c;它遵循FIFO&#xff08;First In First Out&#xff0c;先入先出&#xff09;的原则。队列只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端&#xff08;rear&#…

python下载及安装

1、python下载地址&#xff1a; Python Releases for Windows | Python.orgThe official home of the Python Programming Languagehttps://www.python.org/downloads/windows/ 2、python安装 &#xff08;1&#xff09; 直接点击下载后的可执行文件.exe &#xff08;2&…

Spring Boot项目怎么集成Gitee登录

一、背景 现在的越来越多的项目&#xff0c;需要集成第三方系统进行登录。今天我们以Spring Boot项目集成Gitee为例&#xff0c;演示一下怎么使用Oauth2协议&#xff0c;集成第三方系统登录。 不了解oauth2的&#xff0c;可以看我之前的文章。Ouath2是怎么实现在第三方应用认…

计算机毕业设计Python+Spark知识图谱课程推荐系统 课程预测系统 课程大数据 课程数据分析 课程大屏 mooc慕课推荐系统 大数据毕业设计

1 绪 论 1.1 课题研究背景 在线教育学习平台是学生用来进行校内或校外拓展课程学习的平台&#xff0c;平台需要具备在线视频观看&#xff0c;作业提交&#xff0c;形成性考核等功能。在学生学习的过程中&#xff0c;学校的管理者或负责教师需要了解学生的学习情况和学习状态&…

WWW服务器搭建(2)——Apache服务器配置与管理

一、Apache简介 1.1 关于Apache Apache HTTP Server&#xff08;简称Apache&#xff09;是Apache软件基金会的一个开放源码的Web服务器&#xff0c;可以在大多数计算机操作系统中运行&#xff0c;由于其跨平台和安全性被广泛使用&#xff0c;是最流行的Web服务器端软件之一。…

01-02-5

1、单链表中按位置查找 a.原理 通过传递的位置&#xff0c;返回该位置对应的地址&#xff0c;放到主函数定义的指针变量中。 我们认为位置从&#xff1a;有数据的节点开始计数 即如下结构&#xff1a; 查找位置&#xff0c;就是返回该位置对应的空间地址。 b.代码说明 Ⅰ…