因毛织物此需要最少的显存即可运行
发布日期:2024-05-03 17:28    点击次数:117

因毛织物此需要最少的显存即可运行

原创2023-08-20 22:25·数据学习DataLearner

本文来自DataLearner官方博客:需要若干GPU显存才能运行预查考谎言语模子?谎言语模子参数范畴与显存大小的关系估算设施~ | 数据学习者官方网站(Datalearner)毛织物

开源谎言语模子的发展相当赶紧,其纷乱的材干也诱骗了许多东谈主的尝试与体验。尽管预查考谎言语模子的使用并不复杂,可是,因为其对GPU资源的破费很大,导致许多东谈主并不可很好地运行加载模子,也作念了许多浮滥时辰的责任。其中一个比较的的问题便是许多东谈主并不知谈我方的显卡救济多大参数范畴的模子运行。本文将针对这个问题作念一个相当轻便的先容和估算。#图文作家打造计划#毛织物

图片

大模子破费的显存简介大模子预查考阶段的显存破费大模子微调阶段的显存破费估算大模子推理阶段的显存破费大模子破费的显存简介

在详备评释大模子需要破费的显存大小之前咱们需要先明确几个主张。

一个便是大模子在不同阶段对显存的破费是不同的。可是不祥不错分为三个阶段或者说三个场景。即大模子预查考阶段、大模子微调阶段和大模子推理阶段。

浙江诗梵尼贸易有限公司

在预查考阶段,大模子同样袭取较大范畴的数据集获取泛化材干,因此需要较大的批次等来保证模子的查考纷乱。而模子的权重亦然从新驱动计较,因此同样也会袭取高精度(如32位浮点数)进行查考。需要破费巨额的GPU显存资源。

在微调阶段,同样会冻结大部分参数,只查考小部分参数。同期,也会袭取相当多的优化时间和较少的高质地数据集来擢升微调后果,此时,由于模子照旧在预查考阶段进行了巨额的查考,微调时的数值流毒对模子的影响同样较小。也同样袭取16位精度查考。因此同样比预查考阶段破费更低的显存资源。

在推理阶段,同样仅仅将一个输入数据经过模子的前向计较得到适度即可,因此需要最少的显存即可运行。

底下是针对大模子在不同阶段破费的显存的详备估算。

大模子预查考阶段的显存破费

大模子在预查考阶段需要加载完好的模子结构和巨额预查考数据,是以显存需求很大,同样需要几十GB到上百GB。常见的预查考数据集如ImageNet图片数据集、维基百科文本corpus等齐比较大。

预查考大模子的显存破费估算波及多个成分。以下是一个简化的法子来估算显存破费:

模子参数每个参数同样是一个32位浮点数(float32),需要4字节的存储空间。淌若模子有P个参数,那么参数的总大小为:P×4字节

中间激活关于每一层,齐会有一些中间的激活值。这些激活值的数目同样与模子的宽度和输入数据的大小干系。假定每层的激活需要A个浮点数,那么激活的总大小为:A×4字节

梯度每个模子参数在反向传播时齐会有一个对应的梯度。梯度的总大小与模子参数的总大小调换:P×4字节

优化器景象

一些优化器(如Adam)为每个参数存储格外的景象信息。举例,Adam存储每个参数的动量和梯度的肤浅值。关于Adam,景象的总大小为:2×P×4字节

批次大小批次大小会影响中间激活的数目。假定批量大小为B,那么激活的总大小为:B×A×4字节

其他成分正则化、Dropout、Batch Normalization等可能需要格外的显存。一些特殊的操作或层(如特殊的卷积)可能有格外的显存需求。

总而言之,预查考大模子的显存破费估算不错通过以下公式得到:

天津市静海县宏利工贸有限公司

总显存=(P B×A P 2×P)×4字节

这仅仅一个简化的估算。本色的显存破费可能会受到其他成分的影响,如模子的具体结构、使用的库和框架、显卡的架构等。为了更准确地估算显存破费,淡薄使用特地的用具或在本色环境中进行测试。

进一步简化一下只议论模子的参数和批次大小,那么不祥是4倍批次大小乘以参数的关系。

回来一下便是,大模子预查考阶段需要高精度数值来保证查考历程的准确性,需要大范畴数据让模子取得泛化和闪现材干,也会一次使用较巨额次加快查考,因此需要巨额显存破费。

大模子微调阶段的显存破费估算

