GaLore的全称是“Gradient Low-Rank Projection“,翻译过来就是“梯度低秩投影“

鉴于大家对GaLore比较感兴趣,我今天试着结合论文做一个更深入的解读:
GaLore的全称是"Gradient Low-Rank Projection",翻译过来就是"梯度低秩投影"。它的核心思想是通过降低优化器状态的秩,来大幅减少内存占用。
在训练大模型时,我们需要存储三类数据:模型权重、优化器状态(如动量、梯度等)和中间激活值。而优化器状态往往占据了最大的内存空间。以70亿参数的模型为例,模型权重约占14GB,中间激活值约占2GB,但优化器状态却高达42GB!
GaLore的目标就是在不影响训练效果的前提下,最大限度地压缩优化器状态的内存占用。它用到了一些很巧妙的数学技巧,比如低秩分解,将原本庞大的矩阵近似表示为两个更小的矩阵的乘积。这就像是给矩阵"瘦身",把多余的"赘肉"都去掉,只保留最精华的部分。
在实验中,GaLore对70亿参数的LLaMA模型进行了测试。结果显示,它成功将优化器状态的内存占用从42GB降到了14.5GB,降幅超过65%!再加上一些其他的内存优化技术,最终将总内存消耗控制在了21.3GB,比原来的58GB低了很多。
这意味着我们现在可以在家用的24GB显卡上,轻松训练70亿参数的大模型了!这在此前是根本不可想象的。
与其他一些内存优化方法相比,GaLore的优势在于它既支持从头训练,又能显著降低内存占用。像Colossal-AI是通过将模型切分到多个设备上来分担压力,但总内存需求其实没变;LoRA是在预训练模型上叠加一个小矩阵来微调,内存占用是小了,但只适合微调,不能从头训练。
GaLore的出现,为大模型训练开辟了一条全新的道路。它让每个人都有机会参与到大模型的开发中来,用自己的创意和智慧去塑造心目中最理想的AI助手。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

操作系统基础

进程与线程 进程之间如何通讯 用户态与核心态 进程空间 操作系统内存管理 TBL TBL 多级页表虽然解决了空间上的问题,但是我们发现这种方式需要走多道转换才能找到映射的物理内存地址,经过的多道转换造成了时间上的开销。 程序是局部性的,即…

新质生产力简介

新质生产力简介 新质生产力概述: 新质生产力是以科技创新为核心,实现关键性颠覆性技术突破,推动社会经济发展的高效能、高质量生产力。 新质生产力的本质 新质生产力的本质是“科技创新” 新质生产力的核心是科技创新 新质生产力简介 新质…

全面对比Amazon DocumentDB 与 MongoDB

在云中部署 MongoDB 似乎有多种选择。例如,Amazon DocumentDB自称是完全支持 MongoDB API 的 AWS 原生数据库。虽然它支持一些 MongoDB 功能,但需要注意的是 DocumentDB 并不完全兼容 MongoDB。要在 AWS 上访问功能齐全的“MongoDB 即服务”,…

微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-上

文章目录 一、ElasticSearch1.1 概述1.2 倒排索引1.3 ES与MySQL的概念对比 二、 安装2.1 部署单点ES2.2 部署kibana 三、安装IK分词器3.1 在线安装ik插件(较慢)3.2 离线安装ik插件(推荐)3.3 扩展词词典3.4 停用词词典 四、索引库操…

【数据结构】汇总二、线性表(逻辑结构、物理(存储)结构、基本操作、1.顺序表2.单链表3.双链表4.循环链表5.静态链表6.顺序表与链表的对比不同)

文章目录 线性表linear list逻辑结构物理(存储)结构基本操作1.顺序表1.0特点1.1静态分配1.2动态分配1.3插入1.4删除1.5查找1.5.1按位查找1.5.2按值查找 2.单链表2.1不带头结点的单链表2.2带头结点的单链表2.3插入2.3.1按位序插入2.3.1.1带头结点2.3.1.2不…

MIT6.828LAB4 (4)

LAB3_Part C: Preemptive Multitasking and Inter-Process communication (IPC) 文章目录 LAB3_Part C: Preemptive Multitasking and Inter-Process communication (IPC)前言练习13练习14练习15总结 前言 记录一下自己的学习过程 实验内容翻译: https://gitee.com/…

