Llama 3.1 70B 需要使用多少 RAM 記憶體?

Llama 3.1 70B 需要使用多少 RAM 記憶體?

Llama 3.1 70B 是 AI 領域中一款先進的語言模型,以其出色的能力獲得了極大的關注。然而,強大的能力也伴隨著可觀的硬體需求,特別是在 RAM 使用方面。

本文將深入探討 Llama 3.1 70B 的記憶體消耗細節、硬體需求以及優化策略。無論您是想要實作此模型的開發者,還是對其技術層面感興趣的 AI 愛好者,這份全面指南都將提供有價值的見解,幫助您有效利用 Llama 3.1 70B。

Llama 3.1 需要多少記憶體?

Llama 3.1 帶來了令人振奮的進展,但運行它需要仔細考慮您的硬體資源。我們已經詳細說明了三種模型規模在訓練與推理時的記憶體需求。

推理時的記憶體需求

對於推理,記憶體需求會根據模型大小和權重精度而有所不同。下表顯示了不同配置下所需的近似記憶體:

模型大小 FP16 FP8 INT4
8B 16 GB 8 GB 4 GB
70B 140 GB 70 GB 35 GB
405B 810 GB 405 GB 203 GB

注意:上表的數字僅表示載入模型檢查點所需的 GPU VRAM。它們不包含 CUDA 核心或 CUDA 圖所需的 torch 保留空間。

例如,一個 H100 節點(配有 8 張 H100)約有 640 GB 的 VRAM,因此 405B 模型必須在多節點設置中運行,或者使用較低精度(例如 FP8),這也是建議的方法。

請記住,較低的精度(例如 INT4)可能會導致一定程度的準確度損失,但能顯著降低記憶體需求並提高推理速度。除了模型權重之外,您還需要將 KV 快取保留在記憶體中。它包含模型上下文中的所有 token 的鍵與值,這樣在生成新 token 時就不需要重新計算。尤其是在利用較長上下文長度時,這會成為一個重要因素。在 FP16 下,KV 快取的記憶體需求為:

模型大小 1k tokens 16k tokens 128k tokens
8B 0.125 GB 1.95 GB 15.62 GB
70B 0.313 GB 4.88 GB 39.06 GB
405B 0.984 GB 15.38 GB 123.05 GB

特別是對於小型模型,當上下文長度接近最大值時,快取使用的記憶體與權重一樣多。

訓練時的記憶體需求

下表列出了使用不同技術訓練 Llama 3.1 模型所需的近似記憶體:

模型大小 完整微調 LoRA Q-LoRA
8B 60 GB 16 GB 6 GB
70B 500 GB 160 GB 48 GB
405B 3.25 TB 950 GB 250 GB

注意:這些是估算值,可能會根據具體的實作細節和優化方式而有所不同。

影響 RAM 使用量的因素

以下幾個因素會顯著影響 Llama 3.1 70B 的 RAM 使用量:

批次大小:較大的批次大小需要更多記憶體,因為需要同時處理更多資料。減小批次大小有助於降低記憶體使用量。
模型精度:模型權重的精度(例如使用 32 位元浮點數與 16 位元浮點數或 8 位元精度)也會影響記憶體使用量。
硬體配置:用於推理的硬體類型(例如 GPU vs. CPU)在所需記憶體量方面扮演重要角色。對於大型模型,通常使用具有高記憶體頻寬的 GPU,因為它們能有效處理並行運算。
分散式設置:透過分散式運算,模型被分配到多個設備上,從而減輕任何單一機器的記憶體負擔。

最佳效能所需的硬體規格

要充分發揮 Llama 3.1 70B 的潛力,建議採用特定硬體配置。讓我們來拆解關鍵組件及其需求。

RAM 規格

如前所述,Llama 3.1 70B 的基本記憶體需求超過 140 GB。然而,為了確保平穩運行並應對額外的記憶體需求,建議系統至少配備 256 GB 的 RAM。這提供了充足的餘量來處理:

  1. 載入模型
  2. 處理長輸入序列
  3. 執行中間運算
  4. 管理輸出生成

對於生產環境或可能同時運行多個模型實例的研究環境,配備 512 GB 甚至 1 TB RAM 的系統並不少見。

CPU 需求

