模型載入指南#

本文件旨在提供模型載入的功能說明。

複本#

副本用來指定模型加載的實例份數。例如,你有兩張 GPU,每張卡可以容納模型的一個副本,你可以將副本數設定為 2。這樣,兩個完全相同的模型實例將分佈在這兩張 GPU 上。Xinference 會自動進行負載平衡,確保請求均勻分配到多張卡上。使用者看到的仍是一個模型,這大幅提升了整體資源利用率。

舊版本多實例部署:

當您擁有多張 GPU 顯示卡時,每張顯示卡可承載一個模型實例,此時可將實例數量設定為等於 GPU 數量。例如:

  • 2張GPU,2個實例:每張GPU運行一個模型實例

  • 4張GPU,4個實例:每張GPU執行一個模型實例

在 v1.15.0 版被加入.

引入一個新的環境變數:

XINFERENCE_ALLOW_MULTI_REPLICA_PER_GPU

控制是否啟用單 GPU 多副本功能,預設值:1

新功能:智慧副本部署

  1. 單GPU多副本

新增支援:即使僅有一塊GPU,也能執行多個模型副本。

  • 場景:您擁有1個GPU且視訊記憶體充足

  • 配置:副本數量=3,GPU數量=1

  • 結果:3個模型實例,在同一GPU上運行,共享GPU資源

  1. 混合GPU分配

智能分配: 副本數可以不等於GPU數量,系統會智能分配

  • 場景: 你有2張GPU,需要3個副本

  • 配置: 複本數=3,GPU數量=2

  • 結果: GPU0 運行 2 個實例,GPU1 運行 1 個實例

混合分配策略#

當前策略為 空閒優先 :排程器始終嘗試將複本分配至最空閒的 GPU。使用 XINFERENCE_ENV_LAUNCH_STRATEGY 參數選擇啟動策略。

設定環境變數#

在 v1.8.1 版被加入.

有時我們希望在執行時為特定模型指定環境變數。從 v1.8.1 開始,Xinference 提供了單獨配置環境變數的功能,無需在啟動 Xinference 前設定。

針對 Web UI。

actor

命令列使用時,使用 --env 指定環境變數。

範例用法:

xinference launch xxx --env A 0 --env B 1

以 vLLM 為例,它有 V1 和 V0 兩個版本,預設會自動判定使用哪個版本。如果想在載入模型時強制透過設定 VLLM_USE_V1=0 來使用 V0,可以指定該環境變數。

配置模型虛擬空間#

在 v1.8.1 版被加入.

對於這部分,請參考 開關虛擬空間和定製依賴

批處理 / 連續批處理#

Xinference支援批次處理以提升吞吐量。對於基於 transformers 引擎的大型語言模型,可啟用連續批次處理功能,該功能可在啟動時透過環境變數進行設定。

關鍵設定:

  • XINFERENCE_BATCH_SIZEXINFERENCE_BATCH_INTERVAL 用於控制常規的批次處理行為。

  • XINFERENCE_TEXT_TO_IMAGE_BATCHING_SIZE(文字轉圖片模型,若支援)。

範例(大型語言模型,Transformers):

XINFERENCE_BATCH_SIZE=32 XINFERENCE_BATCH_INTERVAL=0.003 xinference-local --log-level debug
xinference launch -e <endpoint> --model-engine transformers -n qwen1.5-chat -s 4 -f pytorch -q none

範例(文生圖):

XINFERENCE_TEXT_TO_IMAGE_BATCHING_SIZE=1024*1024 xinference-local --log-level debug

有關詳細行為、支援的模型以及中止請求的資訊,請參閱 連續批處理

思考模式#

某些混合推理模型(例如Qwen3)支援可選的 思考模式 。您可在啟動時透過 --enable-thinking 參數啟用該功能。

範例用法:

xinference launch -n qwen3-xxx --model-engine vllm --enable-thinking