Python 导入Excel三维坐标数据 生成三维曲面地形图(体) 5-3、线条平滑曲面且可通过面观察柱体变化(三)

环境 python:python-3.12.0-amd64 包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata from matplotlib.c…

Vue-Router路由介绍和使用

vue属于单页面应用,路由就是根据浏览器路径不同,用不同的试图组件替换这个页面内容 开启路由功能 如图在创建项目时候勾选rouler 这样创建好的项目就有路由功能 下一步 不同的访问路径 展示不同的页面内容 路由配置 路由连接组件 浏览器会解析为超链接 …

OpenCV开发笔记(七十六):相机标定(一):识别棋盘并绘制角点

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/136535848 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿…

爬虫练习:获取某网站的房价信息

一、相关网站 二、相关代码 import requests from lxml import etree import csv with open(房天下数据.csv, w, newline, encodingutf-8) as csvfile:fieldnames [名称, 地点,价格,总价,联系电话]writer csv.DictWriter(csvfile, fieldnamesfieldnames)writer.writeheader…

MySQL临时表创建出错(OS errno 13 - Permission denied)

一个客户向我抱怨:在MySQL查询小表没有问题,查询大表出错,下面是他发给我的出错的部分截屏(客户的表名被我隐藏了)。 这里的给出的信息已经比较明显了,是向/tmp目录中创建临时表失败(临时表的路…

在用Java写算法的时候如何加快读写速度

对于解决该方法我们一般如下操作,不需要知道为什么,有模板(个人观点) 使用BufferedReader代替Scanner:Scanner类在读取大量输入时性能较差,而BufferedReader具有更高的读取速度。可以使用BufferedReader的r…

B端系统:漂亮就行。扯淡,漂亮仅占五分之一!

Hi,我是贝格前端工场,接触N多B端系统,也优化升级过N多。在这个过程中,仅仅美观是不够的,所以我拓展出来的B端系统五度评价指标,本篇着重讲易用性指标,欢迎老铁们评论点赞转发,有需求…

安卓studio安装

安卓studio安装 2024.3.11官网的版本(有些翻墙步骤下载东西也解决了) 这次写的略有草率,后面会更新布局的,因为截图量太大了,有需要的小伙伴可以试着接受一下哈哈哈哈 !(https://gitee.com/jiuzheyangbawjf/img/raw/ma…

Node.Js编码注意事项

Node.js 中不能使用 BOM 和 DOM 的 API,可以使用 console 和定时器 APINode.js 中的顶级对象为 global,也可以用 globalThis 访问顶级对象 浏览器端js的组成 Node.js中的JavaScript组成 相比较之下发现只有console与定时器是两个API所共有的&#xff…

【CLIP综述】CLIP在医学影像中的应用(二)

原文传递:CLIP in Medical Imaging: A Comprehensive Survey 其他综述篇:   【SAM综述】医学图像分割的分割一切模型:当前应用和未来方向   【CLIP综述】CLIP在医学影像中的应用(一) 4、基于CLIP的应用&#xff08…

OD_2024_C卷_200分_10、部门人力分配【JAVA】【二分法 + 双指针】

说明 输入数据两行,第一行输入数据3表示开发时间要求,第二行输入数据表示需求工作量大小,输出数据一行,表示部门人力需求。当选择人力为6时,2个需求量为3的工作可以在1个月里完成,其他2个工作各需要1个月完…

​​​​​​​ARCGIS API for Python进行城市区域提取

ArcGIS API for Python主要用于Web端的扩展和开发,提供简单易用、功能强大的Python库,以及大数据分析能力,可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化,同时提供对平台的空间数据管理和组织管理功能…

Visual C++ 2005 可以生成清单信息了

在 Visual C 2005 中,我们可以通过 #pragma 指令来生成你想要的清单信息,这项功能可以简化新版本通用控件的使用。 例如,下面的代码可以指示链接器,将通用控件的新版本(6.0.0.0)链接到应用程序中。 // do not use – see discussi…

01 数据结构引入 和 顺序表

阅读引言: 从本文开始给大家带来我在复习过程中写的数据结构的代码, 分享给需要的同学 一、数据结构引入 1.数据结构解决什么问题 数据结构可以将杂乱无章的数据管理起来, 提高数据的访问效率 计算机处理的对象(数据&#xff09…