LoRA Land: 310 经过精细调整的 LLMs,与 GPT-4 相媲美,技术报告 LoRA Land: 310 Fine-tuned LLMs that Rival GPT-4, A Tech

LoRA Land: 310 经过精细调整的 LLMs,与 GPT-4 相媲美,技术报告


论文名称:LoRA Land: 310 Fine-tuned LLMs that Rival GPT-4, A Technical Report

论文地址:https://arxiv.org/pdf/2405.00732

在线测试:https://predibase.com/lora-land

模型链接:https://huggingface.co/predibase

一、摘要

低秩适应(LoRA)已成为参数高效微调(PEFT)大型语言模型(LLMs)的最广泛采用方法之一。LoRA 在实现与完全微调相当的性能的同时,减少了可训练参数和内存使用量。我们旨在评估在真实世界应用中训练和提供经过 LoRA 精调的 LLMs 的可行性。首先,我们衡量了经过量化低秩适配器精调的 LLMs 的质量,跨越了 10 个基础模型和 31 个任务,共计 310 个模型。我们发现,4 位 LoRA 经过精调的模型的性能平均优于基础模型 34 分,优于 GPT-4 10 分。其次,我们调查了用于微调的最有效的基础模型,并评估了任务复杂度启发式的相关性和预测能力,以预测微调结果。最后,我们评估了 LoRAX 的延迟和并发能力,这是一个开源的多 LoRA 推理服务器,可以利用共享的基础模型权重和动态适配器加载,在单个 GPU 上部署多个经过 LoRA 精调的模型。LoRAX 驱动 LoRA Land,这是一个网络应用,将 25 个经过 LoRA 精调的 Mistral-7B LLMs 托管在单个 NVIDIA A100 GPU 上,内存为 80GB。LoRA Land 强调了采用多个专门的 LLMs 覆盖单一的通用 LLM 的质量和成本效益。

图 1:GPT-3.5、GPT-4 和 310 个 LLMs 的平均模型性能,在经过 LoRA 精调前后,在 31 个不同任务和 10 个不同基础模型上。Zephyr-7b 和 Mistral-7b 模型在经过 LoRA 精调后表现最佳。

二、引言

对大型语言模型(LLMs)进行微调[23,3]是改进它们性能的一种高效方法,并添加或删除期望的行为[28,12,13,29]。低秩适应(LoRA)[14]是用于微调 LLMs 的最广泛采用的方法之一,显示出在特定任务上使较小的、专业化的模型能够胜过较大、更通用模型的显著潜力,而可训练参数仅占一部分,挑战了更大的通用模型总是优于较小模型的观念。

尽管迅速推出了新的基础模型,如 Gemma [36]、Llama [37] 和 Mistral [15],它们声称在各种任务上都能轻松进行微调,但对这些模型的综合评估仍然很少见。像 MMLU [11] 和 HellaSwag [44] 这样的基于广泛知识和推理的基准常用于开放的LLM排行榜[2],然而,这并不一定代表任务特定性能,在微调前或微调后。技术报告[36, 37, 15, 26, 35]通常不指定训练配置,声称微调容易,但未经量化。虽然微调的有效性已经得到广泛证明[17, 45],但缺乏大规模的实验留下了几个关键问题没有回答,特别是关于通过微调改进性能的一致性和可预测性,以及模型大小、基础模型和任务复杂性的影响。

评估对提示很敏感,并且在出版物和库中使用的配方有很大的变化。技术报告通常使用特殊的、针对特定数据集的提示策略来展示模型性能,例如角色扮演提示(例如*“假设你是专家”*)、maj@k 投票[40]、不同的 n-shot[34]、MedPrompt[25] 和 chain-of-thought[43]提示。虽然这些方法旨在突出模型的最佳能力,但使用如此多样化的提示技术可能会使模型和任务之间的直接比较变得困难。