雖然 GPU 處理了 AI 運算中的大部分繁重工作,但強大的 CPU 對於以下方面仍然至關重要:

  1. 資料前處理
  2. 管理模型載入與卸載
  3. 處理 I/O 操作
  4. 協調多 GPU 設置

為了獲得最佳效能,請考慮使用高階伺服器級 CPU,具備:

  • 多核心(32 核心以上)
  • 高時脈(3.0 GHz 以上)
  • 大快取容量

Intel Xeon 或 AMD EPYC 處理器是運行大型語言模型(如 Llama 3.1 70B)系統的常見選擇。

儲存考量

快速的儲存設備對於快速載入模型和高效處理資料至關重要。建議如下:

  1. NVMe SSD,容量 1TB 或以上
  2. RAID 配置以改善 I/O 效能
  3. 用於分散式設置的高速網路儲存解決方案

模型本身,包括所有必要的檔案和可能的微調版本,可能會佔用數百 GB 的儲存空間。

散熱與電源供應

運行 Llama 3.1 70B 會產生大量熱量並需要可觀的電力。請確保您的設置包含:

  1. 高效的散熱系統(通常偏好 GPU 液體散熱)
  2. 高瓦數電源供應器(1200W 或更高,視完整系統配置而定)
  3. 整個系統的妥善通風

網路基礎設施

對於分散式運算設置或透過 API 提供模型服務時,請考慮:

  1. 高速網路介面(10 Gbps 乙太網路或更高)
  2. 低延遲網路交換器
  3. 足夠的頻寬用於資料傳輸和模型服務

透過滿足這些硬體規格,您可以確保 Llama 3.1 70B 發揮其全部潛力,為您的 AI 應用提供最佳效能。

Llama 3.1 70B 的 GPU 考量

Llama 3.1 70B 的 GPU 考量

圖形處理器(GPU)在高效運行 Llama 3.1 70B 等大型語言模型中扮演著關鍵角色。它們的並行處理能力能顯著加速運算,使其在訓練和推理任務中都不可或缺。

VRAM 需求

GPU 上的 VRAM(視訊記憶體)是使用 Llama 3.1 70B 時的一個關鍵因素。該模型龐大的體積意味著標準的消費級 GPU 無法以完整精度運行它。以下是有關 VRAM 考量的詳細說明:

  1. 最低 VRAM:要以 FP16 精度(與 FP32 相比可將記憶體需求減半)載入完整模型,您至少需要 140 GB 的 VRAM。這超過了即使是最高階消費級 GPU 的容量。

  2. 建議 VRAM:為了獲得最佳效能並滿足處理過程中的額外記憶體需求,總 VRAM 為 200 GB 或更高是理想的。

  3. 多 GPU 設置:由於這些高需求,多 GPU 配置很常見。例如,一個配備 4 張 48 GB GPU(總計 192 GB VRAM)的設置可以有效地處理該模型。

適合的 GPU 型號

有幾款高階 GPU 型號能夠以單一或多 GPU 配置運行 Llama 3.1 70B:

  1. NVIDIA A100:擁有 80 GB HBM2e 記憶體,這是少數能處理該模型的單一 GPU 之一,儘管需要一些優化。

  2. NVIDIA A40:提供 48 GB GDDR6 記憶體,常用於多 GPU 設置。

  3. NVIDIA H100:NVIDIA 資料中心 GPU 系列中的最新產品,提供 80 GB HBM3 記憶體和增強的 AI 效能。

  4. AMD Instinct MI250:擁有 128 GB HBM2e 記憶體,這款 GPU 可能在單卡上運行模型,但需確認軟體相容性。

GPU 記憶體頻寬

除了原始的 VRAM 容量,記憶體頻寬對於高效模型運行至關重要。上述 GPU 提供了高記憶體頻寬:

  • A100:最高 2,039 GB/s
  • H100:最高 3,350 GB/s
  • MI250:最高 3,276 GB/s

更高的頻寬允許 GPU 記憶體與處理單元之間更快的資料傳輸,對於運行 Llama 3.1 70B 所涉及的複雜操作至關重要。

GPU 優化技術

