Skip to content
Xorbits Inference

配置 Xorbits Inference

Xorbits Inference (Xinference) 是一個強大的開源模型推理框架,支援 LLM、Embedding、Rerank 和多模態模型。提供分散式推理、一鍵部署、OpenAI 相容 API 等功能。

1. 安裝和部署 Xinference

1.1 訪問 Xinference 官網

訪問 Xinference 官網並檢視文件:https://inference.readthedocs.io/

GitHub 倉庫:https://github.com/xorbitsai/inference

1.2 環境要求

  • 作業系統:Linux、macOS、Windows
  • Python:3.8-3.11
  • GPU:可選(NVIDIA GPU 支援 CUDA)
  • 記憶體:根據模型大小,建議 16GB+

1.3 安裝 Xinference

使用 pip 安裝

bash
# 安裝Xinference
pip install "xinference[all]"

# 驗證安裝
xinference --version

預期結果:

xinference, version 0.x.x

常見錯誤:

  • 如果提示 command not found: xinference,說明安裝未成功或未加入 PATH
  • 如果提示 Python 版本不相容,請確保使用 Python 3.8-3.11

使用 Docker 安裝

bash
# 拉取Xinference官方映象
docker pull xprobe/xinference:latest

# 執行Xinference服務
docker run -p 9997:9997 -v $HOME/.xinference:/root/.xinference xprobe/xinference:latest

預期結果:

  • 映象拉取成功,顯示 Status: Downloaded newer image for xprobe/xinference:latest
  • 容器啟動後顯示日誌輸出,包含 Starting Xinference at http://0.0.0.0:9997

常見錯誤:

  • 如果拉取失敗,可能是網路問題,嘗試配置 Docker 映象加速
  • 如果埠 9997 被佔用,修改 -p 引數使用其他埠

1.4 啟動 Xinference 服務

啟動本地服務

bash
# 啟動Xinference
xinference-local --host 0.0.0.0 --port 9997

預期結果:

Starting Xinference at http://0.0.0.0:9997
Xinference service started successfully
You can now access the web UI at http://localhost:9997

常見錯誤:

  • 如果提示 Address already in use,說明埠被佔用,使用 --port 指定其他埠
  • 如果提示許可權錯誤,嘗試使用 sudo 或檢查檔案許可權

啟動叢集模式

bash
# 啟動supervisor(主節點)
xinference-supervisor --host 0.0.0.0 --port 9997

# 啟動worker(工作節點)
xinference-worker --endpoint http://supervisor_host:9997

預期結果:

  • Supervisor 啟動成功,顯示監聽地址和埠
  • Worker 連線成功,顯示 Connected to supervisor at http://supervisor_host:9997

1.5 部署模型

透過 Web UI 或命令列部署模型:

使用 Web UI

  1. 訪問:http://localhost:9997
  2. 點選 Launch Model 按鈕
  3. 選擇模型(如 qwen2.5-7b-instruct)
  4. 配置引數並啟動

預期結果:

  • Web UI 顯示可用模型列表
  • 點選 Launch 後,模型開始下載(如果本地沒有)
  • 模型載入成功後,顯示狀態為 "Running"
  • 可以看到模型的訪問地址,如 http://localhost:9997/v1

常見問題:

  • 如果模型列表為空,檢查網路連線或手動下載模型
  • 首次部署會下載模型檔案,可能需要較長時間(取決於模型大小)
  • 如果記憶體不足,選擇引數量更小的模型

使用命令列

bash
# 部署Qwen 2.5 7B模型
xinference launch --model-name qwen2.5-7b-instruct --size-in-billions 7

# 檢視已部署的模型
xinference list

預期結果:

Model launched successfully
Model UID: qwen2.5-7b-instruct-xxxxx
Model is now available at: http://localhost:9997/v1/models/qwen2.5-7b-instruct-xxxxx

檢視已部署模型的輸出示例:

UID                                   Name                      Type    Status
qwen2.5-7b-instruct-xxxxx            qwen2.5-7b-instruct       LLM     Running

常見錯誤:

  • 如果提示模型不存在,使用 xinference registrations 檢視可用模型
  • 如果啟動失敗,檢查日誌瞭解具體錯誤原因