在这项工作中,我们通过对经过 LoRA 精调的 10 个基础模型和 31 个任务进行广泛的分析,总共精调了 310 个 LLMs,来弥合这些差距。我们刻意保持所有 LLMs 使用相同的训练参数进行微调,并强调使用零或单个提示,完成式提示的简单指令,例如*“解决以下多项选择问题”*。总的来说,这提供了一个标准化框架,以在特定任务下比较和评估不同基础模型在经过一致条件下使用 LoRA 微调时的内在能力。
我们还旨在探索在真实世界生产应用中为多个 LoRA 模型提供服务的可行性。LoRAX [1] 利用共享的基础模型权重和动态适配器加载,使单个 GPU 能够同时为多个 LoRA 模型提供服务[12]。我们测量了这个库的延迟和并发度指标。我们使用 LoRAX 在 LoRA Land 网页应用中部署了 25 个经过精调的 LLM,这些 LLM 在单个 A100 上提供服务[2]。我们成功的实现展示了为专门任务提供多个经过 LoRA 调整的 LLM 的经济效率。

最后,我们在 LoRA Land 网页应用上发布了所有 25 个经过精调的模型及其训练配方,以供社区进一步分析和复制。

三、相关工作

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

LoRA 模型的高效服务。 为了高效服务多个经过微调的模型,主要挑战在于:

  1. 可扩展性: 随着模型推理需求的增长,系统必须有效扩展以处理增加的负载。这不仅涉及扩展计算资源,还包括管理模型之间的负载分配以维持性能。

  2. 成本: 为多个经过微调的模型提供服务所需的计算资源可能导致巨大的成本。在保持高性能和可用性的同时有效管理这些成本是一个重大挑战。

像分段收集矩阵-向量乘法 (SGMV) [4] 这样的技术旨在通过优化计算方式和资源使用方式来解决这些挑战。开源工具如 DeepSpeed、FasterTransformer 和 vLLM [18] 也旨在实现经济高效、可扩展的微调模型服务。在本文中,我们使用专门设计用于有效提供经过 LoRA 微调的 LLM 服务的 LoRAX,LoRAX 支持动态适配器加载,因此可以在推理期间异步下载适配器,支持多个模型系列,如 Llama 和 Mistral,以及bitsandbytes量化模型。

四、方法论

1. 任务选择

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

我们选择的数据集包括广泛领域知识的 MMLU,内容管理的 Jigsaw,SQL 生成的 WikiSQL,以及 GLUE 基准测试 [39]。我们将这些数据集涵盖的任务分为 5 类:

  • 经典 NLP: 源自常见的 NLP 数据集,发布于 2018 年至 2022 年之间,涵盖命名实体识别、数据生成文本和标题生成等任务。

  • 编码: SQL 查询生成和 Python 编程问题,主要集中在算法和面向对象设计上。

  • 知识: 基于知识的多项选择题。

  • 推理: 基于推理的多项选择题。

  • 数学: 数字、基于数学的文字问题。

图 2:使用的任务和数据集。tldr_news 和 hellaswag 数据集用于多个任务。各任务的文本长度差异很大。许多任务和数据集呈现长尾分布,少数示例的序列比平均长度显著更长。令牌计数基于 tiktoken 包 [27]。

图3:不同风格提示的示例。为了在比较模型时保持使用相同的提示,并确保在所有类型的模型(微调、自动完成或指导调整)中获得最高的成功可能性,我们所有的提示都遵循完成风格。

先前的研究已经证明了利用提示工程技术的潜力,例如利用多数投票[48],包含多个上下文示例(n-shot)[34],MedPrompt[25],思维链提示[43]等,以提高模型在特定任务上的性能。

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

最后,我们遵循每个模型的规定的提示标记约定,在HuggingFace上的各自模型文档中概述,以确保对预训练和指导调整的基础模型进行正确的查询。这包括在为Mistral Instruct设计的提示中使用**“<s>INST] … [/INST]”,以及对于Gemma的指导调整模型使用"<bos><start_of_turn>user** … <end_of_turn><start_of_turn><model>"。有关应用于每个任务和模型的确切提示模板的详细信息,请参阅附录[A]。

表1:本研究中使用的提示示例,均以完成式书写。对于更专业的任务,在描述预期的输出格式具有挑战性的情况下(例如bc5cdr),我们使用单个上下文示例——已发布的训练拆分中的第一个示例——来指导模型。

2. 基础模型

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

3. 训练参数

每个模型都使用已发布的训练拆分进行训练。每个模型在40000个训练步骤中进行训练,批量大小为1,使用bitsandbytes进行4位量化和LoRA rank为8。我们使用了paged adam优化器[8],学习率为0*.002,余弦学习率调度器,0.*03的热身比例(1200个训练步骤)。我们对16个累积步骤应用梯度,有效批量大小为16。

