ドキュメント

モデルをデプロイ

どの Hugging Face モデル(テキスト、画像、動画、音声)でも、vLLM、SGLang、vLLM-Omni、llama.cpp と自分のエンジンオプションで動かせます。専用の API キーつきの OpenAI 互換エンドポイントと、root 権限での SSH が使えます。

コンソールで確認

  1. コンソールで Models を開きます。
  2. Qwen/Qwen3-8B のように Hugging Face での名前でモデルを指定するか、そのページのリンクを貼り付けます。
  3. エンジンを選びます。テキストモデルには vLLM か SGLang、画像と動画のモデルには vLLM-Omni か SGLang、音声とサウンドには vLLM-Omni、GGUF ファイルには llama.cpp です。llama.cpp では、unsloth/Qwen3-8B-GGUF:Q4_K_M のようにコロンのあとに量子化を加えます。
  4. 自分のエンジンオプションがあれば貼り付けます(下記参照)。
  5. アクセス制限つき(gated)のモデルや非公開のモデルでは、読み取り権限のある Hugging Face トークンを追加します。
  6. Find GPUs は Hugging Face からモデルのサイズを読み取り、マシンが実行する起動コマンドを表示し、そのモデルが今収まる GPU をすべて価格とともに一覧表示します。いずれかを選んでレンタルします。

エンジンはマシンの起動時にモデルをダウンロードするため、エンドポイントが応答するのは数分後です。Models には、準備ができたかどうか、アドレス、API キー、呼び出し用のコード、チャットと画像モデルの試用、エンジンのログが表示されます。

自分のエンジンオプション

チューニングしたオプションを、手元にある形のまま貼り付けてください。

シェル
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 はシェルを通さずに読み取り、一語ずつそのままエンジンに渡します。そのため:

  • シェルの構文(;、|、&&、$(...)、$VARIABLES)は受け付けません。実行するものが何もないからです。
  • エンジンの待ち受け先(--host、--port)、キー(--api-key)、モデルは Arrakis が受け持つため、エンドポイントのアドレスとキーは変わりません。--served-model-name(llama.cpp では --alias)で、リクエストで使うモデル名を変えられます。
  • 並列化はあなたの指定が優先です。オプションに -tp、--tp、-dp があれば、Arrakis は自分の指定を加えません。
  • GPU を選ぶ設定(NVIDIA_*)とローダーの設定(LD_*)は受け付けません。マシンが使うのは借りた GPU だけです。
  • Hugging Face トークンはオプションではなく専用の欄に入れてください。オプションと一緒に保存されることはありません。

API から

シェル
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 はそれを保存しません。マシンのホストはマシン上で動作するものを読み取れるため、権限を絞った(fine-grained)読み取り専用トークンを使ってください。

エージェントとして読んでいますか?このページの Markdown 版をどうぞ。