全部產品
Search
文件中心

Platform For AI:估算大模型所需顯存

更新時間:Nov 08, 2025

本文為您介紹在部署和微調大模型時所需顯存與哪些因素相關,以及如何估算大模型所需的顯存大小。

簡易顯存估算器

說明
  • 本文根據大模型通用的計算方式,估算大模型部署和微調所需顯存,由於不同模型的網路結構和演算法存在差異,因此,可能與實際顯存佔用有差距。

  • 對於MoE模型(混合專家模型),以DeepSeek-R1-671B為例,671B的模型本身參數都需要載入,但在推理時只啟用37B的參數,因此在計算啟用值所佔顯存時,需要按照37B的模型參數量計算。

  • 模型微調時通常採用16-bit儲存模型參數、啟用值、梯度,採用Adam/AdamW最佳化器,並用32-bit儲存最佳化器狀態。

Inference

Title


ScenarioRequired GPU Memory (GB)
Inference (16-bit)-
Inference (8-bit)-
Inference (4-bit)-

Fine-tuning


ScenarioRequired GPU Memory (GB)
Full Fine-tuning-
LoRA Fine-tuning-
QLoRA (8-bit) Fine-tuning-
QLoRA (4-bit) Fine-tuning-

模型推理所需顯存影響因素

模型推理時所需顯存主要由以下部分組成:

模型本身參數

在模型推理時首先需要儲存模型本身的參數,其佔用的顯存計算公式為:參數量 x 參數精度。常用的參數精度有FP32(4位元組)、FP16(2位元組)、BF16 (2位元組)。對於大語言模型,模型參數通常採用FP16或BF16。因此,以參數精度為FP16,參數量為7B的模型為例,其所需顯存為:

啟用值

在大語言模型推理過程中,需要計算每層神經元的啟用值,其佔用顯存與批量大小、序列長度和模型架構(層數、隱藏層大小)正相關,關係式可以表示為:

其中:

  • b(batch size):單次請求批量大小,在作為線上服務時通常為1,作為批處理介面時不為1。

  • s(sequence length):整個序列長度,包括輸入輸出(token數量)。

  • h(hidden size):模型隱藏層維度。

  • L(Layers):模型Transformer層數。

  • param_bytes:啟用值儲存的精度,一般為2位元組。

結合以上因素和實踐經驗,為簡化顯存估算,且留有一定餘量,以一個7B模型為例,b為1,s為2048,param_bytes為2位元組時,啟用值所佔顯存可以大致按照10%的模型所佔顯存進行估算,即:

KV緩衝

為加速大語言模型的推理效率,通常會緩衝每層Transformer已經計算完成的鍵K(Key)和值V(Value),避免每個時間步重新計算所有歷史token的注意力機制參數。引入KV緩衝後,其計算量從降低至,大幅提升推理速度。與啟用值類似,KV緩衝佔用顯存也與批量大小、序列長度、並發度和模型架構(層數、隱藏層大小)正相關,關係式可以表示為:

其中:

  • 2:表示需要儲存K(Key)和V(Value)兩個矩陣。

  • b(batch size):單次請求批量大小,在作為線上服務時通常為1,作為批處理介面時不為1。

  • s(sequence length):整個序列長度,包括輸入輸出(token數量)。

  • h(hidden size):模型隱藏層維度。

  • L(Layers):模型Transformer層數。

  • C(Concurrent):服務介面請求的並發度。

  • param_bytes:啟用值儲存的精度,一般為2位元組 。

結合以上因素和實踐經驗,為簡化顯存估算,且留有一定餘量,以一個7B模型為例,當C為1,b為1,s為2048,param_bytes為2位元組時,KV緩衝所佔顯存也大致按照10%的模型所佔顯存進行估算,即:

其他

除了以上影響因素外,當前批次的輸入資料、CUDA核心、PyTorch/TensorFlow深度學習架構本身等也會佔用一些顯存,通常為1~2GB。

根據以上因素分析,對於7B的大模型,通常情況下模型推理部署最低需要的顯存約為:

模型微調所需顯存影響因素

模型微調訓練時所需的顯存主要由以下部分組成:

模型本身參數

在微調訓練時首先需要儲存模型本身的參數,其佔用的顯存計算公式為:參數量 x 參數精度。常用的參數精度有FP32(4位元組)、FP16(2位元組)、BF16 (2位元組),對於大語言模型,在微調時模型參數通常採用FP16或BF16。因此以參數精度為FP16,參數量為7B的模型為例,其所需顯存為:

梯度參數

在模型訓練的反向傳播過程中,需要為模型參數計算梯度,梯度的數量與待訓練的參數數量相同。大語言模型中通常採用2位元組的精度儲存梯度,因此7B的模型根據不同的微調訓練方法,所需的顯存為:

微調訓練方法

訓練機制

適用情境

7B模型微調訓練梯度所需顯存(以1%參數計算、2位元組儲存)

全參數微調

需要訓練的參數與模型本身參數相同

算力充足的高精度需求

14GB

LoRA(低秩適配器)

LoRA微調將凍結原始模型參數,僅訓練低秩矩陣,其待訓練的參數取決於模型結構和低秩矩陣的大小,通常約佔模型總參數量的0.1%~1%

