一、模型計算量
C ≈ 6N*D
其中C表示訓練語言模型所需的總計算量,N表示模型引數量,D表示用於訓練的語料總量,6表示每訓練一個token所需的浮點計算量約為6N,其中前向計算2N,反向計算4N。
注意:這裡的6是針對Transformers,如果其它模型結構,還請重新確定每個引數的平均計算量。開了啟用點檢查activation checkpoint,這個係數是8。
啟用檢查activation checkpoint透過在前向傳播過程中只儲存一部分(而不是全部)的啟用值來減少儲存空間消耗。對於沒有儲存的啟用值,如果在後向傳播過程中需要它們,就重新計算這些值。這種方法可以顯著減儲存佔用,但是會增加計算開銷,因需要重新計算一些啟用值。
舉個例子
哈哈哈,還是例子好理解。
比如我現在要訓練模型引數量為175B,用於訓練的語料總量為300B,即
N=175B=175*10^9
D=300B=300*10^9
那麼訓練模型所需的總計算量為:
C ≈ 6ND=6175B300B=6175109*300*109=3.151023=3.15*107 PFlops
二、模型訓練耗時估計
哈哈哈,都知道所需的總的計算量,那不是輕輕鬆鬆估計訓練耗時。
T=C/(MFU*S)
其中C表示訓練語言模型所需的總計算量,S表示訓練模型所用叢集的算力,MFU(Model FLOPs Utilization)訓練模型時的算力利用率。
舉個例子
比如我現在訓練模型所需總計算量為3.1510^7 PFlops,叢集算力能力為3924.44565 PFlops/s,訓練模型時的算力利用率為55.2%,即:
**C =3.1510^7 PFlops**
S=3924.4 PFlops/s=卡的數量*每張卡的算力
MFU=55.2%
則訓練該模型所需的時間為:
T=C/(MFUS)=3.1510^7/(55.2%*3924.4)=14541秒=4小時
注意:這裡的算力利用率是整個訓練過程中的算力利用率,有的地方的算力利用率是計算的時候的算力利用率,不考慮純通訊和叢集故障。如果想獲取訓練總時間,這些時間需單獨考慮。
影片教程:
模型計算量預測 訓練時間估計_嗶哩嗶哩_bilibili
參考文獻:
[2001.08361] Scaling Laws for Neural Language Models (arxiv.org)
模型訓練時間預測,計算量估計 Scaling Laws for Neural Language Models
相關文章
- 隱私計算 FATE - 模型訓練模型
- 隱私計算FATE-模型訓練模型
- CANN訓練:模型推理時資料預處理方法及歸一化引數計算模型
- PaddlePaddle分散式訓練及CTR預估模型應用分散式模型
- 大語言模型的Scaling Law:如何隨著模型大小、訓練資料和計算資源的增加而擴充套件模型套件
- PyTorch預訓練Bert模型PyTorch模型
- 取出預訓練模型中間層的輸出(pytorch)模型PyTorch
- 配送交付時間輕量級預估實踐
- 自訓練 + 預訓練 = 更好的自然語言理解模型模型
- 【預訓練語言模型】 使用Transformers庫進行BERT預訓練模型ORM
- 【AI】Pytorch_預訓練模型AIPyTorch模型
- 預訓練模型 & Fine-tuning模型
- Caffe訓練模型時core dump模型
- PHP時間計算PHP
- 時間差計算
- Keras速查_CPU和GPU的mnist預測訓練_模型匯出_模型匯入再預測_匯出onnx並預測KerasGPU模型
- Accelerated Failure Time Models加速失效時間模型AFTAI模型
- 【預訓練語言模型】使用Transformers庫進行GPT2預訓練模型ORMGPT
- 程式設計師如何預估自己的專案開發時間?程式設計師
- Mxnet速查_CPU和GPU的mnist預測訓練_模型匯出_模型匯入再預測_匯出onnx並預測GPU模型
- 雲端計算時代的深度學習訓練深度學習
- JS計算時間差JS
- 計算時間的例子
- 模型訓練:資料預處理和預載入模型
- Oracle時間模型統計SQLOracle模型SQL
- TorchVision 預訓練模型進行推斷模型
- 常見預訓練語言模型簡述模型
- YOLOv5模型訓練及檢測YOLO模型
- 訓練一個目標檢測模型模型
- 知識增強的預訓練語言模型系列之ERNIE:如何為預訓練語言模型注入知識模型
- 通用模型、全新框架,WavLM語音預訓練模型全解模型框架
- MxNet預訓練模型到Pytorch模型的轉換模型PyTorch
- bash shell計算時間差
- 註冊時間差計算
- 計算SQL執行時間SQL
- 計算兩個時間差
- js 計算兩個時間的時間差JS
- java計算時間差及比較時間Java