瞭解 LLM 大小

Maud Nalpas
Maud Nalpas

雖然大型語言模型 (LLM) 中的「L」暗示規模龐大,但實際情況較為複雜。有些 LLM 包含數兆個參數,有些則能有效運作,但數量要少很多。

來看看幾個實際範例,以及不同模型大小的實際影響。

身為網頁程式開發人員,我們通常會將資源的大小視為自身的下載大小。模型的記錄大小則是指參數的數量。例如,Gemma 2B 表示 Gemma 帶有 20 億個參數。

LLM 可能有數十萬、數百萬、億個參數,甚至數兆個參數。

大型 LLM 的參數比較小的項目更多,可擷取更複雜的語言關係,並處理細微的提示。此外,他們通常以大型資料集訓練。

您可能已註意到,特定模型大小 (例如 20 億或 70 億個) 是常見的尺寸。例如 Gemma 2B、Gemma 7BMistral 7B。模型大小類別是近似分組,例如,Gemma 2B 的參數大約「約」 20 億,但不一定。

模型大小類別可讓您實際評估 LLM 成效。不妨把這些類別想像成在拳擊課程的重量類別:相同大小類別的模型會比較容易比較。有兩個 2B 模式的成效相近。

即便如此,小型模型的效能,也會和特定工作的大型模型相同

HuggingFace 模型大小核取方塊的螢幕截圖。
HuggingFace 上的模型大小類別。這些類別並非業界標準,而是自然產生。

雖然我們最先進的 LLM 模型大小 (例如 GPT-4 和 Genmini Pro 或 Ultra) 不一定都會揭露,但大家常認為模型大小高達數百億個或數兆個參數

模型大小可能差異甚大,在這張圖中,DistilBERT 與巨型 Gemini Pro 相比,具有小小的點。

並非所有模型在名稱中指明參數數量。某些模型會在版本號碼後加上版本號碼。舉例來說,Gemini 1.5 Pro 是指模型的 1.5 版 (符合第 1 版)。

大型語言模型?

什麼情況下模型太小,無法做為 LLM?在 AI 和機器學習社群中 LLM 的定義可能有些微差異

有些人只會將含有數十億參數的大型模型視為真實 LLM,而較小型的模型 (例如 DistilBERT) 可視為簡單的自然語言處理模型。其他類型則是在 LLM 定義中規模較小但功能強大的模型,例如 DistilBERT。

適用於裝置端用途的更小 LLM

大型 LLM 需要大量儲存空間和大量運算能力來進行推論。而且需在搭載特定硬體 (例如 TPU) 的強大專屬伺服器上執行。

我們建議網頁程式開發人員注意一個問題,在於模型是否夠小,可下載並在使用者裝置上執行。

但這是個很難回答的問題!以目前來說,要知道「這個模型可在大多數中階裝置上執行」,原因有很多:

  • 裝置功能因記憶體、GPU/CPU 規格等因素而有差異。低階 Android 手機和 NVIDIA® RTX 筆記型電腦截然不同。您可能有一些關於使用者所用裝置的資料點。我們尚未針對用於存取網路的基準裝置提供定義。
  • 模型或架構運作環境可能會經過最佳化調整,以便在特定硬體上執行。
  • 目前沒有任何方法能判斷特定 LLM 是否能在特定裝置上下載及執行。裝置的下載功能取決於 GPU 與 GPU 的數量等因素。

不過,我們僅具備一些經驗知識:目前有些模型具有幾百萬到幾十億個參數,並能在消費者等級裝置上在瀏覽器中執行。

例如:

  • 搭配 MediaPipe LLM Inference API 的 Gemma 2B (即使僅適用於只使用 CPU 的裝置)。試試看
  • 使用 Transformers.js 進行 DistilBERT。

此為萌芽起步。未來趨勢將持續演進:

  • 隨著 WebAssembly 和 WebGPU 的創新,WebGPU 支援更多程式庫、新程式庫和最佳化,因此使用者裝置能夠有效率地執行各種大小的 LLM。
  • 透過新興技術縮減技術,較小、高效能的 LLM 會越來越普遍。

小型 LLM 的注意事項

處理較小的 LLM 時,建議您一律考量效能和下載大小。

效能

任何模型的能力主要都取決於你的用途!依用途微調的較小 LLM 效能,可能優於較大型的一般 LLM。

然而,在同一個模型系列中,小型 LLM 的能力會比其大型的 LLM 低。在同樣的用途中,使用較小的 LLM 時,您通常需要執行更多提示工程工作

Chrome 開發人員工具「Network」面板的螢幕截圖。
Gemma 2B 的分數低於 Gemma 7B 的分數。
資料來源:HuggingFace Open LLM Leaderboard,2024 年 4 月

下載大小

參數越多,下載檔案大小越大,模型的下載大小就越高,但即使模型視為小型,也能合理用於裝置端用途。

雖然有技術能根據參數數量計算模型的下載大小,但這項作業可能相當複雜。

自 2024 年初起,模型下載作業的大小很少記錄。因此,如果是裝置端和瀏覽器中的用途,建議您前往 Chrome 開發人員工具的「網路」面板或其他瀏覽器開發人員工具,查看下載大小。

Chrome 開發人員工具「Network」面板的螢幕截圖。
在 Chrome 開發人員工具 Network 面板中,使用 Gemma 2BDistilBERT,以瀏覽器在網路應用程式中進行的裝置端推論。下載大小分別為 1.3 GB 和 67 MB。

Gemma 可與 MediaPipe LLM Inference API 搭配使用。DistilBERT 與 Transformers.js 搭配使用。

模型縮減技術

現有多項技術可大幅降低模型的記憶體需求:

  • LoRA (低排名調整):微調技術,預先訓練的權重會遭到凍結。進一步瞭解 LoRA
  • 修剪:移除模型中較不重要的權重以縮減模型大小。
  • 量化:將權重的精確度從浮點數 (例如 32 位元) 降至低位元表示法 (例如 8 位元) 的精確度。
  • 知識擷取:訓練較小的模型以模仿較大預先訓練模型的行為。
  • 共用參數:針對模型的多個部分使用相同的權重,以減少不重複參數的總數。