部署模型
用 vLLM、SGLang、vLLM-Omni 或 llama.cpp 和你自己的引擎引數執行任何 Hugging Face 模型(文字、影象、影片或語音):有專屬 API 金鑰的 OpenAI 相容端點,以及 root SSH。
在控制台中檢視
- 在控制台中開啟 Models。
- 按 Hugging Face 上的名稱填寫模型,例如
Qwen/Qwen3-8B,或直接貼上模型連結。 - 選擇引擎:文字模型用 vLLM 或 SGLang,影象和影片模型用 vLLM-Omni 或 SGLang,語音和聲音用 vLLM-Omni,GGUF 檔案用 llama.cpp。使用 llama.cpp 時,在冒號後加上量化方式,例如
unsloth/Qwen3-8B-GGUF:Q4_K_M。 - 如果有自己的引擎引數,就貼進去(見下文)。
- 對於受限(gated)或私有的模型,請新增一個具有讀取許可權的 Hugging Face 權杖。
- Find GPUs 會從 Hugging Face 讀取模型大小,顯示機器將執行的啟動命令,並列出當前所有放得下該模型的 GPU 及其價格。選一個租用即可。
引擎會在機器啟動時下載模型,所以端點幾分鐘後才會響應。Models 會顯示它何時就緒、它的地址、API 金鑰、呼叫程式碼、對話和影象模型的試用,以及引擎日誌。
你自己的引擎引數
把你調好的引數,按你平時儲存的樣子貼進來:
Shell
VLLM_USE_DEEP_GEMM=1 vllm serve Qwen/Qwen3-8B \
--max-model-len 32768 --enable-prefix-caching \
--speculative-config '{"method": "eagle3", "num_speculative_tokens": 3}'單獨的引數、完整命令和 docker run 命令列都可以,前面的環境變數和加引號的 JSON 值也照常可用。引數由你選擇,並由你隨引擎版本保持更新。Arrakis 不經過 shell 讀取它們,並逐字交給引擎,因此:
- shell 語法(
;、|、&&、$(...)、$VARIABLES)會被拒絕:沒有任何東西會去執行它。 - 引擎的監聽位置(
--host、--port)、金鑰(--api-key)和模型由 Arrakis 負責,因此端點的地址和金鑰不會變。--served-model-name(llama.cpp 用--alias)可以修改請求中使用的模型名稱。 - 並行方式以你為準:只要引數中有
-tp、--tp或-dp,Arrakis 就不再新增自己的設定。 - 選擇 GPU 的設定(
NVIDIA_*)和載入器設定(LD_*)會被拒絕:機器只使用它租用的 GPU。 - Hugging Face 權杖要填在專門的欄位裡,不要放進引數,這樣它就不會和引數一起被儲存。
透過 API 使用
Shell
curl -X POST $ARRAKIS_URL/v1/deploy \
-H "Authorization: Bearer ark_..." \
-H "Content-Type: application/json" \
-d '{"model": "black-forest-labs/FLUX.1-schnell", "engine": "omni", "termination_hours": 4,
"extra_args": "--enforce-eager"}'不指定 node_id 時,Arrakis 會在放得下該模型的機器中租用排名最高的一臺,並儘量少用 GPU。POST /v1/deploy/plan 會先免費列出所有放得下它的 GPU;帶上 extra_args 時,它還會檢查你的引數並返回啟動命令。返回結果包含端點及其 api_key;GET /v1/instances/{id}/endpoint 會再次給出它們,模型開始響應後 ready 為真;GET /v1/instances/{id}/endpoint/log 返回引擎日誌的末尾。AI 代理透過 MCP 使用 deploy_model 工具。
呼叫模型
端點使用 OpenAI API,所以任何 OpenAI 客戶端都能用。請求中的模型名稱就是它在 Hugging Face 上的 ID,不含量化方式,除非你改過名稱。
Python
from openai import OpenAI
client = OpenAI(base_url="http://<address>/v1", api_key="sk-...")
reply = client.chat.completions.create(
model="Qwen/Qwen3-8B",
messages=[{"role": "user", "content": "Hello"}],
)
print(reply.choices[0].message.content)| 模型生成的內容 | 呼叫地址 |
|---|---|
| 文字 | POST /v1/chat/completions, /v1/completions, /v1/embeddings |
| 映像 | POST /v1/images/generations, /v1/images/edits |
| 影片 | POST /v1/videos,然後用 GET /v1/videos/{id} 查詢直到完成,再用 GET /v1/videos/{id}/content 下載 |
| 語音 | POST /v1/audio/speech |
| 聲音與音樂 | POST /v1/audio/generate |
| 語音轉文字 | POST /v1/audio/transcriptions |
這臺機器由你掌控
- 它就是一次普通的租用:按小時計費,到移除時間即被移除,並列在 Instances 中。
- 它會以基於引擎官方版本構建的 Arrakis 映像啟動,帶 root SSH。可以在機器上執行
arrakis-serve status、arrakis-serve logs或arrakis-serve restart。 - 要在不換機器的情況下嘗試其他引數,編輯
/etc/arrakis/serve/command(每行一個詞)或/etc/arrakis/serve/env,然後執行arrakis-serve restart。引擎停止時機器仍會執行,方便你修復。 - 端點就是機器的地址,使用普通 HTTP。埠 8000 上的訪問閘道器會在請求到達引擎之前檢查 API 金鑰(
Authorization: Bearer <key>),而引擎只在機器內部監聽;/health不需要金鑰即可訪問,只說明引擎是否已啟動。如需私密通訊,請開啟 SSH 隧道(ssh root@<host> -p <port> -N -L 8000:localhost:8000),然後使用http://localhost:8000/v1。 - 你的 Hugging Face 權杖會以
HF_TOKEN的形式傳給機器,Arrakis 不會儲存它。機器的主機商能讀取其上執行的內容,因此請使用細粒度的只讀權杖。
以 AI 代理身份閱讀?請看本頁的 Markdown 版本。