QLoRA论文概述

QLORA: Efficient Finetuning of Quantized LLMs

  • QLoRA论文概述
    • 前言(省流版本)
    • 摘要
    • 论文十问
    • 实验
      • 实验1
        • 数据集和模型
        • 实验结论
      • 实验2
        • 数据集和模型
        • 实验结论
    • 局限性
      • 模型尺度
      • 数据集
      • 其他微调方法

QLoRA论文概述

前言(省流版本)

微调需要大量显存资源。

之前工作的量化大都是在推理而非训练。

实验中发现数据的质量比数量重要。

评估采用人类和GPT-4相结合。

提出了三个技术方案实现单个GPU微调65B模型,达到和16位微调任务相同的性能

  • 4-bit NormalFloat(NF4)量化:QLORA使用一种新的数据类型NF4,它在信息理论上最适合正态分布的权重,并在实践中优于4-bit整数和4-bit浮点数。
  • 双量化:QLORA采用双量化方法,对量化常数进行第二次量化,从而减少每个参数的内存占用。
  • 分页优化器:QLORA引入了分页优化器,在梯度检查点时防止内存溢出错误。这个方法使用NVIDIA统一内存特性,在CPU和GPU之间自动进行页面到页面的传输,以便在GPU内存不足时进行无错误的GPU处理。优化器状态分配分页内存,然后在GPU运行内存不足时自动逐出到CPU RAM,并在优化器更新步骤中重新分页到GPU内存。

摘要

我们提出了QLORA,这是一种有效的微调方法,它减少了内存使用,足以在单个48GB GPU上微调65B参数模型,同时保留完整的16位微调任务性能。

QLORA通过冻结的4位量化预训练语言模型将梯度反向传播到低秩适配器(Low Rank Adapters, LoRA)。我们最好的模型家族,我们命名为Guanaco,在Vicuna基准上优于之前所有公开发布的模型,达到ChatGPT性能水平的99.3%,而只需要在单个GPU上进行24小时的微调。

QLORA引入了许多创新来节省内存而不牺牲性能:(a) 4位NormalFloat (NF4),这是一种新的数据类型,理论上对正态分布权重是最优的;(b)双量化,通过量化量化常量来减少平均内存占用;©分页优化器来管理内存峰值。

我们使用QLORA对1000多个模型进行了微调,提供了8个指令数据集、多种模型类型(LLaMA、T5)和常规微调无法运行的模型规模(例如33B和65B参数模型)上的指令跟随和聊天机器人性能的详细分析。

我们的结果表明,即使使用比以前的SoTA更小的模型,在小的高质量数据集上进行QLoRA微调也可以得到最先进的结果。我们提供了基于人类和GPT-4评估的聊天机器人性能的详细分析,表明GPT-4评估是人类评估的廉价和合理的替代方案。

此外,我们发现目前的聊天机器人基准并不值得信赖,无法准确评估聊天机器人的性能水平。一个柠檬分析显示了与ChatGPT相比,Guanaco失败的地方。我们发布了所有的模型和代码,包括用于4位训练的CUDA内核

论文十问

  1. 论文试图解决什么问题?

这篇论文试图解决大规模语言模型微调(finetuning)所需的巨大GPU内存问题,以使这类模型能在单GPU上进行微调。

  1. 这是否是一个新的问题?

是的,这是一个新的问题。以前的工作主要集中在推理时的量化,而没有研究过训练和微调过程中的量化。

  1. 这篇文章要验证一个什么科学假设?

这篇论文的核心科学假设是4比特量化微调可以不损失性能地实现16比特完全微调的效果。

  1. 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?

相关研究包括语言模型量化、低秩适配器微调等。值得关注的研究员有Tim Dettmers、Luke Zettlemoyer等。

  1. 论文中提到的解决方案之关键是什么?

关键的解决方案是提出了4比特NormalFloat数据类型,以及双量化和分页优化器等技术。这些技术协同工作,实现了高精度的4比特量化。

  1. 论文中的实验是如何设计的?

设计了不同模型结构、数据集和模型规模的比较实验,通过学术基准测试验验证了方法的有效性。

  1. 用于定量评估的数据集是什么?代码有没有开源?

使用的数据集包括GLUE、Super-Natural Instructions等,代码已在GitHub上开源。

  1. 论文中的实验及结果有没有很好地支持需要验证的科学假设?

是的,详细的实验结果充分验证了4比特量化微调能够不损失性能地实现16比特完全微调的效果这个核心科学假设。

  1. 这篇论文到底有什么贡献?

