成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

7B?13B?175B?解讀大模型的參數

原創 精選
人工智能
在工程實踐中,理解大模型的參數是有意義的。參數在大模型中起著決定性的作用,它們定義了大模型的行為、性能、實現的成本以及對資源的需求。在工程上理解大模型的參數,就是要把握模型的復雜度、性能和能力之間的關系。

大模型也是有大有小的,它們的大小靠參數數量來度量。GPT-3就有1750億個參數,而Grok-1更是不得了,有3140億個參數。當然,也有像Llama這樣身材苗條一點的,參數數量在70億到700億之間。

這里說的70B可不是指訓練數據的數量,而是指模型中那些密密麻麻的參數。這些參數就像是一個個小小的“腦細胞”,越多就能讓模型更聰明,更能理解數據中那些錯綜復雜的關系。有了這些“腦細胞”,模型在處理任務時可能就會表現得更好。

大模型的這些參數就像是模型內部的“建筑師”,通過復雜的算法和訓練過程,一點一滴地搭建起這個龐大的語言世界。每個參數都有它的作用,它們共同協作,讓模型能夠更準確地理解我們的語言,并給出更合適的回答。

那么,大模型中的參數是怎樣構成的呢?

1. 大模型中的參數

大模型參數是其“內部零件”,這些零件各有各的用途,通常包括但不限于以下幾類:

  • 權重(Weights):權重就像神經網絡里的“電線”,連接著各個神經元。它們負責調整信號傳遞時的“音量”,讓重要的信息傳得更遠,不那么重要的信息就小聲點。比如在全連接層里,權重矩陣W就是一張“地圖”,告訴我們哪些輸入特征和輸出特征關系最密切。
  • 偏置(Biases):偏置就像是神經元的“小助手”,負責給神經元的響應定個基準。有了它,神經元就知道自己該在什么水平上活躍了。
  • 注意力機制的參數(Attention Parameters):在基于Transformer的模型中,這些參數就像是“指南針”,告訴模型哪些信息最值得關注。它們包括查詢矩陣、鍵矩陣和值矩陣等,就像是在一大堆信息中找出最關鍵的“線索”。
  • 嵌入矩陣(Embedding Matrices):在處理文本數據時,嵌入矩陣就是模型的“字典”。每一列都代表一個詞匯,用一個數來表示這個詞。這樣,模型就能理解文本的意思了。
  • 隱藏狀態初始化參數(Initial Hidden State Parameters):這些參數就是用來設置模型最初的隱藏狀態的,就像是給模型定個基調,讓它知道從哪里開始“思考”。
  • ......

這些參數一般會使用4種表達和存儲的格式:

  1. Float: 32比特的浮點數,即4字節
  2. Half/BF16: 16比特的浮點數,即2字節
  3. Int8: 8比特的整數,即1字節
  4. Int4: 4比特的整數,即0.5字節

一般來說,參數的數量是影響大模型性能的主要因素。例如,13B-int8模型通常優于同一體系結構的7B-BF16模型。

2. 大模型參數對內存的需求

對于工程師而言,面對的是大模型訓練或推理時會使用多少的內存資源。盡管 V100(有32 GB 的 GPU 內存)或 A100(有40 GB 的 GPU 內存)很強大,然而,大模型卻并不能使用 Tensorflow 或 PyTorch 的單個 GPU 上進行訓練。

2.1 訓練階段的內存需求

在模型訓練期間,主要體現為模型狀態和激活過程對內存的存儲需求。模型狀態包括由優化器狀態、梯度和參數組成的張量。激活過程中包括在正向通道中創建的任何張量,這些張量是在反向通道中梯度計算所必需的。

在訓練的任何時候,對于每個模型參數,總是需要有足夠的 GPU 內存來存儲:

  • 模型參數復制的字節數x
  • 梯度復制的字節數y
  • 優化器狀態一般為12個字節,主要是參數、方差等的拷貝,會將所有優化器狀態保存在 FP32中,以保持穩定訓練并避免數值異常。

這意味著,訓練時需要如下內存來存儲所有的模型狀態和過程數據:(x+y+12 ) * model_size

2.2 推理階段的內存需求

推理階段利用預先訓練好的 LLM 完成文本生成或翻譯等任務。在這里,內存需求通常較低,主要的影響因素:

  • 有限的上下文: 推理通常處理較短的輸入序列,需要較少的內存來存儲與較小的文本塊相關的激活。
  • 無反向傳播: 在推理過程中,LLM 不需要保留反向傳播的中間值,這是一種用于訓練調整參數的技術。這消除了大量的內存開銷。

推理階段所需的內存不會高于相同參數計數和類型的訓練階段所需內存的四分之一。例如,對于一個7B的模型而言,大體上,使用浮點精度需要28GB內存,使用BF16精度需要14GB內存,使用int8精度需要7GB內存。這個粗略的估計方式可以相應地應用到其他版本的模型。