第二个场景便是大模子微调阶段需要的显存。大模子微调是指在一个预查考大模子的基础上, 缙云县三禾服饰有限公司对模子进行隐微的颐养, 南京朗升国际贸易有限公司使其相宜特定的任务。这同样波及在新的、特定任务的数据集上进行格外的查考。

在深度学习中, 浑源县海月颜料有限公司预查考和微调是两个常见的阶段。预查考同样波及在大型数据集上从新驱动查考模子,浙江亚洲人鞋业有限公司而微调则是在预查考模子的基础上, 拼搏人生酒业使用特定的任务数据进行进一步的查考。同样情况下,微调阶段的显存破费同样远低于预查考阶段:

数据集大小:预查考同样使用的是大型的数据集,如Wikipedia、Common Crawl等,这些数据集包含数十亿的单词。而微调时使用的数据集同样针对特定任务,相对较小。解决更小的数据集时,显存的需求同样会减少。批次大小:由于预查考数据集的大小,同样会使用更大的批次来加快查考。大的批次会破费更多的显存。而在微调时,由于数据集较小,不错使用较小的批次,从而减少显存使用。模子结构:天然预查考和微调同样使用调换的模子结构,但在微调时,偶然会冻结模子的某些部分(举例,不查考预查考模子的某些层),毛织物这不错减少显存的使用。蕴蓄梯度:在预查考阶段,由于使用大型数据集和巨额次,可能需要蕴蓄多个批次的梯度来进行一次参数更新,这会增多显存的使用。而在微调阶段,由于数据集和批次大小齐较小,这种需求会减少。正则化和手段:预查考阶段可能会使用更多的正则化手段,如Dropout、Layer Normalization等,这些手段可能会增多显存的使用。而在微调阶段,这些手段可能会被减少或颐养。优化器:某些优化器,如Adam,会为每个参数保存格外的景象信息,从而增多显存使用。在预查考阶段,可能会使用这些优化器,而在微调阶段,可能会袭取不同的优化计谋。

总之,天然预查考和微调齐是深度学习查考的热切阶段,但由于它们的宗旨、数据集和计谋的各异,微调阶段的显存破费同样会远低于预查考阶段。这里也莫得一个息争的公式估算,主要如故依赖于微调袭取的时间和参数。尤其是淌若咱们冻结了许多参数的话,微调所需要的显存资源也会很低。

轻便来说,大模子微调阶段不需要大幅度更新模子权重,因此不错以较低精度来竣事,也只需要在较小范畴的高质地数据集上进行小批次的输入,因此比大模子预查考阶段破费更低的GPU显存资源。

大模子推理阶段的显存破费

大模子在推理阶段的显存揣度相对轻便,主要议论以下几点:

模子参数目:这个与查考阶段调换,决定了模子本人的显存占用量。单次输入数据:推理只需要加载单次输入,而不是像查考时的 batch 数据。是以输入数据量很小。激活复用:推理阶段不错重用激活数据,不需要像查考时存储多个法子的激活,大幅减少激活显存。无需保存梯度:推理阶段不需要计较和保存梯度信息,减少破费。优化器景象:推理阶段不需要优化器景象,减少破费。

是以一个和粗陋的揣度形势是:参数数目×2字节数。举例,一个7B大小的模子,推理阶段同样需要的显存约7*2=14GB。原因是推理阶段同样使用16位精度,一个参数占用2个字节,7b的参数范畴是70亿,二者相乘再换算到GB,也便是14GB支配了。

近似的,13B同样需要26GB显存,65B同样需要130GB显存支配才能推理。

不外也有一个需要议论的是量化,在某些时候,大模子不错链接将16位精度量化成INT8或者INT4的精度,那么量化后的大模子在推理阶段所需要的显存大小不错进一步裁减。举例,7B模子的INT4量化可能只需要3.5GB就行。淌若模子是夹杂精度量化,则介于全精度和填塞量化之间了。

比拟查考阶段,推理阶段显存需求不错裁减10倍以上。这使得很大的模子也不错部署到资源受限的环境中进行推理。

总之,推理阶段显存需求远低于查考阶段,原因在于推理只需要前向传播而不需要计较图的反向传播历程。这大大减少了激活和梯度的存储需求。

#图文作家打造计划#

本站仅提供存储干事,统共内容均由用户发布,如发现存害或侵权内容,请点击举报。

Powered by 首页-新物西零食有限公司 @2013-2022 RSS地图 HTML地图

Copyright 365站群 © 2013-2024 SSWL 版权所有