1.6 驗證服務執行

bash
# 檢查服務狀態
curl http://localhost:9997/v1/models

正確返回結果示例:

json
{
  "object": "list",
  "data": [
    {
      "id": "qwen2.5-7b-instruct-xxxxx",
      "object": "model",
      "created": 1699234567,
      "owned_by": "xinference",
      "permission": []
    }
  ]
}

如果返回上述 JSON 內容,說明 Xinference 服務啟動成功並且模型已部署。

錯誤情況:

  1. 連線失敗:

    bash
    curl: (7) Failed to connect to localhost port 9997: Connection refused

    說明服務未啟動或埠配置錯誤,請檢查服務是否正常執行。

  2. 返回空列表:

    json
    {
      "object": "list",
      "data": []
    }

    說明服務正常執行,但還沒有部署任何模型,需要先部署模型。

  3. 404 錯誤:

    json
    {"detail": "Not Found"}

    說明訪問路徑錯誤,確認使用正確的 API 端點 /v1/models

2. 在 CueMate 中配置 Xinference 模型

2.1 進入模型設定頁面

登入 CueMate 系統後,點選右上角下拉選單的 模型設定

進入模型設定

2.2 新增新模型

點選右上角的 新增模型 按鈕。

點選新增模型

2.3 選擇 Xorbits Inference 服務商

在彈出的對話方塊中:

  1. 服務商型別:選擇 Xorbits Inference
  2. 點選後 自動進入下一步

選擇 Xinference

2.4 填寫配置資訊

在配置頁面填寫以下資訊:

基礎配置

  1. 模型名稱:為這個模型配置起個名字(例如:Xinference Qwen 2.5)
  2. API URL:保持預設 http://localhost:9997/v1(或修改為 Xinference 服務地址)
  3. API Key:可選,Xinference 服務啟動時配置了 --api-key 引數時填寫
  4. 模型版本:輸入已部署的模型名稱

2025 推薦模型

  • Qwen 2.5 系列
    • qwen2.5-72b-instruct:Qwen 2.5 72B 對話模型
    • qwen2.5-32b-instruct:Qwen 2.5 32B 對話模型
    • qwen2.5-14b-instruct:Qwen 2.5 14B 對話模型(推薦)
    • qwen2.5-7b-instruct:Qwen 2.5 7B 對話模型
  • Qwen 2.5 Coder 系列
    • qwen2.5-coder-32b-instruct:程式碼生成 32B
    • qwen2.5-coder-7b-instruct:程式碼生成 7B
  • DeepSeek R1 系列
    • deepseek-r1-8b:DeepSeek R1 8B 推理增強模型
  • Llama 3 系列
    • llama-3.3-70b-instruct:Llama 3.3 70B 對話模型
    • llama-3.1-70b-instruct:Llama 3.1 70B 對話模型
    • llama-3.1-8b-instruct:Llama 3.1 8B 對話模型
  • 其他推薦
    • mistral-7b-instruct-v0.3:Mistral 7B 對話模型
    • gemma-2-27b-it:Gemma 2 27B 對話模型
    • gemma-2-9b-it:Gemma 2 9B 對話模型
    • glm-4-9b-chat:GLM-4 9B 對話模型

注意:模型版本必須是已在 Xinference 中部署的模型。

填寫基礎配置

高階配置(可選)

展開 高階配置 面板,可以調整以下引數:

CueMate 介面可調引數:

  1. 溫度(temperature):控制輸出隨機性

    • 範圍:0-2(大部分模型),0-1(Qwen 系列)
    • 推薦值:0.7
    • 作用:值越高輸出越隨機創新,值越低輸出越穩定保守
    • 使用建議
      • 創意寫作/頭腦風暴:1.0-1.5
      • 常規對話/問答:0.7-0.9
      • 程式碼生成/精確任務:0.3-0.5
    • 注意:Qwen 系列模型的 temperature 最大值為 1,不是 2
  2. 輸出最大 tokens(max_tokens):限制單次輸出長度

    • 範圍:256 - 131072(根據模型而定)
    • 推薦值:8192
    • 作用:控制模型單次響應的最大字數
    • 模型限制
      • Qwen2.5 系列:最大 32K tokens
      • Llama 3.1/3.3 系列:最大 131K tokens
      • DeepSeek R1 系列:最大 65K tokens
      • Mistral 系列:最大 32K tokens
      • Gemma 2 系列:最大 8K tokens
    • 使用建議
      • 簡短問答:1024-2048
      • 常規對話:4096-8192
      • 長文生成:16384-32768
      • 超長文件:65536-131072(僅支援的模型)

