LoRA数学编程任务不敌全量微调

大数据巨头Databricks与哥伦比亚大学最新研究发现,在数学和编程任务上,LoRA干不过全量微调

具体来说,在这两种任务中,LoRA模型的精确度只有后者的八到九成左右。

不过,作者也发现,LoRA虽然学得少,但是“记忆力”却更好,遗忘现象要比全量微调少得多。

图片

究其原因,作者认为是数学和代码任务的特性与LoRA的低秩“八字不合”,遗忘更少也与相关。

但LoRA的一个公认的优势是训练成本更低;而且相比全量微调,能够更好地保持原有模型性能

于是,网友们的看法也自然地分成了两派:

一波人认为,单纯考虑降低成本用LoRA,表现却显著降低,这是不可接受的。

图片

更具针对性的,有人指出,对于数学和代码这样对精度要求高的任务,一定要最大程度地保证性能,哪怕牺牲一些训练成本。

图片

另一波机器学习工程师则认为,作者的一些实验参数设置不当,造成这种现象的原因不一定是LoRA本身。

质疑的具体理由我们放到后面详细讲解,先来看看作者的研究都有哪些发现。

学的更少,但忘的也少

实验中,作者使用7B参数的Llama2作为基础模型,在持续预训练监督微调两种模式下分别应用LoRA和全量微调,并比较了它们的表现,使用的数据集如下表:

图片

持续预训练实验中,作者在2.5-200亿token之间共选择了8个点进行了测试;监督微调实验则是在训练1、2、4、8、16个epochs时取样;LoRA的rank取值为16和256,适配对象包括Attention、MLP和All。

结果不难看出,无论是持续预训练还是监督微调,LoRA在编程上的表现从未追上过全量微调,而且在持续预训练中,随着token数量的增加,差距越来越悬殊。

而在数学任务上的持续预训练实验中,LoRA起初表现略胜于全量微调,但也是随着token数量的增加,这种优势逐渐被反超。

这一系列结果表明,LoRA在让模型学习新知识的工作中,表现不及全量微调。

图片

不过尽管在性能上比不过全量微调,但LoRA的遗忘现象更少,更有利于保持原有模型的能力。

换言之,如果把原始模型比作刚毕业的小学生,那么用LoRA能学到的初中知识更少,但之前的小学知识忘得也更少。

对应到应用当中,则主要在语言理解、尝试推理等基础能力中体现。

作者使用了相同的实验配置,把测试数据集更换成了HellaSwag、ARC-Challenge和Winogrande,分别测试经过代码和数学微调后的Llama2在基础任务上的表现。

结果,用代码来微调造成的“遗忘”现象更加严重,LoRA从整体上看更接近基础模型,即遗忘现象更轻。

图片

秩是模型表现关键

作者分析了这些现象背后的原因,结果发现,在其中扮演了重要的角色。

在线性代数中,一个矩阵的秩是指其线性无关的行或列的最大数量,秩越高,所能表示的变换或关系就越复杂

同理,在深度学习中,模型的权重矩阵可以看作是将输入信息转换为输出信息的一种映射关系,这些矩阵的秩反映了模型在学习时所需的自由度或复杂度

对于LoRA来说,其学习的矩阵秩较小,对原始权重矩阵的影响也就越小,因此在适应新任务时更易保留原有知识

而在作者的实验中,低秩矩阵的特性还体现为了更强的正则化能力和生成多样性。

图片

至于为什么LoRA在学习新知识上表现不如全量微调,原因同样和秩相关。

作者对在Llama2上用StarCoder-Python数据集进行持续预训练过程中各个阶段的权重矩阵进行了奇异值分解。

结果发现,即使在训练的早期阶段,全面微调学到的权重扰动矩阵的秩就是LoRA常用秩的10-100倍,这表明在编程任务上,全面微调需要学习高秩的权重扰动以适应目标领域;而且随着训练的进行,权重扰动矩阵的秩还会持续增长。

也就是说,此类任务的高秩需求,注定无法与LoRA的低秩特性相匹配,表现不佳也就不是什么意外之事了。

图片

实验中的另一个现象是,虽然同样比不过全量微调,但数学任务中两者的差距相比代码任务更小,作者推测可能有两方面原因:

  • 首先还是和秩相关,作者认为数学任务相比于代码更接近于预训练数据,因此秩也相对更低。
  • 另一个原因,则是目前的GSM8K数据集可能挑战性不够,对模型考察不充分,这可能也是导致出现一开始LoRA超过全量微调的原因。

ML工程师提出质疑

不过对作者的实验,有人指出了实验的参数设置存在不合理之处。

首先提出质疑的,是模型微调和训练平台UnslothAI创始人、前英伟达ML工程师Daniel Han。

图片

Daniel首先指出,论文中的LoRA实验只适配了QKVO、up和down矩阵,没有适配gate_proj矩阵。

如果LoRA没有对gate_proj进行适配,那么FFN模块的大部分权重实际上没有被优化,这可能限制了LoRA在编程任务上的表现。

至于数学能力好一些而在编程任务上表现不佳的原因,可能是lm_head和embed_tokens层没有进行适配训练,因此领域转移没有被很好地建模。

lm_head和embed_tokens层分别对应了语言模型的输出和输入嵌入,它们与具体领域的词汇和表达密切相关。如果这两个层没有被LoRA适配,那么模型在新领域的词汇和表达习惯上的适应能力就会受限。

另一方面,Daniel认为编程任务的超参数设置也有问题,比如秩为256时α值设得太小了,导致适配矩阵的值可能难以得到有效更新。

图片

总结一下就是,LoRA在这些任务上的表现不如全量微调的原因,可能不是出在LoRA本身。

同时Daniel还表示,有论文指出LoftQ和PiSSA使用奇异值分解(SVD)来初始化LoRA矩阵,据称可以使LoRA达到与全面微调相当的性能。

另一名ML工程师附和了Daniel的观点,同时还针对LoRA的应用给出了一些具体建议:

  • LoRA更适用于监督微调而不是持续预训练
  • 对于LoRA来说,0.0005(代码)或0.0002(数学)的学习率是最佳的
  • 应用LoRA时,优先选择同时适配MLP和Attention,其次单独MLP,最后单独Attention

图片

总之,虽然出现了论文中的结果,但LoRA仍然是一项重要的技术,而且能够显著降低训练成本,所以做好性能和资源的权衡,该用还是得用。

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.2.1 什么是Prompt
    • L2.2.2 Prompt框架应用现状
    • L2.2.3 基于GPTAS的Prompt框架
    • L2.2.4 Prompt框架与Thought
    • L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
    • L2.3.1 流水线工程的概念
    • L2.3.2 流水线工程的优点
    • L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
    • L3.1.1 Agent模型框架的设计理念
    • L3.1.2 Agent模型框架的核心组件
    • L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
    • L3.2.1 MetaGPT的基本概念
    • L3.2.2 MetaGPT的工作原理
    • L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
    • L3.3.1 ChatGLM的特点
    • L3.3.2 ChatGLM的开发环境
    • L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
    • L3.4.1 LLAMA的特点
    • L3.4.2 LLAMA的开发环境
    • L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值