这些训练参数,结合梯度检查点,使得每个LLM都可以在单个A10 GPU上进行微调,内存为24 GB。对于在全序列长度上训练仍会产生GPU内存不足错误的任务,我们首先将示例输入截断到设置为所有任务输入的95分位数的最大序列长度。

表2:在基于LoRA的微调实验中使用的基础模型。为了在A10G硬件上训练所有模型,所选的所有基础模型都是70亿参数或更小的。

为了确保跨模型的一致和简单的比较基础,不对任何特定的数据集、任务或基础模型应用额外的超参数调整。

每个模型的训练配方都作为Ludwig[24]配置提供给每个微调的LLM,并可在 https://huggingface.co/predibase 找到。图[4]显示了一个配置示例。

4. 评估

根据表2的规定,如果存在测试集并且已标记,则在测试集上评估模型,否则在验证集上评估[10]。我们采用一套量身定制的评估指标,以准确评估所有任务的性能。对于分类任务,我们使用准确率;对于回归任务,使用(1 - 平均绝对误差)[11];对于生成任务,使用 ROUGE-L[12]。WikiSQL 数据集有自己的评估套件,但由于整合 WikiSQL 评估套件存在挑战,我们采用 ROUGE 指标作为评估查询质量的替代方式[13]。在编码方面,我们使用 HumanEval [5]。对于 GSM8K [7],我们使用基于正则表达式的启发式方法 [9] 来提取数学答案,以保持与 Open LLM 排行榜 [2] 的一致性。所有指标均在0到1的范围内,其中0表示最差的分数,1表示最佳的分数。

未经过微调的模型通常会产生更多样化的输出,包括未预期的工件,如额外的单词或未在提示中指定的解释。对于分类任务,有时这些模型会生成实际的类别字符串,例如“是/否”,“正面/负面”或“真/假”,而不是数据集中的真实“1/0”标签,即使有指示也是如此。为了最小化由于响应解析严格性而产生的指标扣分,我们首先使用基于正则表达式的提取步骤将模型的响应映射到基准词汇表中的真实值。如果在生成的文本中存在多个匹配项,则使用第一个有效匹配项。基于正则表达式的前度量响应提取的代码可在github.com/predibase/lora-bakeoff.找到。

图 4: LoRA 微调的大语言模型训练配置示例。基于 Ludwig [24]。

与 LLM API 相关的财务限制并不轻松。例如,使用 GPT-4 评估完整的 WikiSQL 测试集(15,878 个示例)将耗费约400美元,考虑到每个示例的平均输入(805)和输出(16)令牌数。这样的成本可能是禁锢的,特别是对于经营有限预算的组织或研究人员而言。

为了管理成本同时保持严谨性,对于拥有超过1000个示例的数据集,我们将评估限制在前1000个示例。我们承认这种方法可能引入选择偏差并影响我们发现的泛化能力。我们建议未来的研究在资源允许的情况下考虑更广泛的评估。

5. 结果

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

图 5: 在绝对分数上,从最佳微调大语言模型到 1) 最佳基础模型 (<= 7B)(蓝色)和 GPT-4(红色)在 31 个任务上的性能提升。

在微调之后,301/310 模型超过了它们的基础模型对应物[14],而 224/310 微调的 LLM 超过了由 GPT-4 设定的基准(表4)。Gemba-2b 在微调后表现最差,但也从微调中获得了最大的提升,这表明初始得分较低的模型在微调中受益最多(图1)。

根据所有任务的总体平均,所有微调的模型表现都优于 GPT-3.5,所有7B 微调的模型都优于 GPT-4,除了 gemma-7b 和 gemma-7b-it。Phi-2,拥有仅20亿参数,经过微调后表现与 GPT-4 竞争力相当,与 Phi-2 技术报告的发现一致[46]。

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

6. 讨论和分析

(1). LoRA 微调的最佳基础模型是哪一个?

Mistral-7BZephyr-7b-beta 在不同的类别中成为领导者。Mistral-7B 经常在大多数任务中取得顶尖表现(10/31),表明其具有很高的适应性(见图6)。相反,Zephyr 在整体平均性能方面表现最佳(0.731)。Mistral-7bMistral-7b-instructZephyr-7b-beta(后者本身基于 Mistral-7b-instruct [38])在 LoRA 微调性能方面领先于 LlamaPhiGemma 家族。