高階配置

Xinference API 支援的其他高階引數:

雖然 CueMate 介面只提供 temperature 和 max_tokens 調整,但如果你透過 API 直接呼叫 Xinference,還可以使用以下高階引數(Xinference 採用 OpenAI 相容的 API 格式):

  1. top_p(nucleus sampling)

    • 範圍:0-1
    • 預設值:1
    • 作用:從機率累積達到 p 的最小候選集中取樣
    • 與 temperature 的關係:通常只調整其中一個
    • 使用建議
      • 保持多樣性但避免離譜:0.9-0.95
      • 更保守的輸出:0.7-0.8
  2. top_k

    • 範圍:0-100
    • 預設值:50
    • 作用:從機率最高的 k 個候選詞中取樣
    • 使用建議
      • 更多樣化:50-100
      • 更保守:10-30
  3. frequency_penalty(頻率懲罰)

    • 範圍:-2.0 到 2.0
    • 預設值:0
    • 作用:降低重複相同詞彙的機率(基於詞頻)
    • 使用建議
      • 減少重複:0.3-0.8
      • 允許重複:0(預設)
  4. presence_penalty(存在懲罰)

    • 範圍:-2.0 到 2.0
    • 預設值:0
    • 作用:降低已出現過的詞彙再次出現的機率(基於是否出現)
    • 使用建議
      • 鼓勵新話題:0.3-0.8
      • 允許重複話題:0(預設)
  5. stop(停止序列)

    • 型別:字串或陣列
    • 預設值:null
    • 作用:當生成內容包含指定字串時停止
    • 示例["###", "使用者:", "\n\n"]
    • 使用場景
      • 結構化輸出:使用分隔符控制格式
      • 對話系統:防止模型代替使用者說話
  6. stream(流式輸出)

    • 型別:布林值
    • 預設值:false
    • 作用:啟用 SSE 流式返回,邊生成邊返回
    • CueMate 中:自動處理,無需手動設定
  7. repetition_penalty

    • 型別:浮點數
    • 範圍:1.0-2.0
    • 預設值:1.0
    • 作用:Xinference 特有引數,對已生成的 token 進行懲罰以減少重複
    • 使用建議
      • 減少重複內容:1.1-1.3
      • 正常輸出:1.0(預設)
序號場景temperaturemax_tokenstop_ptop_kfrequency_penaltypresence_penalty
1創意寫作1.0-1.24096-81920.95500.50.5
2程式碼生成0.2-0.52048-40960.9400.00.0
3問答系統0.71024-20480.9500.00.0
4摘要總結0.3-0.5512-10240.9300.00.0
5頭腦風暴1.2-1.52048-40960.95600.80.8

2.5 測試連線

填寫完配置後,點選 測試連線 按鈕,驗證配置是否正確。

測試連線

如果配置正確,會顯示測試成功的提示,並返回模型的響應示例。

測試成功

如果配置錯誤,會顯示測試錯誤的日誌,並且可以透過日誌管理,檢視具體報錯資訊。

2.6 儲存配置

測試成功後,點選 儲存 按鈕,完成模型配置。

儲存配置

3. 使用模型

透過右上角下拉選單,進入系統設定介面,在大模型服務商欄目選擇想要使用的模型配置。

配置完成後,可以在面試訓練、問題生成等功能中選擇使用此模型, 當然也可以在面試的選項中單此選擇此次面試的模型配置。

選擇模型

4. 支援的模型列表

4.1 Qwen 2.5 系列(推薦)

