当前位置: 首页 > news >正文

app 排名网站做植物网站

app 排名网站,做植物网站,河南哪里网站建设公司,易营宝自助建站系统#x1f34e;个人主页#xff1a;小嗷犬的个人主页 #x1f34a;个人网站#xff1a;小嗷犬的技术小站 #x1f96d;个人信条#xff1a;为天地立心#xff0c;为生民立命#xff0c;为往圣继绝学#xff0c;为万世开太平。 基本信息 标题: QLoRA: Efficient Finetun… 个人主页小嗷犬的个人主页 个人网站小嗷犬的技术小站 个人信条为天地立心为生民立命为往圣继绝学为万世开太平。 基本信息 标题: QLoRA: Efficient Finetuning of Quantized LLMs 作者: Tim Dettmers, Artidoro Pagnoni, Ari Holtzman, Luke Zettlemoyer 发表: NeurIPS 2023 arXiv: https://arxiv.org/abs/2305.14314 摘要 我们提出了QLoRA一种高效的微调方法能够将内存使用量降低到足以在单个48GB GPU上微调一个65B参数模型同时保持完整的16位微调任务性能。 QLoRA通过冻结的、4位量化预训练语言模型将梯度反向传播到低秩适配器LoRA。 我们最好的模型系列命名为Guanaco在Vicuna基准测试中优于所有之前公开发布的模型达到ChatGPT性能的99.3%而只需在单个GPU上微调24小时。 QLoRA引入了多项创新以节省内存而不牺牲性能 4-bit NormalFloat一种信息论上对正态分布权重最优的新数据类型Double Quantization通过量化量化常数来减少平均内存占用Paged Optimizers来管理内存峰值。 我们使用QLoRA微调了超过1000个模型对8个指令数据集、多种模型类型LLaMA、T5和模型规模例如33B和65B参数模型的指令遵循和聊天机器人性能进行了详细分析这些规模使用常规微调是不可行的。 我们的结果表明在小型高质量数据集上进行的QLoRA微调可以达到最先进的结果即使使用比之前SoTA更小的模型。 我们根据人类和GPT-4评估对聊天机器人性能进行了详细分析表明GPT-4评估是廉价且合理的替代品。此外我们发现当前的聊天机器人基准测试无法准确评估聊天机器人的性能水平。 柠檬采摘分析展示了Guanaco与ChatGPT相比失败的地方。 我们发布了所有模型和代码包括4位训练的CUDA内核。 简介 不同的微调方法和它们的内存需求。QLoRA通过将Transformer模型量化到4位精度并使用分页优化器来处理内存峰值在LoRA的基础上进行了改进。 背景 Block-wise k-bit Quantization 量化是将输入从一个包含更多信息的表示转换为包含较少信息的表示的过程。它通常意味着将具有更多位的数据类型转换为更少位例如从32位浮点数转换为8位整数。为了确保低比特数据类型的整个范围被使用输入数据类型通常通过归一化到输入元素绝对最大值来重新缩放到目标数据类型范围这些输入元素通常以张量的形式结构化。例如将32位浮点FP32张量量化为范围 [ − 127 , 127 ] [-127, 127] [−127,127] 的Int8张量 X Int8 round ( 127 absmax ( X FP32 ) X FP32 ) round ( c FP32 ⋅ X FP32 ) \mathbf{X}^{\text{Int8}} \text{round}\left(\frac{127}{\text{absmax}(\mathbf{X}^{\text{FP32}})} \mathbf{X}^{\text{FP32}}\right) \text{round}(c^{\text{FP32}} \cdot \mathbf{X}^{\text{FP32}}) XInt8round(absmax(XFP32)127​XFP32)round(cFP32⋅XFP32) 其中 c c c 是量化常数或量化尺度。反量化是其逆过程 dequant ( c FP32 , X Int8 ) X Int8 c FP32 X FP32 \text{dequant}(c^{\text{FP32}}, \mathbf{X}^{\text{Int8}}) \frac{\mathbf{X}^{\text{Int8}}}{c^{\text{FP32}}} \mathbf{X}^{\text{FP32}} dequant(cFP32,XInt8)cFP32XInt8​XFP32 这种方法的问题是如果在输入张量中出现大数值即异常值则量化箱——某些位组合——没有得到充分利用有些箱几乎没有或没有数字被量化。 为防止异常值问题一种常见的方法是将输入张量分割成独立量化的块每个块都有自己的量化常数 c c c。这可以形式化如下我们将输入张量 X ∈ R b × h \mathbf{X} \in \mathbb{R}^{b \times h} X∈Rb×h 分割成 n n n 个连续的块每个块大小为 B B B通过展平输入张量并将线性段切分为 n ( b × h ) / B n (b \times h)/B n(b×h)/B 块。我们独立地量化这些块使用方程1创建量化张量和 n n n 个量化常数 c i c_i ci​。 Low-rank Adapters 低秩适配器LoRA微调是一种通过使用一组可训练参数通常称为适配器减少内存需求的方法同时不更新保持固定的完整模型参数。在随机梯度下降期间梯度通过固定预训练模型权重传递给适配器该适配器被更新以优化损失函数。LoRA 通过额外的因子投影增强线性投影。给定一个投影 X W Y \mathbf{XW} \mathbf{Y} XWY 其中 X ∈ R b × h \mathbf{X} \in \mathbb{R}^{b \times h} X∈Rb×h W ∈ R h × o \mathbf{W} \in \mathbb{R}^{h \times o} W∈Rh×oLoRA 计算 Y X W s X L 1 L 2 \mathbf{Y} \mathbf{XW} s \mathbf{XL}_1 \mathbf{L}_2 YXWsXL1​L2​ 其中 L 1 ∈ R h × r \mathbf{L}_1 \in \mathbb{R}^{h \times r} L1​∈Rh×r 和 L 2 ∈ R r × o \mathbf{L}_2 \in \mathbb{R}^{r \times o} L2​∈Rr×o且 s s s 是标量。 QLoRA Finetuning QLoRA通过我们提出的两种技术实现了高保真4位微调——4位NormalFloatNF4量化和双重量化。此外我们引入了分页优化器以防止梯度检查点期间的内存峰值导致传统上使大型模型在单机上微调困难的内存不足错误。 QLoRA有一个低精度存储数据类型在我们的案例中通常是4位还有一个通常是BFloat16的计算数据类型。在实践中这意味着每当使用QLoRA权重张量时我们将张量反量化为BFloat16然后进行16位矩阵乘法。 现在我们讨论QLORA的组件然后给出QLoRA的正式定义。 4-bit NormalFloat Quantization NormalFloatNF数据类型建立在分位数量化之上这是一种信息论上最优的数据类型确保每个量化区间从输入张量中分配相同数量的值。分位数量化通过经验累积分布函数估计输入张量的分位数。 分位数量化的主要局限性在于分位数估计过程成本高昂。因此使用快速分位数近似算法如SRAM分位数来估计它们。由于这些分位数估计算法的近似性质该数据类型对于异常值具有较大的量化误差而异常值通常是最重要的值。 当输入张量来自一个固定到量化常数的分布时可以避免昂贵的分位数估计和近似误差。在这种情况下输入张量具有相同的分位数使得精确的分位数估计在计算上是可行的。 由于预训练神经网络权重通常具有均值为零、标准差为 σ \sigma σ 的正态分布我们可以通过缩放 σ \sigma σ 将所有权重转换为单一固定分布使得该分布正好适合我们的数据类型范围。对于我们的数据类型我们设定了任意范围 [ − 1 , 1 ] [-1, 1] [−1,1]。因此数据类型和神经网络权重的分位数都需要归一化到这个范围内。 理论上最优的数据类型适用于均值为零、标准差为 σ \sigma σ 的正态分布且 σ \sigma σ 在 [ − 1 , 1 ] [-1, 1] [−1,1] 范围内计算方法如下 估计理论 N ( 0 , 1 ) N(0, 1) N(0,1) 分布的 2 k 1 2^k 1 2k1 个分位数以获得 k k k 位量化数据类型用于正态分布取此数据类型并将其值归一化到 [ − 1 , 1 ] [-1, 1] [−1,1] 范围内通过绝对最大值重新缩放将输入权重张量量化到 [ − 1 , 1 ] [-1, 1] [−1,1] 范围内。 一旦权重范围和数据类型范围匹配我们可以像往常一样进行量化。步骤3等价于重新缩放权重张量的标准差使其与 k k k 位数据类型的标准差相匹配。更正式地我们估计数据类型的 2 k 2^k 2k 个值 q i q_i qi​ 如下 q i 1 2 ( Q X ( i 2 k 1 ) Q X ( i 1 2 k 1 ) ) q_i \frac{1}{2} \left( Q_X \left( \frac{i}{2^k 1} \right) Q_X \left( \frac{i 1}{2^k 1} \right) \right) qi​21​(QX​(2k1i​)QX​(2k1i1​)) 其中 Q X ( ⋅ ) Q_X(\cdot) QX​(⋅) 是标准正态分布 N ( 0 , 1 ) N(0, 1) N(0,1) 的分位数函数。对称 k k k 位量化的一个问题是这种方法没有精确表示零这对于量化填充和其他零值元素时无误差是一个重要属性。为了确保离散零点为 0 0 0并使用所有 2 k 2^k 2k 位作为 k k k 位数据类型我们创建了一个不对称的数据类型通过估计两个范围 q i q_i qi​ 的分位数 2 k − 1 2^{k-1} 2k−1 用于负部分 2 k − 1 1 2^{k-1} 1 2k−11 用于正部分然后统一这两组 q i q_i qi​ 并去除两组中出现的其中一个零。我们将每个量化箱具有相同期望值数量的数据类型称为 k k k 位 NormalFloat (NFk)因为该数据类型信息理论上最适合均值为中心的正态分布数据。 Double Quantization 我们引入了Double QuantizationDQ即对量化常数进行量化以节省额外的内存。虽然 4 4 4 位量化需要较小的块大小以实现精确量化但它也具有相当大的内存开销。例如使用 32 32 32 位常数和 64 64 64 的块大小 W \mathbf{W} W量化常数平均为每个参数增加 32 / 64 0.5 32/64 0.5 32/640.5 位。双重量化有助于减少量化常数的内存占用。 更具体地说双重量化将第一次量化的量化常数 c 2 FP32 c_2^{\text{FP32}} c2FP32​ 作为输入进行第二次量化。这第二步产生了量化后的量化常数 c 2 FP8 c_2^{\text{FP8}} c2FP8​ 和第二级量化常数 c 1 FP32 c_1^{\text{FP32}} c1FP32​。我们使用 8 8 8 位浮点数和 256 256 256 的块大小进行第二次量化因为对于 8 8 8 位量化没有观察到性能下降。由于 c 2 FP32 c_2^{\text{FP32}} c2FP32​ 是正数我们在量化之前从 c 2 c_2 c2​ 中减去均值使值集中在零附近并利用对称量化。 平均而言对于 64 64 64 的块大小这种量化将每个参数的内存占用从 32 / 64 0.5 32/64 0.5 32/640.5 位减少到 8 / 64 32 / ( 64 ∗ 256 ) 0.127 8/64 32/(64 * 256) 0.127 8/6432/(64∗256)0.127 位每个参数减少了 0.373 0.373 0.373 位。 Paged Optimizers 使用 NVIDIA 统一内存特性该特性在 CPU 和 GPU 之间自动进行页面到页面的传输以确保在 GPU 偶尔出现内存不足的情况下进行无错误的 GPU 处理。该功能类似于 CPU RAM 和磁盘之间的常规内存分页。我们使用此功能为优化器状态分配分页内存当 GPU 内存不足时这些内存自动被移至 CPU RAM在优化器更新步骤需要内存时这些内存又会自动回传到 GPU 内存中。 QLoRA 使用上述组件我们为单线性层中的量化基础模型与单个 LoRA 适配器定义了 QLoRA如下所示 Y BF16 X BF16 ⋅ doubleDequant ( c 1 FP32 , c 2 k -bit , W NF4 ) X BF16 L 1 BF16 L 2 BF16 Y^{\text{BF16}} X^{\text{BF16}} \cdot \text{doubleDequant}(c_1^{\text{FP32}}, c_2^{k\text{-bit}}, W^{\text{NF4}}) X^{\text{BF16}} L_1^{\text{BF16}} L_2^{\text{BF16}} YBF16XBF16⋅doubleDequant(c1FP32​,c2k-bit​,WNF4)XBF16L1BF16​L2BF16​ doubleDequant ( c 1 FP32 , c 2 k -bit , W k -bit ) dequant ( dequant ( c 1 FP32 , c 2 k -bit ) , W 4 bit ) W BF16 \text{doubleDequant}(c_1^{\text{FP32}}, c_2^{k\text{-bit}}, W^{k\text{-bit}}) \text{dequant}(\text{dequant}(c_1^{\text{FP32}}, c_2^{k\text{-bit}}), W^{4\text{bit}}) W^{\text{BF16}} doubleDequant(c1FP32​,c2k-bit​,Wk-bit)dequant(dequant(c1FP32​,c2k-bit​),W4bit)WBF16 我们对 W W W 使用 NF4对 c 2 c_2 c2​ 使用 FP8。为了提高量化精度我们对 W W W 使用 64 的块大小对 c 2 c_2 c2​ 使用 256 的块大小以节省内存。 在参数更新时仅需要计算适配器权重 ∂ E ∂ L i \frac{\partial E}{\partial L_i} ∂Li​∂E​ 相对于误差的梯度而不需要计算 4-bit 权重 ∂ E ∂ W \frac{\partial E}{\partial W} ∂W∂E​。然而 ∂ E ∂ L i \frac{\partial E}{\partial L_i} ∂Li​∂E​ 的计算涉及到通过 Y BF16 Y^{\text{BF16}} YBF16 从存储形式 W NF4 W^{\text{NF4}} WNF4 解量化到计算数据类型 W BF16 W^{\text{BF16}} WBF16以计算梯度 ∂ X ∂ W \frac{\partial X}{\partial W} ∂W∂X​并在 BFloat16 精度下完成。 总结来说QLoRA 使用一种存储数据类型通常为 4-bit NormalFloat和一种计算数据类型16-bit BrainFloat。我们将存储数据类型解量化为计算数据类型以执行前向和后向传递但仅为使用 16-bit BrainFloat 的 LoRA 参数计算权重梯度。 实验 QLoRA vs. Standard Finetuning Pushing the Chatbot State-of-the-art with QLoRA Limitations and Discussion 我们已经证明了我们的方法QLoRA使用4位基模型和低秩适配器可以复制16位全微调的性能。然而由于资源成本巨大我们没有在33B和65B规模上证明QLoRA可以匹配16位微调性能。 另一个限制是对指令微调模型的评估。虽然我们在MMLU、Vicuna/OA基准上提供了评估但我们没有在BigBench、RAFT和HELM上评估也不能保证我们的评估可以推广到这些基准。另一方面我们在MMLU上进行了非常广泛的研究并开发了评估聊天机器人新方法。 从所提供证据来看这些基准的性能可能取决于微调数据与基准数据集的相似程度。例如FLAN v2与MMLU相似但与Vicuna基准不相似反之亦然对于Chip2数据集。这表明不仅需要更好的基准和评估而且需要谨慎考虑最初要评估的内容。我们是要创建在教室高中和同事知识上表现良好的模型还是要创建在聊天机器人对话能力上表现良好的模型也许还有其他因为与创建新的基准相比评估现有的基准总是更容易某些基准可能会引导社区走向某个方向。作为社区我们应该确保基准衡量的是我们所关心的。 另一个限制是我们没有评估不同的位精度或不同的适配器方法。除了LoRA之外还有许多参数高效微调PEFT方法已被证明效果良好。然而不清楚这些方法是否可以扩展到大型模型。我们使用LoRA因为许多结果已经证明了其鲁棒性但其他适配器可能产生更好的性能。由于量化后的微调似乎可以恢复量化过程中丢失的大部分信息这可能使得量化更加激进。例如3位GPTQ量化在微调后也可能产生16位全微调的性能。 Broader Impacts 我们的QLoRA微调方法首次实现了在单个消费级GPU上对33B参数模型进行微调以及在单个专业GPU上对65B参数模型进行微调同时不会降低与完整微调基线相比的性能。我们已经证明我们在Open Assistant数据集上训练的最佳33B模型在Vicuna基准测试中可以与ChatGPT相媲美。由于指令微调是将原始预训练LLM转换为类似ChatGPT的聊天机器人的重要工具我们相信我们的方法将使微调变得普遍且常见特别是对于资源最少的科研人员来说——这是对最先进NLP技术可及性的重大胜利。QLoRA可以被视为一种平衡因素有助于缩小大型企业和拥有消费级GPU的小团队之间的资源差距。 另一个潜在的影响来源是将QLoRA部署到手机和其他低资源设备上。虽然之前已经证明7B模型可以在手机上运行但QLoRA是第一个能够对这类模型进行微调的方法。我们估计使用iPhone 12 PlusQLoRA可以在手机充电时每晚微调300万个标记。QLoRA可以帮助实现LLM的隐私保护使用用户可以拥有和管理自己的数据和模型同时使LLM更容易部署。 此外由于4位模型推理效率的提高如果部署QLoRA模型它们可以减少LLM在个人使用时产生的环境影响。我们估计如果50%的部署是个人使用50%是公司部署QLoRA部署可以将总体碳足迹减少72%。 然而微调是一种双刃剑技术可能会被滥用造成伤害。LLM的广泛使用存在已知的危险但我们相信平等获取一种迅速普及的技术将允许进行更好的独立分析而不是将LLM的权力掌握在那些不发布模型或源代码以供审计的大型企业手中。 总的来说我们相信QLoRA将产生广泛积极的影响使高质量LLM的微调变得更加广泛和容易获取。
http://www.dnsts.com.cn/news/133013.html

