在本機執行 DeepSeek V3:開發者指南

在本機執行 DeepSeek V3:開發者指南

重點摘要

DeepSeek-V3 是一款革命性的開源模型,在編碼和數學等技術領域表現卓越。

雖然本地部署提供靈活性,但需要進階硬體和專業知識。

為了更方便存取,像 Novita AI 這樣的 API 解決方案提供了可擴展的替代方案。

DeepSeek V3 是一款先進的 AI 模型,因其在技術和數學領域的出色能力而備受關注。作為 ChatGPT 等模型的開源替代方案,它為開發者和研究人員提供了極具吸引力的選擇。本文提供了一份詳細指南,說明如何在本機存取 DeepSeek V3,涵蓋各種部署方法、硬體需求、挑戰和最佳化策略。

在本機存取 DeepSeek V3

1. GitHub (DeepSeek-Infer Demo)

指南

  • 儲存庫: DeepSeek-V3 模型在 GitHub 上可用,您可以在那裡找到程式碼儲存庫。
  • 克隆: 使用 LFS 支援 複製儲存庫:
git clone https://github.com/deepseek-ai/DeepSeek-V3.git
cd DeepSeek-V3/inference
  • 隔離環境(建議): 使用 conda 建立隔離環境:
conda create -n deepseek-v3 python=3.10 -y
conda activate deepseek-v3
  • 相依性: 安裝具有 版本鎖定 的相依性:
pip install torch==2.4.1 triton==3.0.0 transformers==4.46.3 safetensors==0.4.5
  • 模型權重: 從 Hugging Face 下載模型權重並放入指定目錄。
  • 進階轉換: 將模型權重轉換為特定格式,啟用 FP8 量化:
python convert.py \
  --hf-ckpt-path ./DeepSeek-V3 \
  --save-path ./DeepSeek-V3-Demo \
  --n-experts 256 \
  --model-parallel 16 \
  --quant-mode fp8
  • 執行模式:

    • 互動式聊天(多節點):
torchrun --nnodes 2 --nproc-per-node 8 \
  generate.py \
  --ckpt-path ./DeepSeek-V3-Demo \
  --config configs/config_671B.json \
  --temperature 0.7 \
  --top-p 0.95 \
  --max-new-tokens 2048
  • 批次處理:
torchrun --nproc-per-node 8 \
  generate.py \
  --input-file batch_queries.jsonl \
  --output-file responses.jsonl

優勢

  • 快速原型製作: 基本推論設定少於 5 分鐘
  • 記憶體效率: 比 BF16 基準減少 40% VRAM 使用量
  • 適合研究: 可直接存取中間層

劣勢

  • 可擴展性有限: 模型平行處理最多 16 個節點
  • 不支援批次處理: 使用互動模式時 僅支援單序列處理
  • 手動量化: 需要明確的 FP8 轉換

2. SGLang

描述

  • 框架: SGLang 是一個支援 DeepSeek V3 的框架,為 NVIDIA 和 AMD GPU 提供最佳化效能。
  • 推論模式: 完全支援 BF16 和 FP8 推論模式下的 DeepSeek-V3。
  • 平行處理: 支援多節點張量平行處理,可讓您在多台連線的機器上執行模型。
  • 最佳化:
from sglang import runtime

# 啟用混合平行處理
runtime.configure(
    tensor_parallel=8,
    pipeline_parallel=4,
    expert_parallel=2
)

# FP8 推論設定檔
runtime.set_precision(
    weight=8,
    activation=8,
    kv_cache=8
)

優勢

  • 生產就緒: 支援 99.9% 正常運行時間 SLA
  • 硬體無關: 支援 AMD Instinct 的 ROCm/HIP
  • 進階量化: 自動 FP8 縮放
  • 動態批次處理: 吞吐量比基準提高 5 倍
  • 推測解碼: 使用 MTP 加速 2.3 倍
  • 跨平台支援: NVIDIA/AMD GPU 的統一 API

劣勢

  • 部署複雜: 需要 Kubernetes 專業知識
  • 記憶體開銷: 比原生實作高 15%
  • 自訂性有限: 專家路由不透明

3. LMDeploy

描述

  • 框架: LMDeploy 是另一個支援 DeepSeek V3 的框架,專為大型語言模型的高效推論和服務而設計。
  • 部署選項: 提供離線和線上部署功能。
  • 整合: 可與 PyTorch 工作流程整合。
  • TurboMind 整合:
from lmdeploy import pipeline, GenerationConfig

# 初始化 4 路張量平行
pipe = pipeline(
    "DeepSeek-V3",
    tp=4,
    max_batch_size=32,
    cache_max_entry_count=0.5
)

# 設定生成參數
gen_config = GenerationConfig(
    temperature=0.8,
    top_k=50,
    repetition_penalty=1.1,
    stop_phrases=&#91;"<|EOT|>"]
)

優勢

  • 企業級功能: RBAC、速率限制
  • 最佳化核心: 每個 H100 每秒 1536 個 token
  • 雲端原生: Prometheus 監控整合
  • 持續批次處理: 動態請求分組
  • Token 修復: 自動完成校正
  • 多 LoRA 支援: 適配器熱插拔