低資源適配特定任務

0.14GB

QLoRA(量化 + LoRA)

將預訓練模型壓縮為4-bit或8-bit,使用LoRA微調模型,並引入雙重量化與分頁最佳化器,進一步減少顯存佔用,待訓練參數通常約佔模型總參數量的0.1%~1%

超大規模模型微調

0.14GB

最佳化器狀態

在訓練過程中還需儲存最佳化器的狀態,狀態值的數量與待訓練參數數量相關,此外,模型通常會採用混合參數精度訓練,即模型參數、梯度採用2位元組儲存,最佳化器狀態採用4位元組儲存,此做法是為了確保在參數更新過程中保持高精度,避免因FP16/BF16的有限動態範圍導致數值不穩定或溢出。同時,如果採用4位元組儲存狀態時,所需的顯存將翻倍。常用的最佳化器情況如下:

最佳化器類型

參數更新機制

額外儲存需求

(每個待訓練參數)

適用情境

7B模型微調訓練最佳化器狀態所需顯存(4位元組儲存)

全參數微調

LoRA微調(以1%參數計算)

QLoRA微調(以1%參數計算)

SGD

只用當前梯度

0(無額外狀態)

小模型或實驗

0

0

0

SGD + Momentum

帶動量項

1個浮點數(動量)

穩定性更好

28GB

0.28GB

0.28GB

RMSProp

適應性學習率

1個浮點數(二階矩)

非凸最佳化

28GB

0.28GB

0.28GB

Adam/AdamW

動量 + 適應性學習率

2個浮點數(一階+二階矩)

大模型常用

56GB

0.56GB

0.56GB

啟用值

訓練時還需儲存前向傳播過程中產生的中間啟用值,以便在反向傳播時計算梯度。這部分顯存消耗與批量大小 (batch size)、序列長度 (sequence length) 和模型架構(層數、隱藏層大小)正相關,關係式可以表示為:

其中:

  • b(batch size):批量大小。

  • s(sequence length):整個序列長度,包括輸入輸出(token數量)。

  • h(hidden size):模型隱藏層維度。

  • L(Layers):模型Transformer層數。

  • param_bytes:啟用值儲存的精度一般為2位元組。

結合以上因素和實踐經驗,為簡化顯存估算,且留有一定餘量,以一個7B模型為例,當b為1,s為2048,param_bytes為2位元組時,啟用值所佔顯存可以大致按照10%的模型所佔顯存進行估算,即:

其他

除了以上影響因素外,當前批次的輸入資料、CUDA核心、PyTorch/TensorFlow深度學習架構本身等也會佔用一些顯存,通常為1~2GB。

根據以上因素分析,對於7B的大模型,通常情況下微調訓練大約需要的顯存為:

微調訓練方式

模型本身所需顯存

梯度所需顯存

Adam最佳化器狀態

啟用值

其他

總計

全參數微調

14GB

14GB

56GB

1.4GB

2GB

87.4GB

LoRA(低秩適配器)

14GB

0.14GB

0.56GB

1.4GB

2GB

18.1GB

QLoRA(8-bit量化 + LoRA)

7GB

0.14GB

0.56GB

1.4GB

2GB

11.1GB

QLoRA(4-bit量化 + LoRA)

3.5GB

0.14GB

0.56GB

1.4GB

2GB

7.6GB

說明
  1. 大模型通常採用Adam/AdamW最佳化器。

  2. 表中除了QLoRA模型本身採用4-bit或8-bit儲存,最佳化器狀態採用32-bit(4位元組)儲存外,其餘參數都採用16-bit(2位元組)儲存。

常見問題

Q:如何查看大模型參數量?

對於開源大模型,其參數量通常會標註在模型名稱上,如:Qwen-7B,其參數量為, Qwen3-235B-A22B,其總參數量為 ,推理時啟用的參數量為。對於未在名稱上標註的模型,您可以搜尋並查看模型說明文檔,找到模型參數資訊。

Q:如何查看大模型的參數的精度?

如果未加特別說明,大模型通常採用16-bit(2位元組)儲存。對於量化的模型,其可能採用8-bit/4-bit儲存,詳細情況您可以查看其說明文檔,例如,如果您使用PAI Model Gallery中的模型,其詳情頁通常會介紹參數的精度:

通義千問2.5-7B-Instruct訓練說明:

image

Q:如何查看大模型微調訓練使用的最佳化器及狀態精度?

大模型訓練通常採用Adam/AdamW最佳化器,參數精度為32-bit(4位元組),更詳細的配置需要查看啟動命令或者代碼。

Q:如何查看顯存佔用?

您可以通過PAI-DSW、PAI-EAS、PAI-DLC的圖形監控頁面查看顯存佔用情況:

image

或者在容器的終端中執行nvidia-smi查看GPU使用方式:

image

Q:顯存不足的常見報錯有哪些?

使用NVIDIA GPU顯存不足時會報CUDA out of memory. Tried to allocate X GB的錯誤,此時您需要增大顯存,或者縮小批量大小(batch size)、序列長度等。