大模型參數(shù)量都是7B,13B和65B等背后的原因是什么?
不知道大家有沒有注意到現(xiàn)在大模型百花齊放,但是模型參數(shù)大小卻非常一致,基本都是7B,13B,65B等。那么,為什么被設(shè)計成這么大呢?
網(wǎng)絡(luò)上有很多解釋,筆者結(jié)合自己的理解,分享其中可能的原因。
最直接的就是歷史傳承,因為最初OpenAI在gpt-3就是這么干的,然后,Meta借鑒了OpenAI的做法,推出了llama的7B,13B,33B,65B四個尺寸。由于llama在開源領(lǐng)域的地位,其他模型廠商都基本遵守了這樣的約定,形成了當下的局面。
適配推理設(shè)備。特別是對于一些參數(shù)量小的模型是為了適配不同級別的GPU顯存,常見的顯寸大小從4G到80G不等,我們知道顯存占用的公式:
模型空間大小 = 參數(shù)量 *參數(shù)精度
這使得能夠很方便地在單卡上部署推理,降低使用的門檻。以chatGLM2-6B為例,它有62億參數(shù),權(quán)重參數(shù)文件采用BF16精度存儲,實際顯存占用大概為12.5GB,一個英偉達T4顯卡(16GB)就能跑起來。
模型結(jié)構(gòu)上的設(shè)計。從模型結(jié)構(gòu)上看,當前大模型都是采用的transfomer模型的decoder-only結(jié)構(gòu)(未遮蓋部分)。其參數(shù)量受到隱藏層維度,層數(shù),注意力頭數(shù)等影響,而這些參數(shù)取值既參考GPT-3,也是結(jié)合。下面是llama和gpt系列模型的參數(shù)量統(tǒng)計:
實際參數(shù)量P | 隱藏層維度d_model | 層數(shù)N | 注意力頭數(shù)h | 估算參數(shù)量 |
6.7B | 4096 | 32 | 32 | 6590300160 |
13.0B | 5120 | 40 | 40 | 12730761216 |
32.5B | 6656 | 60 | 52 | 32045531136 |
65.2B | 8192 | 80 | 64 | 64572358656 |
llama
性能、成本與訓練時間的綜合平衡。根據(jù)一文探秘LLM應(yīng)用開發(fā)(12)-模型部署與推理(大模型相關(guān)參數(shù)計算及性能分析),模型訓練時間可以估算:6TP/(n*X*u),其中X是計算顯卡的峰值FLOPS,n為卡的數(shù)量,u為利用率。以LLaMA-65B為例,在2048張80GB顯存的A100上,在1.4TB tokens的數(shù)據(jù)上訓練了65B參數(shù)量的模型。80GB顯存A100的峰值性能為624TFLOPS,設(shè)GPU利用率為0.3,則所需要的訓練時間為:
本文轉(zhuǎn)載自 ??AI工程化??,作者: ully