表3: 每个任务的最佳模型性能,在微调之前和之后,与 GPT-4 进行比较。

表4: 基于 31 个任务的基础模型性能,微调前和微调后。

(2). 2B 和 7B 中哪个更好用于 LoRA 微调?

在微调后,2B 参数 Phi-2 模型的性能优于所有 2B 和 7B Gemma 模型的整体平均值,仅比下一个性能最佳的 7B 模型 Llama-2-7b 低 1.9 个点(0.677 对 0.696)。尽管如此,我们发现微调后的 7B 模型几乎总是优于微调后的 2B 模型(29/31 个任务)。特别是在 2B 参数模型中(PhiGemma),我们发现所有 Gemma instruct 模型在一开始就比 Phi 更好,然而,在微调后,Phi-2 的表现优于所有其他 Gemma 模型。

图6: 基础模型(经过微调)在任务中成为表现最佳的频率。在 customer_support 任务中大多数模型达到 100% 的完美得分,因此排除了平局。

(3). Instruction-tuned 和 Auto-complete 模型哪个更适合微调?

在图7中,我们观察到在微调之前,尽管使用完成式提示,Instruction-tuned 模型的表现优于 Auto-complete 模型。定性分析显示,Auto-complete 模型更有可能“跑偏”,生成长而不相关的文本序列,而 Instruction-tuned 模型在正确尝试即将进行的任务方面表现更为一致。

在微调之后,模型之间的性能差距变小。平均 Instruction-tuned 模型略优于平均 Auto-complete 模型,差距为 +0.009,然而,在比较最佳微调模型时情况相反,最佳微调的 Auto-complete 模型略优于最佳微调的 Instruction-tuned 模型(-0.002)。Auto-complete 模型可能由于其更广泛且不太专业化的知识库,可能本质上更适应各种任务。然而,通过足够的微调,两种类型的模型都可以达到可比较的性能水平。我们鼓励进一步研究探索 Instruction-tuned 模型的基本设计如何影响其在任务特定微调中的适应性和有效性。

图7: Auto-completeInstruction-tuned 基础模型在微调前后的比较。

(4). 何时 GPT-4 始终优于微调模型?

我们观察到在范围较窄的任务上,如 GLUE 基准测试中的任务,微调的 LLMs 具有明显优势。这些任务主要是面向分类的,微调的 LLMs 实现了接近 90% 的准确率,优于 GPT-4GPT-4 在 31 个任务中继续在 6 个任务中优于微调模型,特别是在更广泛、更复杂的领域,如 Python 编码和 MMLU 中。

(5). 量化微调质量提升与任务复杂度之间的关系

如果微调的模型在专门的“窄”任务上表现更好,在“广泛”任务上表现更差,那么我们是否可以建立任务复杂度与 LoRA 微调效果之间的预测关系?确定这样的关系可以为评估在微调过程开始之前对新任务的微调增强潜在益处提供有价值的预测工具。

(6). 微调质量、质量提升和任务复杂度的启发式

