他在週五晚上租了一台 GPU 伺服器,用最陽春的方式載入模型,打算測試客服機器人一次同時回答 50 位客戶
DeepInfer 是 DeepSeek 把自家正式上線服務所用的 推論引擎負責把訓練好的模型拿來實際回答問題的那套執行程式,好比餐廳的廚房,模型是食譜,引擎是廚師和灶台 開源出來的版本。目前它支援 DeepSeek-V4.1-Flash 這個模型,硬體則是 NVIDIA SM100 顯示卡和華為 Ascend 950 晶片。
它的賣點有兩類。第一類是「更快」:用 核心運算程式kernel,直接在顯示卡上執行的小型高度優化程式,專門做矩陣乘法這類最耗力的計算(像 FlashMLA、DeepGEMM)、非同步排程CPU 在安排下一批工作的同時,顯示卡已經在算上一批,兩邊不互相等待,以及用「草稿字」加速解碼。第二類是「更穩」:同樣的輸入永遠得到同樣的輸出,也就是 確定性取樣只要輸入的字和取樣參數相同,輸出就一定相同,不會每次抽籤抽到不同結果。
另外要注意:這次釋出的只是「離線推論」核心,官方明講完整線上服務還需要 KV 快取系統把已經算過的前文記憶存起來,下次不用重算的倉庫、預填與解碼拆開部署、跨副本的負載平衡,這些都「不包含」在內。也就是說它是引擎,不是整台車。另外它目前只能在 Linux 上建置,需要 Python 3.12、GCC 13 以上和 CUDA 13。
| 功能 | 解決的問題 | 開啟方式(摘自 README) |
|---|---|---|
| DSpark 草稿驗證 | 解碼太慢 | DEEPINFER_ENABLE_MTP_VARLEN=1 |
| SWA 有界重播 | 預填重算太多 | DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compact |
| 批次不變推論 | 答案受同批其他請求影響 | DEEPINFER_BATCH_INVARIANT=1(僅 NVIDIA) |
| 確定性取樣 | 同輸入結果不同 | 再加固定 seq_seed,並關閉 MTP_VARLEN |
| 結構化輸出 | 輸出格式亂跑 | SamplingParams 的 so_args 參數 |
以下是根據 README 說明整理的設定示意,用來看懂「要同時做到可重現」需要哪幾個開關;實際匯入與完整用法請以官方 examples 為準。
import osos.environ['DEEPINFER_ACCELERATOR'] = 'nvidia'os.environ['DEEPINFER_BATCH_INVARIANT'] = '1'os.environ['DEEPINFER_ENABLE_MTP_VARLEN'] = '0'params = SamplingParams(seq_seed=1234)