企业微信
悟空CRM  >   公司新闻  >  如何估计大模型所需要的显存大小?HuggingFace发布Model Memory Calculator

如何估计大模型所需要的显存大小?HuggingFace发布Model Memory Calculator

悟空软件 阅读次数:479 次浏览

大模型对显卡资源的消耗是很大的。但是,具体每个模型消耗多少显存,需要多少资源大模型才能比较好的运行是很多人关心的问题。

此前,DataLearner曾经从理论上给出了大模型显存需求的估算逻辑,详细说明了大模型在预训练阶段、微调阶段和推理阶段所需的显存资源估计(参考:需要多少GPU显存才能运行预训练大语言模型?大语言模型参数规模与显存大小的关系估算方法~:http://https//www.datalearner.com/blog/1051692326904222)。

而HuggingFace的官方库Accelerate直接推出了一个在线大模型显存消耗资源估算工具Model Memory Calculator,直接可以估算在HuggingFace上托管的模型的显存需求。

大模型显存计算工具Model Memory Calculator简介

使用Model Memory Calculator估算大模型显存的实测

大模型显存估计工具Model Memory Calculator的本地部署

大模型显存估计工具Model Memory Calculator的在线演示地址和其它注意

大模型显存计算工具Model Memory Calculator简介

Model Memory Calculator是HuggingFace的Accelerate推出的一个网页工具,你可以直接输入HuggingFace上某个模型地址,它就会估计这个模型运行所需要的显存大小,包括推理和使用Adam进行训练的显存估计。

这个工具估算大模型最小推荐显存资源的方式是用最大层的大小(the minimum recommended vRAM)来表示的。而训练这个模型所需的训练的显存大小,则是这个推理大小的4倍左右。

在许多深度学习模型中,尤其是Transformer类模型,层与层之间的操作往往需要在vRAM中存储中间计算结果,这些结果可能包括激活值、权重等。最大的一层可能需要最大的vRAM空间来存储这些中间结果,以进行前向和反向传播。

考虑到模型的反向传播需要存储前向传播中的激活值以计算梯度,这意味着在训练过程中需要为模型的每一层都存储其激活值。最大的层的激活值可能会占用最多的vRAM。因此,这样估计相对比较保险。

但是根据这样的计算应该也不是简单的直接拿最大层参数来计算。根据官方的说法,最准确的时候,这个工具估算出来的显存大小与实际估计的误差可能也就50MB左右(例如,bert-base-cased模型实际运行需要413.68MB,而这个工具估算的结果是413.18MB)。

使用Model Memory Calculator估算大模型显存的实测

这个工具的使用非常简单,如下图所示,你只需要找到对应的模型所在的HuggingFace地址,直接输入到下面就可以计算了。还可以根据float32、float16、int8、int4量化结果估算。

下面我们使用这个工具估算一下清华大学ChatGLM-6B模型的结果(第一代的ChatGLM-6B模型信息卡地址:https://www.datalearner.com/ai-models/pretrained-models/ChatGLM-6B )。

可以看到,该工具估算的ChatGLM-6B模型在不同精度下的训练和推理的显存需求结果如下:

上图的第三列上图的第三列表示推理显存乘以1.2的结果。原因在于EleutherAI在曾经的技术分析中提到推理所需的实际显存可能要比计算结果高20%左右。下面我们看一下官方给的结果:

可以看到,该工具估算的显存大小与实际官方推荐的差别还是比较大的。但是,我们再估算一下MetaAI发布的LLaMA2-7B的结果,LaMA2-7B模型在不同精度下的训练和推理的显存需求结果如下:

而根据网络上大家讨论的内容, llama-2-7b-chat载入大概需要15GB显存,这个应该是float16版本,与预估结果十分相似!

可以看到,不同的模型很多结果差异还是挺大的。但是,总体来说,还是很有参考价值的!

大模型显存估计工具Model Memory Calculator的本地部署

这个库也可以本地使用,使用过程应该还是需要联网才能估算(需要访问HuggingFace的模型配置文件)。

Model Memory Calculator的安装很简单。首先安装依赖的accelerate库:

pip install git+https://github.com/huggingface/accelerate.git

  1. pip install jaxlib

如果提示jaxlib版本问题你可能要升级。

接下来先在本地输入自己的HuggingFace的密钥,首先需要在页面生成token:https://huggingface.co/settings/tokens

然后复制token后,运行如下命令配置:

  1. huggingface-cli login

如下图所示:

运行到这里的时候Token:输入上面你复制的token即可。接下来就可以直接运行了。

估算MetaAI的LLaMA2-7B-HF模型的显存大小:

accelerate estimate-memory meta-llama/Llama-2-7b-hf

 

结果如下所示:

在线演示地址和其它注意事项

大模型显存估计工具Model Memory Calculator的使用地址参考原文末尾。

 

需要注意的是,该工具如果访问的是需要授权的页面,如上图所示的llama2-7b,是需要先用huggingface账户获取授权,然后获得你的token才能访问的。虽然上面演示页面提供了API Token的输入,但是是有问题的,这个部署不好。但是我们可以自己本地部署方式。

 

悟空CRM产品更多介绍:www.5kcrm.com

相关内容

CRM客户服务管理系统怎么高效使用?使用方法与技巧

高效使用CRM(客户关系管理)客户服务管理系统对于提供卓越的客户服务、提高客户满意度和维护客户关系至关重要。以下是一些使用方法和技巧,帮助您高效使用CRM客户服务管理系统:完整记录客户信息:将客户的详细信息准确地录入CRM客户服务管理系统中,包括姓名、联系方式、历史服务记录等。定期更新客户信息以确保数据的准确性。快速查找客户信息:利用CRM系统的搜索和筛选功能快速查找客户信息,以提供迅速的响应和支
相关文章

微信客户管理系统是什么?它如何结合微信平台进行客户关系管理?

导言:随着社交媒体的发展,微信作为国内最常用的社交软件之一,已经成为互联网营销和客户关系管理的重要渠道。微信客户管理系统是企业在微信平台上使用的一种客户关系管理系统,它集成了微信平台的特点和功能来帮助企业管理客户,并和客户进行有效的沟通交流。下面本文就微信客户管理系统的定义、特点和操作方法等进行详细介绍:一、微信客户管理系统的定义:微信客户管理系统是一款在线的、基于微信平台的客户关系管理软件平台,
相关文章

销售CRM客户管理系统怎么高效使用?使用方法与技巧

高效使用销售CRM(客户关系管理)客户管理系统对于提高销售效率、加强客户关系和增加销售机会至关重要。以下是一些使用方法和技巧,帮助您高效使用销售CRM客户管理系统:完整记录客户信息:将客户的详细信息准确地录入CRM系统中,包括姓名、联系方式、公司、职位、购买历史等。定期更新客户信息以确保数据的准确性和完整性。分类和分段客户:利用CRM系统将客户分为不同的类别或段,如潜在客户、现有客户、高价值客户等
相关文章

客户销售CRM系统用途有哪些?使用方法与技巧

客户销售CRM系统(Customer Relationship Management)是一种强大的工具,用于管理客户关系和提高销售效率。以下是一些客户销售CRM系统的主要用途,以及使用方法和技巧:主要用途:客户管理: CRM系统用于记录和管理客户信息,包括联系信息、交互历史、购买历史等。这使销售团队能够更好地了解客户,提供更个性化的服务。销售机会管理: CRM系统帮助销售团队跟踪销售机会的生命周期
相关文章

CRM销售管理系统用途有哪些?使用方法与技巧

CRM(客户关系管理)销售管理系统是一种用于管理客户关系和提高销售效率的工具。以下是CRM销售管理系统的主要用途,以及使用方法和技巧:主要用途:客户信息管理: CRM销售管理系统用于记录和管理客户信息,包括联系信息、公司信息、购买历史等。这有助于销售团队更好地了解客户,提供更个性化的服务。销售机会管理: CRM系统帮助销售团队跟踪和管理销售机会的生命周期,从潜在客户到交易关闭。这有助于提高销售预测
相关文章

CRM后台管理系统怎么高效使用?使用方法与技巧

高效使用CRM(客户关系管理)后台管理系统是确保客户信息管理和销售团队协作顺畅的关键。以下是一些使用方法和技巧:完整记录客户信息:将客户的详细信息(如姓名、联系方式、公司、职位等)准确地录入CRM后台管理系统中。定期更新客户信息以确保数据的准确性。分类和分段客户:利用CRM系统将客户分为不同的类别或段,例如潜在客户、现有客户、高价值客户等。根据不同类别的客户需求和兴趣制定个性化的沟通和营销策略。记
相关文章

CRM客户管理系统软件怎么高效使用?使用方法与技巧

要高效使用CRM(客户关系管理)客户管理系统软件,需要以下使用方法和技巧:完整记录客户信息:将客户的详细信息(如姓名、联系方式、公司、职位等)准确地录入CRM系统中。定期更新客户信息以确保数据的准确性。分类和分段客户:利用CRM系统将客户分为不同的类别或段,例如潜在客户、现有客户、高价值客户等。根据不同类别的客户需求和兴趣制定个性化的沟通和营销策略。记录互动和活动:记录所有与客户的互动,包括电话、
相关文章

客户关系管理系统怎么高效使用?使用方法

高效使用客户关系管理(CRM)系统是关键,因为它可以帮助您更好地管理客户信息、提高客户满意度、加强客户互动并促进业务增长。以下是一些高效使用CRM系统的方法:完整记录客户信息:将客户的详细信息(例如姓名、联系方式、公司信息、职位等)完整地录入CRM系统中。定期更新客户信息以确保数据的准确性。分类与分段客户:利用CRM系统将客户分为不同的类别或段,如潜在客户、现有客户、高价值客户等。根据不同类别的客
相关文章

CRM销售系统怎么高效使用?使用方法

高效使用CRM(客户关系管理)销售系统可以帮助企业更好地管理客户关系、提高销售效率和增加销售机会。以下是一些使用CRM销售系统的方法:完整记录客户信息:将客户的基本信息、联系方式、购买历史、互动记录等详细信息完整录入CRM系统中。鼓励销售团队及时更新客户信息,确保数据的准确性和完整性。跟进和提醒功能:利用CRM系统的提醒功能,安排和跟进客户互动、电话、电子邮件和会议。设置提醒以确保您不会错过关键的
相关文章

客户信息管理系统怎么高效使用?使用方法

客户信息管理系统是一种有助于企业有效管理客户信息和互动的工具。以下是高效使用客户信息管理系统的一些方法:数据录入与更新:将客户信息准确地录入系统中,包括姓名、联系方式、公司名称、地址等重要信息。定期更新客户信息,确保系统中的数据保持最新。分类与分段:将客户信息按照不同的标准进行分类和分段,如潜在客户、现有客户、高价值客户等。制定客户分析策略,根据不同分段的需求开展针对性的市场活动。沟通记录:记录所
相关文章
最新文章

CRM客户服务管理系统怎么高效使用?使用方法与技巧

高效使用CRM(客户关系管理)客户服务管理系统对于提供卓越的客户服务、提高客户满意度和维护客户关系至关重要。以下是一些使用方法和技巧,帮助您高效使用CRM客户服务管理系统:完整记录客户信息:将客户的详细信息准确地录入CRM客户服务管理系统中,包括姓名、联系方式、历史服务记录等。定期更新客户信息以确保数据的准确性。快速查找客户信息:利用CRM系统的搜索和筛选功能快速查找客户信息,以提供迅速的响应和支
最新文章

销售CRM客户管理系统怎么高效使用?使用方法与技巧

高效使用销售CRM(客户关系管理)客户管理系统对于提高销售效率、加强客户关系和增加销售机会至关重要。以下是一些使用方法和技巧,帮助您高效使用销售CRM客户管理系统:完整记录客户信息:将客户的详细信息准确地录入CRM系统中,包括姓名、联系方式、公司、职位、购买历史等。定期更新客户信息以确保数据的准确性和完整性。分类和分段客户:利用CRM系统将客户分为不同的类别或段,如潜在客户、现有客户、高价值客户等
最新文章

客户销售CRM系统用途有哪些?使用方法与技巧

客户销售CRM系统(Customer Relationship Management)是一种强大的工具,用于管理客户关系和提高销售效率。以下是一些客户销售CRM系统的主要用途,以及使用方法和技巧:主要用途:客户管理: CRM系统用于记录和管理客户信息,包括联系信息、交互历史、购买历史等。这使销售团队能够更好地了解客户,提供更个性化的服务。销售机会管理: CRM系统帮助销售团队跟踪销售机会的生命周期
最新文章

快速注册,立即使用

仅需一分钟,立即注册悟空云。悟空CRM免费试用。
客户端下载