你的GPU能跑Llama 2等大模型吗?用这个开源项目上手测一测

news2024/11/29 12:54:51

你的 GPU 内存够用吗?这有一个项目,可以提前帮你查看。

在算力为王的时代,你的 GPU 可以顺畅的运行大模型(LLM)吗?

对于这一问题,很多人都难以给出确切的回答,不知该如何计算 GPU 内存。因为查看 GPU 可以处理哪些 LLM 并不像查看模型大小那么容易,在推理期间(KV 缓存)模型会占用大量内存,例如,llama-2-7b 的序列长度为 1000,需要 1GB 的额外内存。不仅如此,模型在训练期间,KV 缓存、激活和量化都会占用大量内存。

我们不禁要问,能不能提前了解上述内存的占用情况。近几日,GitHub 上新出现了一个项目,可以帮你计算在训练或推理 LLM 的过程中需要多少 GPU 内存,不仅如此,借助该项目,你还能知道详细的内存分布情况、评估采用什么的量化方法、处理的最大上下文长度等问题,从而帮助用户选择适合自己的 GPU 配置。

图片

项目地址:https://github.com/RahulSChand/gpu_poor

不仅如此,这个项目还是可交互的,如下所示,它能计算出运行 LLM 所需的 GPU 内存,简单的就像填空题一样,用户只需输入一些必要的参数,最后点击一下蓝色的按钮,答案就出来了。

图片

交互地址:https://rahulschand.github.io/gpu_poor/

最终的输出形式是这样子的:

{ "Total": 4000, "KV Cache": 1000, "Model Size": 2000, "Activation Memory": 500, "Grad & Optimizer memory": 0, "cuda + other overhead": 500}

至于为什么要做这个项目,作者 Rahul Shiv Chand 表示,有以下原因:

  • 在 GPU 上运行 LLM 时,应该采用什么的量化方法来适应模型;

  • GPU 可以处理的最大上下文长度是多少;

  • 什么样的微调方法比较适合自己?Full? LoRA? 还是 QLoRA?

  • 微调期间,可以使用的最大 batch 是多少;

  • 到底是哪项任务在消耗 GPU 内存,该如何调整,从而让 LLM 适应 GPU。

那么,我们该如何使用呢?

首先是对模型名称、ID 以及模型尺寸的处理。你可以输入 Huggingface 上的模型 ID(例如 meta-llama/Llama-2-7b)。目前,该项目已经硬编码并保存了 Huggingface 上下载次数最多的 top 3000 LLM 的模型配置。

如果你使用自定义模型或 Hugginface ID 不可用,这时你需要上传 json 配置(参考项目示例)或仅输入模型大小(例如 llama-2-7b 为 70 亿)就可以了。

接着是量化,目前该项目支持 bitsandbytes (bnb) int8/int4 以及 GGML(QK_8、QK_6、QK_5、QK_4、QK_2)。后者仅用于推理,而 bnb int8/int4 可用于训练和推理。

最后是推理和训练,在推理过程中,使用 HuggingFace 实现或用 vLLM、GGML 方法找到用于推理的 vRAM;在训练过程中,找到 vRAM 进行全模型微调或使用 LoRA(目前项目已经为 LoRA 配置硬编码 r=8)、QLoRA 进行微调。

不过,项目作者表示,最终结果可能会有所不同,具体取决于用户模型、输入的数据、CUDA 版本以及量化工具等。实验中,作者试着把这些因素都考虑在内,并确保最终结果在 500MB 以内。下表是作者交叉检查了网站提供的 3b、7b 和 13b 模型占用内存与作者在 RTX 4090 和 2060 GPU 上获得的内存比较结果。所有值均在 500MB 以内。

图片

图片

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

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

相关文章

云栖大会72小时沉浸式精彩回顾

计算,为了无法计算的价值 2023 杭州云栖大会震撼落幕 自2015年,云计算支撑着移动互联网创新 AI时代,继续支撑所有开发者的创新与梦想 当大会主题再次回归 让我们也打开时空隧道 一起回顾72小时云栖之旅 打造一朵AI时代最开放的云 随着…

SpringBoot单元测试报错“Error creating bean with name ‘serverEndpointExporter‘ ”

问题场景 在SpringBoot中使用单元测试时,出现以下报错,意思是创建名为‘serverEndpointExporter’的bean时出错。 org.springframework.beans.factory.BeanCreationException: Error creating bean with name serverEndpointExporter defined in class…

折叠旗舰新战局:华为先行,OPPO接棒

乌云中的曙光,总能带给人希望。 全球智能手机出货量已经连续八个季度下滑,行业里的乌云挥之不散。不过,也能看到高端市场逆势上涨,散发光亮。个中逻辑在于,当前换机周期已经达到了34个月,只有创新产品才能…

使用R语言构建HTTP爬虫:IP管理与策略

目录 摘要 一、HTTP爬虫与IP管理概述 二、使用R语言进行IP管理 三、爬虫的伦理与合规性 四、注意事项 结论 摘要 本文深入探讨了使用R语言构建HTTP爬虫时如何有效管理IP地址。由于网络爬虫高频、大量的请求可能导致IP被封禁,因此合理的IP管理策略显得尤为重要…

简单的nvm语法