序號模型名稱模型 ID引數量最大輸出適用場景
1Qwen 2.5 72B Instructqwen2.5-72b-instruct72B32K tokens超大規模任務
2Qwen 2.5 32B Instructqwen2.5-32b-instruct32B32K tokens大規模任務
3Qwen 2.5 14B Instructqwen2.5-14b-instruct14B32K tokens中等規模任務
4Qwen 2.5 7B Instructqwen2.5-7b-instruct7B32K tokens通用場景、價效比高
5Qwen 2.5 Coder 32Bqwen2.5-coder-32b-instruct32B32K tokens程式碼生成大型
6Qwen 2.5 Coder 7Bqwen2.5-coder-7b-instruct7B32K tokens程式碼生成中型

4.2 DeepSeek R1 系列

序號模型名稱模型 ID引數量最大輸出適用場景
1DeepSeek R1 8Bdeepseek-r1-8b8B65K tokens推理增強對話

4.3 Llama 3 系列

序號模型名稱模型 ID引數量最大輸出適用場景
1Llama 3.3 70B Instructllama-3.3-70b-instruct70B131K tokens超長上下文
2Llama 3.1 70B Instructllama-3.1-70b-instruct70B131K tokens高質量對話
3Llama 3.1 8B Instructllama-3.1-8b-instruct8B131K tokens通用對話

4.4 其他推薦模型

序號模型名稱模型 ID引數量最大輸出適用場景
1Mistral 7B Instructmistral-7b-instruct-v0.37B32K tokens多語言對話
2Gemma 2 27B ITgemma-2-27b-it27B8K tokensGoogle 旗艦模型
3Gemma 2 9B ITgemma-2-9b-it9B8K tokensGoogle 中型模型
4GLM-4 9B Chatglm-4-9b-chat9B131K tokens智譜 GLM 最新版

4.5 模型設定

  • 一鍵部署:支援 100+開源模型
  • 版本管理:同一模型的多個版本
  • 自動下載:首次使用自動下載模型

4.6 分散式推理

bash
# 啟動叢集supervisor
xinference-supervisor -H 0.0.0.0 -p 9997

# 在其他機器啟動worker
xinference-worker -e http://supervisor_ip:9997

4.7 內建 Embedding

bash
# 部署embedding模型
xinference launch --model-name bge-large-zh --model-type embedding

5. 常見問題

5.1 模型下載失敗

現象:首次部署模型時下載失敗

解決方案

  1. 檢查網路連線,確保可以訪問 HuggingFace
  2. 設定映象加速:export HF_ENDPOINT=https://hf-mirror.com
  3. 預先下載模型到 ~/.xinference/cache
  4. 使用本地模型路徑

5.2 埠衝突

現象:啟動服務時提示埠被佔用

解決方案

  1. 修改啟動埠:xinference-local --port 9998
  2. 檢查並關閉佔用埠的程序
  3. 使用 lsof -i :9997 檢視埠占用

5.3 記憶體不足

現象:部署模型時提示記憶體不足

解決方案

  1. 選擇引數量更小的模型
  2. 使用量化版本
  3. 配置 GPU 加速
  4. 增加系統記憶體

5.4 模型列表為空

現象:訪問/v1/models 返回空列表

解決方案

  1. 確認已部署至少一個模型
  2. 使用 xinference list 檢視部署狀態
  3. 檢查 Xinference 服務日誌
  4. 重啟 Xinference 服務

5.5 GPU 加速

bash
# 自動檢測並使用GPU
xinference launch --model-name qwen2.5-7b-instruct

# 指定GPU裝置
CUDA_VISIBLE_DEVICES=0,1 xinference-local

5.6 量化加速

bash
# 使用4-bit量化
xinference launch --model-name qwen2.5-7b-instruct --quantization 4-bit

5.7 批處理最佳化

調整 xinference.toml 配置檔案:

toml
[inference]
max_batch_size = 32
max_concurrent_requests = 256

5.8 易用性

  • Web UI 管理介面
  • 一鍵部署模型
  • OpenAI 相容 API

5.9 功能豐富

  • 支援 LLM、Embedding、Rerank
  • 多模態模型支援
  • 分散式推理叢集

5.10 生產就緒

  • 高可用架構
  • 監控和日誌
  • 負載均衡

相關連結

Released under the GPL-3.0 License.