相关文章:

  • 凡科做网站给后台的吗环保部网站官网建设项目限批办法
  • 昆山自适应网站建设wordpress query_posts 浏览量
  • 盐城网站建设多少钱北京协会网站建设
  • 谷歌网站优化工具安防公司网站模板
  • 洛阳有没有做家教的网站服装公司介绍模板
  • 关于icp备案信息中注销网站的通知深圳移动网站建设
  • 洛阳市城市建设网站南通网站排名方法
  • 铜仁建设公司网站郴州市网站建设公司
  • 常德做网站专业公司上海在线网站
  • 临县网站建设做版权保护的网站
  • 国内较好的网站设计公司温州建设局网站首页
  • 年度网站建设工作总结公司的seo是什么意思
  • 霸州做网站同城app模板
  • 做网站克隆纯jsp做的留言板网站
  • 做游戏出租的网站好华宁网站建设
  • 目前做哪个网站能致富wordpress中文版apk
  • 兰州网站开发南通网站排名服务
  • 前端学习网站企业网站布局960
  • 如何使用表格做网站线下怎么做推广和宣传
  • 西安做网站的云阔如何建立自已的网站
  • 我想学做互联网怎么入手游戏seo推广
  • php wap网站源码it运维服务外包
  • 网站关键词优化排名推荐如何在建设教育协会网站注册考试
  • 网站开发用什么架构利用模板建网站
  • 学生网页网站制作软件大全网站搭建招标方案
  • 网站建设数据库wordpress标题太长
  • 做网站该读啥合肥做兼职网站
  • 网站添加锚点网站建设提供书面资料清单
  • 做网站难吗 挣钱吗企业手机网站建设资讯
  • 网站做指向是什么意思合肥做网站维护的公司