这篇论文的主要贡献是首次证明了4比特量化微调的有效性,并在此基础上训练出新状态的聊天机器人模型。

  1. 下一步呢?有什么工作可以继续深入?

后续可继续研究不同bit精度下的量化微调效果、在更大模型尺寸下的验证,以及在其他任务上的探索等。

实验

实验1

数据集和模型

GLUE、Super-Natural Instructions

RoBERTa-large 、T5

实验结论

我们的结果一致表明,具有NF4数据类型的4位QLORA在学术基准测试中具有良好的评估设置,与16位全调优和16位LoRA调优性能相匹配。我们还表明NF4比FP4更有效,双量化不会降低性能。综合起来,这形成了令人信服的证据,证明4位QLORA调优可靠地产生与16位方法相匹配的结果。

在这里插入图片描述

实验2

数据集和模型

MMLU:这是一个选择题基准,涵盖57个任务,包括小学数学、美国历史、计算机科学、法律等。

Alpaca、FLAN V2

实验结论

在Alpaca和FLAN v2上对不同数据类型的适配器进行微调后,LLaMA 7-65B模型的平均5次MMLU测试精度。总体而言,具有双量化(DQ)的NF4与BFloat16性能相当,而FP4始终比两者落后一个百分点。

在这里插入图片描述

局限性

模型尺度

在33B和65B模型尺度上,QLORA可能无法完全匹配16位全微调性能。这主要是由于资源成本巨大

数据集

虽然在MMLU、Vicuna基准和OA基准上进行了评估,但在BigBench、RAFT和HELM等其他基准上没有进行评估,因此无法确保评估结果推广到这些基准。

其他微调方法

除了LoRA之外,还有各种各样的参数有效微调(PEFT)方法没有参与到评估中。

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

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

相关文章

期末速成数据库极简版【查询】(2)

目录 select数据查询----表 【1】筛选列 【2】where简单查询 【3】top-n/distinct/排序的查询 【4】常用内置函数 常用日期函数 常用的字符串函数 【5】模糊查询 【6】表数据操作——增/删/改 插入 更新 删除 【7】数据汇总 聚合 分类 ​ 🙂&#…

分享十几个适合新手练习的软件测试项目

说实话,在找项目的过程中,我下载过(甚至付费下载过)N多个项目、联系过很多项目的作者,但是绝大部分项目,在我看来,并不适合你拿来练习,它们或多或少都存在着“问题”,比如…

12v转48v升压电源芯片:参数、特点及应用领域

12v转48v升压电源芯片:参数、特点及应用领域 随着电子设备的日益普及,电源芯片的需求也在不断增长。今天我们将介绍一款具有广泛应用前景的升压电源芯片——12v转48v升压电源芯片。该芯片具有宽输入电压范围、高效率、固定工作频率等特点,适…

mp3的播放

1.这段vue代码会播放声音&#xff0c;但是会有audio标签 <template><div><audio id"myAudio" controls><source src"./test.mp3" type"audio/mp3" />Your browser does not support the audio tag.</audio></…

库卡LBR_iisy_3_R760协作机器人导入到coppeliasim

1.从库卡官网xpert下载模型 一般载都是这个step文件格式&#xff0c;其他的好像不太好用。coppeliasim导入格式用的是stl,需要用freeCAD打开重新转换一下。下载下来后&#xff0c;很多都是一个整体&#xff0c;在freeCAD导入中&#xff0c;导入选择要不勾选合并。 下载完用CAD …

正则表达式详细讲解

目录 一、正则表达式概念 二、八元素 1、普通字符&#xff1a; 2、元字符&#xff1a; 3、通配符 .&#xff1a; 4、字符类 []&#xff1a; 5、量词&#xff1a; 6、锚点 ^ 和 $&#xff1a; 7、捕获组 ()&#xff1a; 8、转义字符 \&#xff1a; 三、日常使用的正则…

markdown记录

文章目录 基础操作使用一级列表、二级列表 博文链接 基础操作 使用一级列表、二级列表 博文链接 CSDN-Markdown语法集锦 CSDN-markdown语法之如何使用LaTeX语法编写数学公式 CSDN Markdown简明教程1-关于Markdown CSDN Markdown简明教程2-基本使用 CSDN Markdown简明教程3-表…

Bash脚本调用百度翻译API进行中文到英文的翻译