劣勢

  • 學習曲線陡峭: 複雜的設定語法
  • 資源密集: 完整功能至少需要 8 個 H100
  • 供應商鎖定: 需要 NVIDIA GPU

硬體需求

deepseek 硬體需求

挑戰與最佳化

挑戰

替代方案 - API

API 解決了哪些問題?

高 VRAM 需求

  • API 解決方案:完整解析度
  • 技術實作:伺服器端叢集資源池化

記憶體瓶頸

  • API 解決方案:完全消除
  • 技術實作:伺服器節點上的動態記憶體分配

多 GPU 擴展的複雜性

  • API 解決方案:自動處理
  • 技術實作:雲端原生水平自動擴展

跨作業系統相容性問題

  • API 解決方案:原生支援
  • 技術實作:標準化 HTTP/WebSocket 介面

推論延遲

  • API 解決方案:部分改善
  • 技術實作:邊緣運算節點 + 全域加速

部署複雜性

  • API 解決方案:完全消除
  • 技術實作:預建 SDK,一行整合

量化準確度損失

  • API 解決方案:可選擇繞過
  • 技術實作:伺服器端 FP16 精度保留

不透明的專家路由

  • API 解決方案:完全透明
  • 技術實作:即時路由診斷 API

絕佳解決方案 - Novita AI

Novita AI 是一個 AI 雲端平台,為開發者提供簡單的 API 來部署 AI 模型,同時也提供經濟實惠且可靠的 GPU 雲端來建置和擴展。

步驟 1:登入並存取模型庫

登入您的帳戶,然後按一下 模型庫 按鈕。

登入並存取模型庫

步驟 2:選擇您的模型

瀏覽可用的選項,選擇適合您需求的模型。

選擇模型

立即試用 DeepSeek V3 Demo!

步驟 3:開始免費試用

開始免費試用,探索所選模型的功能。

免費試用

步驟 4:取得您的 API 金鑰

為了驗證 API,我們將為您提供一個新的 API 金鑰。進入「設定」頁面,您可以複製如圖所示的 API 金鑰。

取得 API 金鑰

步驟 5:安裝 API

使用您程式語言專屬的套件管理器安裝 API。

安裝 API

安裝完成後,將必要的函式庫匯入您的開發環境。使用您的 API 金鑰初始化 API,以便開始與 Novita AI LLM 進行互動。以下是 Python 使用者使用聊天完成 API 的範例。


from openai import OpenAI
  
client = OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    api_key="<YOUR Novita AI API Key>",
)

model = "deepseek/deepseek_v3"
stream = True # or False
max_tokens = 2048
system_content = """Be a helpful assistant"""
temperature = 1
top_p = 1
min_p = 0
top_k = 50
presence_penalty = 0
frequency_penalty = 0
repetition_penalty = 1
response_format = { "type": "text" }

chat_completion_res = client.chat.completions.create(
    model=model,
    messages=&#91;
        {
            "role": "system",
            "content": system_content,
        },
        {
            "role": "user",
            "content": "Hi there!",
        }
    ],
    stream=stream,
    max_tokens=max_tokens,
    temperature=temperature,
    top_p=top_p,
    presence_penalty=presence_penalty,
    frequency_penalty=frequency_penalty,
    response_format=response_format,
    extra_body={
      "top_k": top_k,
      "repetition_penalty": repetition_penalty,
      "min_p": min_p
    }
  )

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

註冊後,Novita AI 會提供 $0.5 的點數讓您開始使用!

如果免費點數用完,您可以付費繼續使用。

DeepSeek V3 代表了開源 AI 的重大進步,在各種任務中提供最先進的效能。雖然本地部署提供了更好的控制和隱私,但它需要大量的硬體資源和專業技術知識。對於無法滿足這些需求的人來說,像 Novita AI 這樣的 API 替代方案提供了易於存取且可擴展的解決方案。選擇本地部署還是使用 API,取決於具體需求和資源。

常見問題

什麼是混合專家 (MoE) 架構?為什麼它很重要?

MoE 使用多個「專家」來處理特定的輸入 token,提高了複雜任務的效率和效能。它在計算上比密集模型更高效,但仍然需要大量硬體。

DeepSeek V3 和 Llama 3.3 70B 在基準測試和使用案例上相比如何?

DeepSeek V3 在編碼和數學任務上更勝一籌,而 Llama 3.3 70B 在通用語言和多語言應用方面表現出色。

DeepSeek V3 的 VRAM 需求是多少?

DeepSeek V3 的 VRAM 需求因精度而異。對於 FP16,671B 模型需要約 1,543 GB 的 VRAM,而使用 4 位元量化則需要約 386 GB 的 VRAM。活躍參數為 37B。

Novita AI 是一個一站式雲端平台,助您實現 AI 願景。整合 API、無伺服器、GPU 實例——經濟實惠的工具。消除基礎設施負擔,免費開始,讓您的 AI 願景成為現實。

推薦閱讀