文章目录 导文常用的nvm语法 导文 nvm(Node Version Manager)是一个用于管理Node.js版本的工具,它提供了一些简单的命令来操作Node.js的安装、切换和管理。 常用的nvm语法 这些命令可以在终端中执行,以方便地进行Node.js版本的管…

汇编-DUP操作符

DUP操作符使用整数表达式作为计数器, 为多个数据项分配存储空间。 在为字符串或数组分配存储空间时,这个操作符尤其有用,并且可以使用初始化或非初始化数据: .data BYTE 20 DUP(0) ;20个字节,都等于0 BYTE 20 …

C++入门学习(2)缺省参数

前言 继上回我们学习了命名空间和在C里面的输入输出之后,我们知道了命名空间可以解决C语言命名冲突的问题,也简单掌握了命名空间的使用,我们已经可以写出简单的C代码,所以大家还是要继续练习敲代码,提高语感。 #includ…

再谈Android重要组件——Handler(Native篇)

前言 最近工作比较忙,没怎么记录东西了。Android的Handler重要性不必赘述,之前也写过几篇关于hanlder的文章了: Handler有多深?连环二十七问Android多线程:深入分析 Handler机制源码(二) And…

构建金融新核心生态!金融级数字底座“源启”与易捷行云可进化数字原生平台完成互认证

近日,金融级数字底座“源启”顺利与易捷行云可进化数字原生云平台V6完成互认证。易捷行云云平台V6可支持金融机构核心应用实现高速响应、秒级扩容,并切实保障银行核心系统安全稳定,符合“源启”金融级数字底座(2.0版)技…

开源Open JDK哪家强?Oracle JDK替代解决方案盘点

开源Open JDK哪家强?Oracle JDK替代解决方案盘点 1.1 引言1.2 Open JDK 版本分支1.3 Open JDK 选择推荐1.3.1 Liberica JDK 是什么?1.3.2 Oracle JDK、 OpenJDK 和Liberica JDK 之间有什么区别?1.3.2 OpenJDK 和 Liberica JDK 一样吗&#xf…

2034:D 类音频功率放大器的引脚排列

2034芯片是一款无滤波器5.2W单声道纯D类音频放大器。低EMI适合应用于便携式设备中。 2034芯片的引脚排列: 2034芯片管脚描述: 2034芯片具有关断功能,延长系统的待机时间。过热保护功能增强系统。POP声抑Z功能改进了系统的听觉感受&#xff0…

企业通配符SSL证书的特点

企业通配符SSL证书是一种数字证书,其可以用于保护多个企业网站,对网站传输信息进行加密服务。这种证书通常适用于拥有多个子域名或二级域名的企事业单位。今天就随SSL盾小编了解企业通配符SSL证书的相关信息。 1. 保护所有域名和子域名:企业通…

Java 设计模式——状态模式

目录 1.概述2.结构3.案例实现3.1.抽象状态类3.2.具体状态类3.3.上下文类3.4.测试 4.优缺点5.使用场景 1.概述 【例】通过按钮来控制一个电梯的状态,电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可…

劲升逻辑与安必快、鹏海运于进博会签署合作协议,助力大湾区外贸高质量发展

新中经贸与投资论坛签约现场 中国上海,2023 年 11 月 6 日——第六届进博会期间,由新加坡工商联合总会主办的新中经贸与投资论坛在上海同期举行。跨境贸易数字化领域的领导者劲升逻辑与安必快科技(深圳)有限公司(简称…

xilinx primitives(原语)

Xilinx的原语分为10类,包括:计算组件,IO端口组件,寄存器/锁存器,时钟组件,处理器组件,移位寄存器,配置和检测组件,RAM/ROM组件,Slice/CLB组件,G-t…

第一章:java类的继承

系列文章目录 文章目录 系列文章目录前言一、继承的基本概念二、继承的细节总结 前言 继承是类的重要特征之一。 一、继承的基本概念 ​​​​​​ 关键字extends,表示Sab类继承了Base类,则Sab为Base的子类,Base为Sab的父类。继承在现实中是…

苹果Mac电脑fcpx视频剪辑:Final Cut Pro中文最新 for mac

Final Cut Pro是苹果公司开发的一款专业视频剪辑软件,它为原生64位软件,基于Cocoa编写,支持多路多核心处理器,支持GPU加速,支持后台渲染。Final Cut Pro在Mac OS平台上运行,适用于进行后期制作。 Final Cu…

支持内录系统声音的Mac录屏软件Omi Recorder

Screen Recorder by Omi是一款功能强大的屏幕录制应用程序。它可用于在Windows和Mac计算机上捕获屏幕,以便进行演示、教程、游戏录制、视频编辑等各种用途。 以下是该应用程序的一些主要特点: 支持高清录制:Omi Screen Recorder可以以高达6…

嵌入式发展历史

MPU、MCU、SoC、Application Processors 在一个电子系统中,处理器占据最重要的位置,被称为中央处理器单元(CPU:Central Processing Unit)。它从IO设备读取数据,处理,然后输出。 CPU的发展历史…

数字博物馆如何设计搭建,一文了解数字博物馆解决方案

导言: 数字博物馆是一种创新性的文化机构,通过数字技术的应用,将传统博物馆的宝贵文化遗产以全新的方式呈现给观众。 一.数字博物馆是什么 博物馆是指利用数字技术和互联网等新媒体技术来展示和传播文物、艺术品等文化遗产的博物馆。数字物…