為了最大化 GPU 使用率並可能在 VRAM 較少的系統上運行模型,可以採用幾種技術:

  1. 混合精度訓練:結合 FP16 和 FP32 運算可以減少記憶體使用,同時保持準確度。

  2. 梯度檢查點:這種技術以計算換取記憶體,在反向傳播期間重新計算某些值,而不是儲存它們。

  3. 模型並行:將模型分佈到多個 GPU 上,可以運行超過單一 GPU 記憶體容量的更大模型。

  4. 注意力機制優化:實作高效的注意力機制可以顯著減少記憶體使用和計算時間。

  5. 量化:將模型轉換為較低精度格式(如 INT8)可以大幅降低記憶體需求,但可能以犧牲一些準確度為代價。

透過利用這些 GPU 考量和優化技術,即使是在最初看起來不足的硬體設置上,也可以高效運行 Llama 3.1 70B。關鍵在於平衡效能、準確度和資源使用之間的取捨。

對於希望在專案中實作 Llama 3.1 70B 或其他大型語言模型的開發者,Novita AI 的快速入門指南 提供了關於設定和優化 LLM API 的全面說明,確保有效利用現有硬體資源。

如何使用 Novita AI 運行 Llama 3.1

無論您是在建立 AI 驅動的客服聊天機器人、智慧語言翻譯工具,還是履歷編輯工具,Novita AI 的 API 都能讓整合變得簡單。這使開發者可以專注於主要任務,同時利用 Llama 3.1 的所有功能,無需擔心管理系統的複雜性。

在正式整合 Llama 3.1 API 之前,您可以透過 Novita AI 在線試用。以下是開始使用 Novita AI Llama 線上服務的方法:

步驟 1: 選擇您想要使用的 Llama 模型,並評估其能力。

Novita AI 上的 Llama 模型列表截圖

步驟 2: 在指定欄位中輸入所需的提示詞。此區域用於輸入要模型處理的文字或問題。

Llama 3.1 8b 試玩區

步驟 3: 獲取模型針對給定對話的回應。

API 參考範例

from openai import OpenAI
  
client = OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    # 獲取 Novita AI API 金鑰,參考:/docs/get-started/quickstart.htmll#_3-create-an-api-key
    api_key="<您的 Novita AI API 金鑰>",
)

model = "meta-llama/llama-3.1-8b-instruct"
stream = True # 或 False
max_tokens = 8192

chat_completion_res = client.chat.completions.create(
    model=model,
    messages=[
        {
            "role": "system",
            "content": "請扮演一個樂於助人的助手。",
        },
        {
            "role": "user",
            "content": "你好!",
        }
    ],
    stream=stream,
    max_tokens=max_tokens,
  )

if stream:
    for chunk in chat_completion_res:
        print(chunk.choices[0].delta.content or "", end="")
else:
    print(chat_completion_res.choices[0].message.content)
 

常見問題

運行 Llama 3.1 70B 需要多少 RAM?

運行 Llama 3.1 70B 進行推理通常需要 64 GB 到 128 GB 的系統 RAM,具體取決於批次大小和模型實作細節等因素。

Llama 2 70B 需要多少記憶體?

Llama 2 70B 通常需要與 Llama 3.1 70B 相當的系統 RAM,有效推理的典型需求約為 64 GB 到 128 GB。

Llama 3.1 佔用多少空間?

Llama 3.1 需要大量的儲存空間,可能達到數百 GB,以容納模型檔案和運行所需的任何額外資源。

運行 Llama 3.1 8B 需要多少 VRAM?

對於較小的 Llama 3.1 8B 模型,所需的 VRAM 通常比 70B 版本少得多,但仍取決於具體的實作方式和所用精度。

32GB RAM 對於運行 Llama 模型來說如何?

32GB RAM 通常不足以運行像 Llama 3.1 70B 這樣的大型模型。不過,它可能適合較小的版本或高度優化的設置。

原文發表於 Novita AI

Novita AI 是一個全能雲端平台,助您實現 AI 抱負。整合 API、無伺服器、GPU 實例——您所需的高成本效益工具。免除基礎設施煩惱,免費起步,讓您的 AI 願景成真。

推薦閱讀

1.Llama 3.1 405B 推理服務部署:初學者指南

2.解碼 Llama 3 vs 3.1:哪個適合您?

3.Llama 3.1 能做什麼:掌握其功能與應用