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

2023-10-25 11:28
文章标签 参数 lora 性能 相当 vera

本文主要是介绍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

这篇关于VeRA: 性能相当,但参数却比LoRA少10倍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/282256

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Java慢查询排查与性能调优完整实战指南

《Java慢查询排查与性能调优完整实战指南》Java调优是一个广泛的话题,它涵盖了代码优化、内存管理、并发处理等多个方面,:本文主要介绍Java慢查询排查与性能调优的相关资料,文中通过代码介绍的非... 目录1. 事故全景:从告警到定位1.1 事故时间线1.2 关键指标异常1.3 排查工具链2. 深度剖析:

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指