雖然大型語言模型 (LLM) 中的「L」暗示規模龐大,但實際情況較為複雜。有些 LLM 包含數兆個參數,有些則能有效運作,但數量要少很多。
來看看幾個實際範例,以及不同模型大小的實際影響。
LLM 大小和大小類別
身為網頁程式開發人員,我們通常會將資源的大小視為自身的下載大小。模型的記錄大小則是指參數的數量。例如,Gemma 2B 表示 Gemma 帶有 20 億個參數。
LLM 可能有數十萬、數百萬、億個參數,甚至數兆個參數。
大型 LLM 的參數比較小的項目更多,可擷取更複雜的語言關係,並處理細微的提示。此外,他們通常以大型資料集訓練。
您可能已註意到,特定模型大小 (例如 20 億或 70 億個) 是常見的尺寸。例如 Gemma 2B、Gemma 7B 或 Mistral 7B。模型大小類別是近似分組,例如,Gemma 2B 的參數大約「約」 20 億,但不一定。
模型大小類別可讓您實際評估 LLM 成效。不妨把這些類別想像成在拳擊課程的重量類別:相同大小類別的模型會比較容易比較。有兩個 2B 模式的成效相近。
即便如此,小型模型的效能,也會和特定工作的大型模型相同。
雖然我們最先進的 LLM 模型大小 (例如 GPT-4 和 Genmini Pro 或 Ultra) 不一定都會揭露,但大家常認為模型大小高達數百億個或數兆個參數。
並非所有模型在名稱中指明參數數量。某些模型會在版本號碼後加上版本號碼。舉例來說,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 時,您通常需要執行更多提示工程工作。
下載大小
參數越多,下載檔案大小越大,模型的下載大小就越高,但即使模型視為小型,也能合理用於裝置端用途。
雖然有技術能根據參數數量計算模型的下載大小,但這項作業可能相當複雜。
自 2024 年初起,模型下載作業的大小很少記錄。因此,如果是裝置端和瀏覽器中的用途,建議您前往 Chrome 開發人員工具的「網路」面板或其他瀏覽器開發人員工具,查看下載大小。
Gemma 可與 MediaPipe LLM Inference API 搭配使用。DistilBERT 與 Transformers.js 搭配使用。
模型縮減技術
現有多項技術可大幅降低模型的記憶體需求:
- LoRA (低排名調整):微調技術,預先訓練的權重會遭到凍結。進一步瞭解 LoRA。
- 修剪:移除模型中較不重要的權重以縮減模型大小。
- 量化:將權重的精確度從浮點數 (例如 32 位元) 降至低位元表示法 (例如 8 位元) 的精確度。
- 知識擷取:訓練較小的模型以模仿較大預先訓練模型的行為。
- 共用參數:針對模型的多個部分使用相同的權重,以減少不重複參數的總數。