VeRA: 性能相当,但参数却比LoRA少10倍

简介: 2022年的LoRA提高了微调效率,它在模型的顶部添加低秩(即小)张量进行微调。模型的参数被冻结。只有添加的张量的参数是可训练的。

与标准微调相比,它大大减少了可训练参数的数量。例如,对于Llama 27b, LoRA通常训练400万到5000万个参数,这比标准微调则训练70亿个参数药效的多。还可以使用LoRA来微调量化模型,例如,使用QLoRA:

虽然LoRA可训练参数的数量可能比模型参数小的多。但它随着张量(在LoRA中通常表示为r)的秩和目标模块的数量而增加。如果我们想要以大秩r(假设大于64)和模型的所有模块为目标(达到最佳性能),那么我们可能仍然需要训练数亿个参数。

本周又发布了VeRA,以进一步减少LoRA可训练参数的数量。

VeRA: Vector-based Random Matrix Adaptation

VeRA在LoRA冻结的低秩张量上添加可训练向量,只训练添加的向量。论文中显示的大多数实验中,VeRA训练的参数比原始LoRA少10倍。

但是原始的低秩张量(上图右侧中的A和B)呢?他们是如何训练或初始化的?

A和B随机初始化,然后冻结。这样它们虽然看起来像两个无用的张量我们可以在这个框架中去掉它们,但实际上,它们仍然是必不可少的。即使是随机张量也可以用于训练。论文的第2节,作者通过列举以前的论文,从之前的工作中得出结论:

作者最后也表示这些论文为冻结随机矩阵的应用创造了令人信服的案例。可以为VeRA提供理论和经验基础。

模型指标

GLUE评分

E2E

消融研究

总结

作为新的一种微调方法,VeRA显著减少了可训练参数的数量,而精度没有损失。与LoRA相比参数减少了10倍在GLUE基准测试中,robertta large的性能相同,但在GPT-2 medium的E2E基准测试中,性能降低了30%,说明这种方法特别适合于需要频繁交换大量微调模型的场景,比如针对个人用户个性化的基于云的人工智能服务。由于缩放向量尺寸小,可以将许多版本驻留在单个GPU的有限内存中,从而大大提高了服务效率,并消除了将特定模型加载到内存中的瓶颈。

VeRA: Vector-based Random Matrix Adaptation

https://avoid.overfit.cn/post/0c18ad6b818c4e11ae5c54825ef4857a

目录
相关文章
|
7月前
|
数据安全/隐私保护 Windows
深度剖析:PDF 工具箱功能,编辑器操作及页面 / 图像提取技巧
PDF24 Tools是一款德国开发的免费PDF工具箱,18年始终免费,支持网页与Windows客户端。内置近50个工具,涵盖编辑、转换、合并、提取、加密等功能,操作简单,可离线使用,是高效处理PDF的理想选择。
906 0
|
监控 负载均衡 算法
基于docker的haproxy的反向代理
基于docker的haproxy的L7的反向代理
9520 0
|
机器学习/深度学习 存储 算法
回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现
本文详细介绍了回声状态网络(Echo State Networks, ESN)的基本概念、优点、缺点、储层计算范式,并提供了ESN的Python代码实现,包括不考虑和考虑超参数的两种ESN实现方式,以及使用ESN进行时间序列预测的示例。
1331 4
回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现
|
6月前
|
存储 缓存 Java
【深入浅出】揭秘Java内存模型(JMM):并发编程的基石
本文深入解析Java内存模型(JMM),揭示synchronized与volatile的底层原理,剖析主内存与工作内存、可见性、有序性等核心概念,助你理解并发编程三大难题及Happens-Before、内存屏障等解决方案,掌握多线程编程基石。
|
人工智能 安全 算法
利用AI技术提升网络安全防御能力
【10月更文挑战第42天】随着人工智能技术的不断发展,其在网络安全领域的应用也日益广泛。本文将探讨如何利用AI技术提升网络安全防御能力,包括异常行为检测、恶意软件识别以及网络攻击预测等方面。通过实际案例和代码示例,我们将展示AI技术在网络安全防御中的潜力和优势。
|
消息中间件 存储 缓存
Python之RabbitMQ操作
Python之RabbitMQ操作
|
数据采集 存储 编解码
一份简明的 Base64 原理解析
Base64 编码器的原理,其实很简单,花一点点时间学会它,你就又消除了一个知识盲点。
843 3
|
存储 缓存 算法
Python 金融交易实用指南(三)(3)
Python 金融交易实用指南(三)
259 1
|
资源调度 JavaScript 前端开发
TypeScript实战教程(一):表单上传与后端处理
本文是TypeScript实战教程的第一部分,介绍了使用TypeScript进行表单上传和后端处理的完整流程,包括环境配置、前端表单创建、使用TypeScript和Express框架搭建服务端、处理表单数据,并提供了详细的代码示例和运行测试方法。
TypeScript实战教程(一):表单上传与后端处理
|
机器学习/深度学习 人工智能 文字识别
极智AI | 多模态领域先行者 详解CLIP算法实现
大家好,我是极智视界,本文详细介绍一下 CLIP 算法的设计与实现,包括代码。
1811 0