部署模型
用 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 返回引擎日志的末尾。智能体通过 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 不会保存它。机器的主机商能读取其上运行的内容,因此请使用细粒度的只读令牌。
以智能体身份阅读?请看本页的 Markdown 版本。