另外,當根據特定任務調整 LLM 時,微調需要更高的內存占用。微調通常包括更長的訓練序列來捕捉目標任務的細微差別。當 LLM 處理更多的文本數據時,這將導致更大的激活。反向傳播過程需要存儲用于梯度計算的中間值,這些中間值用于在訓練期間更新模型的權重。與推理相比,這增加了大量的內存負擔。

2.3 基于Transformer的大模型的內存估算

具體而言, 對應基于Transformer的大模型,嘗試計算一下訓練時所需的內存,其中設:

  • l :transformer的層數
  • a:attention 的head 數量
  • b:批次大小
  • s:序列長度
  • h:隱藏層的維度大小
  • p:精度

這里, bshp = b * s * h * p 代表了輸入數據量的大小。在transformer 的線性層部分,大概需要9bshp+bsh 的空間來用于后面的激活。在attention 部分,self-attention 可以表達為:softmax((XQ)(XK)^T)XV

那么,XQ,XK,XV均需bshp大小的空間。在標準self-attention中,乘法(XQ) * (XK) ^ T 的結果只是一個包含 logit 的 b * s * s 矩陣。然而在實踐中,由于使用了多頭注意力機制,需要為每個頭都要建立一個單獨的 s * s 存儲空間。這意味著需要 abssp 字節的空間,而存儲 softmax 的輸出也同樣需要 abssp 字節。在 softmax 之后還一般需要額外的 abss 字節來存儲掩碼,所以 attention部分需要2abssp+abss的存儲空間。

此外,transformer中還有兩個Norm layer,每個仍需bshp的存儲空間,共2個bshp。

所以,基于Transformer 的大模型訓練所需內存大約為:L(9bshp+bsh+2abssp+abss +2bshp) = Lbshp[16+2/p+(as/h)(2+1/p)]

解釋一下,訓練基于Transformer 的大模型所需內存大約是:模型的層數 x 訓練批次的大小 x 序列長度 x 隱藏層的維度 x 精度 x 大于16的整數

這或許就是基于Transfromer的大模型參數對訓練時內存需求的一個理論下界。

3. 大模型參數對GPU 的需求

有了大模型參數對內存的要求, 可以進一步估算大模型在訓練和推理中所需的GPU數量。但由于GPU數量估算依賴的參數稍多,有人(Dr. Walid Soula,https://medium.com/u/e41a20d646a8)給出了一個粗略估算的簡單公式, 在工程上同樣有一定的參考意義。

圖片圖片

其中,

  • Model’s parameters in billions 是以B為單位的模型參數數量;
  • 18是訓練期間不同組件的內存占用因子;
  • 1.25 代表了激活過程所需的內存數量因子,激活是隨著模型處理輸入數據而變化的動態數據結構。
  • GPU Size in GB是可用的 GPU 內存總量

舉個實際的例子,假設使用的是 NVIDIA RTX 4090 GPU,它有24GB 的 VRAM,計算一下訓練‘ Llama3 7B’模型所需的 GPU 數量,大約為 :

GPU 的總數≈(7 * 18 * 1.25)/24,大約等于7

對于推理而言, 可以簡化為訓練階段的1/8~1/9 , 當然,這些只是一般意義的粗略估計。

4. 由大模型參數到分布式訓練

理解大模型參數的組成及其對內存和GPU的需求,有助于深入掌握分布式訓練在工程實踐中所面臨的挑戰。

采用專為分布式訓練設計的框架,例如TensorFlow或PyTorch,可以顯著簡化分布式訓練策略的實施過程,這些框架提供了豐富的工具和API。通過運用梯度累積等技術在更新模型前,或利用梯度壓縮等技術減少節點間的數據交換量,可以有效降低通信成本。確定分布式訓練的最佳批次大?。辞拔奶岬降膮礲)至關重要;b值過小可能增加通信開銷,而過大則可能導致內存不足。

LLMOps的重要性日益凸顯。定期監控為分布式訓練配置的性能指標,調整超參數、分區策略和通信設置以優化性能,是提升訓練效率的關鍵。實施模型的檢查點機制并在發生故障時進行有效的恢復,可以確保訓練過程在無需從頭開始的情況下繼續進行。

換句話說,大模型的訓練/推理本質上是一個復雜的分布式系統架構工程挑戰,例如:

  • 通信開銷:在執行梯度計算和數據更新時,通信所需時間可能會影響整體的加速效果。
  • 同步復雜性:多臺機器并行訓練時,同步的復雜性需要謹慎設計。
  • 容錯與資源管理:單點故障對模型訓練和推理的影響,以及CPU與GPU的資源分配與調度策略。
  • ......

然而,實際上大多數工程師可能并不直接參與具體的訓練工作,而是關注在構建應用時可以如何利用大模型的參數。

圖片圖片

5. 大模型應用中使用的參數