写一个bash脚本调用百度翻译API进行中文到英文的翻译&#xff0c;首先需要进行相关的申请。看百度给出的文档链接: 百度翻译API文档 需要先注册一个百度账号&#xff0c;然后申请APPID。脚本中会用到appid和key这两个值。按照文档给出的提示可以获得。如下是脚本&#xff1a; #…

使用VBA创建Excel条件格式

实例需求&#xff1a;数据总行数不确定&#xff0c;现需要将Category区域&#xff08;即C列到J列&#xff09;中第3行开始的区域设置条件格式&#xff0c;规则如下&#xff1a; 只对部分指定单元格应用色阶条件格式&#xff08;3色&#xff09;指定单元格应满足条件&#xff1…

移动距离

//偶数行需要反转&#xff0c;判断行数时,最后一个需要特判,可以用向上取整 //也可以把传入的值减一,下标从0开始 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main{static int w,m,n;static BufferedReader i…

大数据技术1:大数据发展简史

前言&#xff1a;学习大数据技术&#xff0c;知道会用已经够了&#xff0c;但是要想走得更远&#xff0c;应该了解它发展的来龙去脉&#xff0c;为何会有新的技术/工具的出现&#xff0c;相比老的技术有什么样的进步。 1、传统数据处理系统存在的问题 随着信息时代互联网技术爆…

JDBC简介及快速入门-黑马(P1)

黑马视频b站链接&#xff1a; 01-JDBC简介&快速入门_哔哩哔哩_bilibili &#x1f436;一、JDBC 简介 JDBC 概念&#xff1a; JDBC 就是使用 Java 语言操作关系型数据库的一套 API。 全称&#xff08;Java DataBase Connectivity&#xff09; Java 数据库连接 JDBC 本质…

React 笔记 jsx

严格约定&#xff1a;React 组件必须以大写字母开头&#xff0c;而 HTML 标签则必须是小写字母。 React JSX JSX 是由 React 推广的 JavaScript 语法扩展。 用于表达组件的 特殊语法的 js 函数 要求标签必须闭合&#xff1b;返回的组件必须包裹在一个父标签内&#xff1b; …

鸿蒙4.0开发笔记之ArkTS语法基础之数据传递与共享详细讲解(十八)

文章目录 一、路由数据传递&#xff08;router&#xff09;1、路由数据传递定义2、路由数据传递使用方法3、数据传递两个页面的效果 二、页面间数据共享&#xff08;EntryAbility&#xff09;1、定义2、实现案例3、避坑点 三、数据传递练习 一、路由数据传递&#xff08;router…

分布式和微服务区别

1.分布式 微服务和分布式的区别 1.将一个大的系统划分为多个业务模块&#xff0c;业务模块分别部署到不同的机器上&#xff0c;各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。 2.分布式是否属于微服务&#xff1f; 答案是肯定的。微服务的意…

动手制作个人电脑对话机器人transformers+DialoGPT

简介&#xff1a;DialoGPT是一个对话模型&#xff0c;由微软基于GPT-2训练。由于DialoGPT在对话数据上进行了预训练&#xff0c;所以它比原始的GPT-2更擅长生成类似对话的文本。DialoGPT的主要目标是生成自然且连贯的对话&#xff0c;而不是在所有情况下都提供事实上的正确答案…

Numpy数组的运算(第7讲)

Numpy数组的运算(第7讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

进制 + 原码,反码,补码

进制转换 整数部分 小数部分 原码 反码 补码 原码转补码&#xff1a; 左边和右边第一个1不变&#xff0c;中间取反。-0 除外。 计算机系统中数值一律用补码来存储的原因 其他 术语 进制表 进制数的表示 详细教程可转 爱编程的大丙

数学建模-数据新动能驱动中国经济增长的统计研究-基于数字产业化和产业数字化的经济贡献测度

数据新动能驱动中国经济增长的统计研究-基于数字产业化和产业数字化的经济贡献测度 整体求解过程概述(摘要) 伴随着数据要素化进程的不断加深&#xff0c;对于数据如何作用于经济发展&#xff0c;数据与其他要素结合产生的动能应该如何测度的研究愈发重要。本文将数据新动能分…

机器人刚性碰撞任务的阻抗控制性能

问题描述 对于机器人刚性碰撞任务&#xff0c;阻抗控制可以有效地提高机器人的适应性和稳定性。 在刚性碰撞任务中&#xff0c;机器人在接触外部物体时需要快速适应并调整自身的运动轨迹和速度&#xff0c;以实现精确的操控和稳定的交互。阻抗控制可以通过调整机器人的阻抗参…