一,前言
在AI領域,訓練一個大型語言模型(LLM)是一個耗時且復雜的過程。幾乎每個做大型語言模型(LLM)訓練的人都會被問到:“從零開始,訓練大語言模型需要多久和花多少錢?”雖然網上有很多關于訓練技巧和模型評估的文章,但很少有直接告訴你如何估算訓練時間和成本的。前面分享了一些關于大模型/本地知識庫的安裝部署方法,無需編寫代碼,即可使用Ollama+AnythingLLM搭建企業私有知識庫,或者,三步完成Llama3.2在算力魔方的INT4量化和部署...本篇文章就教你一個簡單的方法,幫你快速估算基于大語言模型權重大小、數據量以及可用GPU算力訓練大語言模型所需的時間和成本。
二,估算方法
訓練模型時,處理數據和更新模型參數需要大量的計算,我們用浮點運算次數(FLOPs)來表示。首先,我們要估算處理一個token所需的FLOPs,包括前向傳遞和反向傳遞兩個部分。
- 前向傳遞:
每個token的前向傳遞涉及的加乘操作數大約為:
FLOPsforward= 2 x N2+2 x N x Dmodel
這里N表示模型的參數量,Dmodel是模型的維度。系數2來源于矩陣乘法中的累加操作。
- 反向傳遞:
大約需要前向傳遞的兩倍計算量,因為要計算權重和激活值的梯度。
FLOPsbackward=(2 x N2+2 x N x Dmodel)x 2
- 所以,一個token總的計算量大概是前向傳遞的三倍。因此,每個訓練token的浮點運算可以估算為:
FLOPstotal=(2 x N2+2 x N x Dmodel)x 3
三,GPU性能
現在大多數模型都是用GPU來訓練的。不同的GPU有不同的性能,比如NVIDIA的H100、A100或V100。每個GPU的性能可以用每秒浮點運算次數(FLOPS)來衡量。不過,實際訓練時,由于多GPU之間的通信等因素,實際性能可能達不到理論上的最高值。
GPU Model | Peak FLOPS (FP32) |
---|---|
H100 | 67 TFLOPS |
A100 | 19.5 TFLOPS |
V100 | 14 TFLOPS |
一個重要的概念是模型FLOPS利用率(MFU),它反映了實際計算效率與理論最大值的比例。通常情況下,隨著GPU數量的增加,MFU會下降。LLaMA 3的研究者們用16,000個GPU訓練模型時,每個GPU的實際效率為380 teraflops,MFU為38%。

四,實際案例
1,l Llama 3 405B 參數模型
LLaMA 3.1(405B參數)是在15.6萬億token的數據集上訓練的。訓練這樣一個規模的模型所需的總FLOPs可以通過以下方式計算:
- 模型大小N = 405B
- 數據集大小P = 15.6T
模型使用了16,000個H100 GPU進行訓練。據了解,平均吞吐量為每個GPU 400 teraflops。這意味著訓練基礎設施可以提供的總吞吐量為:
TotalThroughput
=400TFLOPs/GPU×16,000GPUs
=6.4ExaFLOPs
最后,通過將所需的總FLOPs除以可用吞吐量,并將結果轉換為天數(因為我們真正關心的是訓練天數),我們可以得到訓練時間。
3.8 x 1025FLOPs ÷ 6.4 x1018FLOPs/秒 =61天
2,成本估算
訓練模型不僅耗時,還非常昂貴。以LLaMA 3.1為例,如果一個H100 GPU每小時的費用是2美元,那么用16,000個H100訓練這個模型的總成本大約為2 x 24 x 61 x 16,000 = 46,848,000美元。
五,總結
訓練大型語言模型是一項技術復雜且資金密集的任務。從零開始,把一個LLaMA 3.1(405B參數)的模型在15.6萬億token數據集上訓練出來,大約需要花費61天(假設沒有訓練中斷)和46,848,000美元(僅估算GPU租金、數據集制作費用和研發人力成本未計入),你算對了嗎?
更多精彩內容請點擊下方名片,關注“算力魔方?”公眾號!
審核編輯 黃宇
-
AI
+關注
關注
87文章
33475瀏覽量
274046 -
語言模型
+關注
關注
0文章
557瀏覽量
10585 -
大模型
+關注
關注
2文章
2926瀏覽量
3676
發布評論請先 登錄
相關推薦
從零開始學電源
小白學大模型:訓練大語言模型的深度指南

評論