這里主要關注在使用大模型輸出文本時,可以配置的三個參數:Temperature、Top-K和Top-P。

Temperature參數通常被誤解為僅控制模型創造性的開關,但其實它更深層的作用是調節概率分布的“軟性”。當Temperature值設置較高時,概率分布變得更柔和、均勻,這促使模型生成更多樣化、具創造性的輸出。反之,較低的Temperature值會使分布更尖銳,峰值更明顯,從而傾向于產生與訓練數據類似的輸出。

Top-K參數用于限制模型在每個步驟中輸出最可能的Top-K個標記,通過這種方式可以減少輸出中的不連貫或無意義內容。這種策略在維持輸出的最有可能的一致性與允許一定程度的創造性抽樣之間形成平衡。

Top-P是另一種解碼方法,它根據設定的P值(0≤P≤1)來選擇一組累積概率超過P值的最小單詞集合作為輸出。這種方法使得選中的單詞數量能夠根據下一個單詞的概率分布動態地增加或減少。特別地,當P值為1時,Top-P會選擇所有單詞,相當于從整個分布中抽樣,從而產生更加多樣的輸出;而當P值為0時,Top-P僅選擇概率最高的單詞,類似于貪婪解碼,使輸出更加集中和一致。

這三個參數共同作用,影響模型的行為。例如,當設置Temperature=0.8、Top-K=36以及Top-P=0.7時,模型首先基于上下文計算整個詞匯表的完整非規范化對數概率分布。Temperature=0.8意味著每個對數概率除以0.8,這在歸一化前有效地增加了模型對其預測的信心。Top-K=36表示選擇具有最高頻比例對數概率的36個標記。接著,Top-P=0.7在這個Top-K=36集合中應用過濾,按概率從高到低保持排序,直到累積概率達到0.7。最后,將這個過濾后的集合重新歸一化,用于后續的采樣過程。

6. 小結

在工程實踐中,理解大模型的參數是有意義的。參數在大模型中起著決定性的作用,它們定義了大模型的行為、性能、實現的成本以及對資源的需求。在工程上理解大模型的參數,就是要把握模型的復雜度、性能和能力之間的關系。從存儲和計算的視角合理配置和優化這些參數,可以在實際應用中更好地選擇和優化模型,以適應不同的任務需求和資源限制。

【參考資料】

  • ZeRO: Memory Optimizations Toward Training Trillion Parameter Models ,https://arxiv.org/pdf/1910.02054v3.pdf
  • Reducing Activation Recomputation in Large Transformer Models,https://arxiv.org/pdf/2205.05198.pdf
  • https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/
  • https://blog.eleuther.ai/transformer-math/
責任編輯:武曉燕 來源: 喔家ArchiSelf
相關推薦

2023-10-13 19:58:33

Mistral7B模型

2024-02-22 10:09:00

開源模型

2024-02-04 08:00:00

Zephyr 7B大語言模型算法

2024-03-18 07:01:42

2024-07-09 00:00:06

RAG參數模型

2025-01-02 12:48:36

2024-09-05 14:25:00

訓練代碼

2024-03-25 08:00:00

2024-04-02 09:17:50

AI數據開源

2023-02-28 07:03:09

AIMeta大型語言

2023-10-31 10:11:50

昆侖萬維大模型

2024-07-18 12:53:13

2024-01-10 17:10:53

數據訓練

2023-10-21 12:42:06

數據模型

2023-11-18 09:37:49

2024-08-13 15:40:00

2024-06-11 14:30:18

2023-10-17 19:43:03

RACE排序數據

2023-09-12 14:45:18

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜精品在线观看 | 青青草av网站 | 日韩国产在线 | 久久久久久国产精品久久 | 九色网址| 伊人免费观看视频 | 最近日韩中文字幕 | 一区二区三区四区在线 | 中文字幕 国产精品 | 日韩视频精品 | 国产欧美日韩精品一区二区三区 | 国产精品久久久亚洲 | 久久精品久久久 | 午夜激情网| 亚洲一区二区三区免费观看 | 久久精品手机视频 | 亚洲精品久久久一区二区三区 | 日本a级大片 | 一区二区三区 在线 | 九九av| 国产精品久久久久久久白浊 | 久久99精品国产 | 天天综合久久 | 日本午夜在线视频 | 亚洲成人免费av | 欧美日在线 | 欧美中文在线 | 粉嫩av久久一区二区三区 | 国产精品精品视频一区二区三区 | 久久久久久成人 | 日一区二区三区 | 国产在线小视频 | 日本一道本 | 国产99视频精品免费视频7 | 国产高潮好爽受不了了夜色 | 国产精品国产精品国产专区不蜜 | 国产精品欧美一区二区三区不卡 | 日韩在线视频免费观看 | 羞羞视频免费在线观看 | 国产欧美一区二区三区日本久久久 | 国产精品美女一区二区三区 |