为了量化任务复杂度,我们使用了几个启发式方法:

  • 训练示例数量

  • 输入和输出的长度(µ、*σ

  • 平均微调模型得分 详细示例请参见表5。

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

我们发现一些有趣的相关性,表明我们的任务复杂度启发式方法与模型性能测量之间存在重要的交互作用。关键观察结果包括:

  • 可压缩性 表现出双重影响,与最佳和平均基础模型得分呈正相关(0.36),而当可压缩性的方差增加时,与这些得分呈负相关(-0.37)。这表明,虽然均匀的可压缩性支持模型性能,但可压缩性的变异性较高往往会降低性能。

  • 输入和输出长度: 更长和更多样化的输出长度与从GPT-4微调获得的最大提升呈正相关,这表明具有扩展和更多样化输出的任务对微调并不具有负面影响。相反,更长和更多样化的输入和输出长度与绝对基础和微调模型得分呈负相关。

表5:三个不同任务(示例)的模型质量测量和任务复杂度启发式。请参考附录C,获取所有31个任务的所有测量和启发式。

  • 输入和输出Rouge-L相似性: 输入/输出Rouge-L相似性的标准差较高与基础和微调模型得分均呈负相关。这表明数据集中内容相似性的较大变异性可能会给模型学习带来困难。

  • 训练样本数量: 未发现与训练样本数量的显著相关性,这表明一旦达到足够的样本量,额外的样本并不一定会提高微调效果。

  • 模型质量内部相关性 表明更好的平均得分(基础和微调)强烈预测获得的最佳得分,这表明模型在不同训练实例中的性能具有一般一致性。

总体而言,这些观察结果与我们的假设一致,即更窄更容易的任务更有可能通过微调适配器取得成功。

8. 预测给定任务复杂度启发式的微调质量和质量提升

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

将未经微调的平均基础模型得分作为额外特征加入,可以提高对所有模型质量指标的预测准确性(+0.004至+0.069)。这表明了通过了解基础模型性能来预测微调潜在收益的一定预测能力。RMSE误差相当低,这表明基于启发式的数据集复杂度的前期测量可以合理地指示微调影响的积极性。

图8:310个LLM在31个任务中数据集复杂度和模型质量相关性,在LoRA微调前后的相关性。

表6:线性回归模型在微调前后预测模型质量启发式的性能,考虑到z分数标准化的数据集复杂度启发式,以及具有和不具有代表性基础模型得分。

五、LoRAX部署的性能基准

为了评估在真实应用中同时为多个LoRA微调的LLM提供服务的可行性,我们推出了LoRA Land。LoRA Land是一个网络应用,从单个A100 GPU向数千用户提供25个经过精细调整的Mistral-7b LLM的服务。

1. LoRAX简介

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

图9:LoRA Land网络应用,在单个A100上为25个经过微调的LLM提供服务。该应用可在https://predibase.com/lora-land访问。

  • 动态适配器加载,允许每组经过微调的LoRA权重在运行时作为请求到来时从存储加载,而不会阻塞并发请求。

  • 连续多适配器批处理,这是一种公平的调度策略,旨在优化系统的总体吞吐量,将流行的连续批处理策略扩展到同时处理多组 LoRA 适配器。

  • 分层权重缓存,用于支持快速在请求之间交换 LoRA 适配器,并将适配器权重卸载到 CPU 和磁盘,以避免内存溢出错误。

2. 基准测试结果

我们进行基准测试以了解同时服务多个适配器对以下相关指标的影响。我们还测试了系统在以下因素方面的可伸缩性:

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

LLM 服务性能指标包括:首个令牌到达时间(TFTT)、总请求时间、令牌流式传输时间以及吞吐量(每秒令牌数)。我们从位于 AWS 区域 us-west-2 的 t3.2xlarge EC2 实例上运行我们的基准测试。

图 10: 动态适配器加载(左)使得多个并发的微调模型能够处理请求。用户3的模型(绿色)在后台加载,而其他请求则像往常一样进行。连续多适配器批处理(右):多个适配器在一个批次中被解码。掩码确保每个批次元素只使用正确的适配器进行处理。

所有基准测试都基于 Mistral-7b-instruct LLM,在配备有 80GB RAM 的 A100 GPU 上部署。用于基准测试 LLM 服务性能的脚本可以在附录 B 中找到。

以下是相关术语的摘要:

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

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

以下报告的基准测试结果来自连续向 LLM 部署发送请求的两分钟运行时间。我们的实验表明,两分钟的持续时间提供了足够的数据量,以获得稳定可靠的指标。

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

为了模拟现实流量负载,我们生成了具有 30-500 个输入令牌和 1-120 个输出令牌的随机负载,模拟了表 2 中定义的任务。我们将并发用户数量从 1 变化到 50,负载随机发出到 25 个不同的适配器端点。

表 7:仅通过适配器切换机制来测量大语言模型 (LLM) 查询指标。为了消除与输入和生成相关的额外非适配器切换因素,模拟请求只包含 1 个输入标记,并且 max_new_tokens 被限制为 1。由于只生成 1 个输出标记,吞吐量指标被排除在外。

当从 1 个并发用户扩展到 50 个,并且负载增加了 50 倍时,首个标记的平均响应时间 (TTFT) 稍微受到影响(增加了 21.84 毫秒,增加了 17.9%)。对于相同的 50 倍负载增加,吞吐量减少了 3.46 倍。

表 9:在 1 个 A100 上对 25 个适配器进行基准测试,使用模拟真实负载的查询。

表 9 表明,在查询基本 LLM 和 25 个适配器之间,就首个令牌到达时间(TTFT)或吞吐量而言,并没有显著差异。适配器切换的成本被生成令牌所需的时间所掩盖。比较 TTFT 的平均值与 p90 值,TTFT 的最大差异在于 121.8 毫秒(平均值)和 195.95 毫秒(p90),增加了 60.87%。此外,我们始终看到 TTFT 在或低于 200 毫秒的标记下。

在吞吐量方面,我们观察到在 A100 GPU 上生成单个标记(token)的时间介于 12 到 13.5 毫秒之间,无论是在基本部署还是添加了适配器权重的部署中都是如此。这意味着在该 GPU 上,LLM 部署的总吞吐量在每秒 74 到 83 个标记之间。

4. 分析额外部署副本的性能影响

在表格 10 中,我们对由 50 个用户同时查询的 25 个适配器运行基准测试,其中 LoRAX 部署了一个副本。然后,我们对 LoRAX 部署进行了扩展,将其扩展到 2 个副本,放置在一个轮询负载均衡器后面,以将相等数量的流量路由到每个副本,同时将负载扩展到 100 个并发用户。我们发现,无论如何,这些数字都是稳定的,表明副本可以随着负载的增加而线性扩展,以达到可比较的指标。

表格 10: 对 1 个 LoRAX 副本上的 25 个适配器进行基准测试 vs. 2 个副本进行基准测试,模拟真实负载的查询。

六、限制

我们的实验设计有许多限制,包括:

  • 评估范围受限: 我们的评估仅限于对具有较大评估分割的数据集的前 1000 个示例,以管理成本并保持严谨性。这可能引入选择偏见并限制我们发现的普适性。未来的研究应考虑在资源允许的情况下进行更全面的评估。

  • 提示工程约束: 我们的研究未采用先进的提示工程技术,如多数投票、n-shot 提示或专门的调整方法,如 MedPrompt 或链式思维提示。在这项研究中,我们优先考虑了可重现性,并通过在所有任务中使用简单的零或单次提示来最小化来自选择性示例选择的偏见,但是这些技术已显示出提高任务特定性能的潜力。

  • 训练约束: 所有的LLM都使用相同的训练参数进行微调:40K 个示例、批量大小为 1、4 位量化和 LoRA 级别为 8,使用 adam 优化器和具体设置的余弦学习率调度器进行训练。训练在单个 A10 GPU 上进行,使用梯度检查点管理内存限制。对于导致内存溢出的完整序列长度超过的数据集,我们将序列截断到第 95 个百分位长度。这种方法可能会影响模型训练的彻底性,特别是在 40K 步甚至无法完成一个完整时期的数据集上。扩展硬件功能、增加批量大小或调整学习率或调度器等超参数可能会增强结果。

  • 模型种类有限: 我们的实验局限于 LoRA 在两种模型大小上进行微调,即 2B 和 7B。探索更广泛的模型大小范围,包括更大的模型,如 13B 或 70B,可能会提供有关跨不同计算容量进行微调的可扩展性和有效性的见解。

尽管存在这些限制,我们仍然认为 LoRA Land 成功地展示了在由 LoRAX 驱动的生产应用中训练和提供多个任务专用的LLM的实际效率。

七、结论

在这项研究中,我们评估了低秩适应(LoRA)用于对大型语言模型(LLM)进行微调,涵盖了广泛的任务和模型,并评估了在生产环境中提供多个经过微调的 LoRA LLM 的可行性。

在模型质量方面,我们的结果证实了 LoRA 微调显著提升了LLM的性能,超过了未经微调的基准模型和 GPT-4。像 Mistral-7B 这样的模型在多个任务中表现突出,突显了基础模型选择在微调成功中的重要性。我们发现,数据集复杂度启发式方法可以合理地被利用作为微调成功的潜在预测因素,这表明任务的性质在微调的有效性中起着重要作用。

尽管有这些结果,但评估规模、训练约束以及我们的提示工程方法的简单性等限制,均指出了未来改进的方向。我们将所有的模型和训练设置发布给社区进行进一步验证和实验。

在服务方面,我们展示了使用 LoRAX 框架通过 LoRA Land Web 应用程序提供这些模型的实际部署。我们提供了时间到第一个标记(TFTT)、总请求时间和标记流时间的基准,并测量了 LoRAX 对多达 100 个并发用户的延迟鲁棒性。

总的来说,LoRA Land 强调利用多个专门的大语言模型 (Large Language Models) 相比单个通用的大语言模型,能够更好地实现质量和成本效益的平衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数智笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值