AI Tools
チュートリアル5 分2026年6月26日執筆:AIGCDev

1コマンドで vLLM サーバーを起動:Hugging Face Jobs 入門

Hugging Face は 2026-06-26 に、HF Jobs 上で vLLM 推論サーバーを1コマンドで起動できると発表しました(出典:Hugging Face Blog)。具体的には、hf jobs run にコンテナイメージと起動コマンドを渡し、ポート8000を公開することで OpenAI 互換のエンドポイントが得られ、秒単位で課金されます。一時的なテスト、1回きりの eval、バッチ生成、または Pi のようなコーディングエージェントのバックエンドが必要なだけなら、Jobs は Inference Endpoints より起動が速くて安上がりです。長期間安定した本番エンドポイント、scale-to-zero、きめ細かいアクセス制御が必要なら、Inference Endpoints を選んでください。

前提条件

  • Hugging Face アカウント、CLI にログイン済み:hf auth login
  • huggingface_hub >= 1.20.0:pip install -U "huggingface_hub>=1.20.0"
  • 支払い方法またはプラスのプリペイド残高(Jobs はハードウェア使用量に応じて分単位で課金)

出典:HF 公式記事、2026-06-26。

起動

Qwen/Qwen3-4B を例に、A10G 上で2時間の自動タイムアウト付きサーバーを起動します:

hf jobs run --flavor a10g-large --expose 8000 --timeout 2h \
  vllm/vllm-openai:latest \
  vllm serve Qwen/Qwen3-4B --host 0.0.0.0 --port 8000

起動に成功すると、job URL と公開ポートの URL が次の形式で返ります:

https://<job_id>--8000.hf.jobs/v1

1〜2分ほどでログに Application startup complete が表示され、サーバーの準備が整います。

使い方

curl

curl https://<job_id>--8000.hf.jobs/v1/chat/completions \
  -H "Authorization: Bearer $(hf auth token)" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-4B",
    "messages": [{"role": "user", "content": "Hello!"}],
    "chat_template_kwargs": {"enable_thinking": false}
  }'

OpenAI 形式の JSON レスポンスが返ります。

Python SDK

from huggingface_hub import get_token
from openai import OpenAI

client = OpenAI(
    base_url="https://<job_id>--8000.hf.jobs/v1",
    api_key=get_token(),
)

resp = client.chat.completions.create(
    model="Qwen/Qwen3-4B",
    messages=[{"role": "user", "content": "Hello!"}],
    extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)
print(resp.choices[0].message.content)

モデル一覧の確認

curl https://<job_id>--8000.hf.jobs/v1/models \
  -H "Authorization: Bearer $(hf auth token)"

エンドポイントのセキュリティ

公開されたポート URL は一般公開エンドポイントではありません。各リクエストには、job の名前空間に対する読み取り権限を持つ HF token が必要です(出典:HF 公式記事、2026-06-26)。よりきめ細かいアクセス制御や一般公開が必要な場合は、前面にゲートウェイを置くか、Inference Endpoints に切り替えてください。

停止

秒単位で課金されるので、使い終わったらすぐに停止して無駄を防ぎます:

hf jobs cancel <job_id>

--timeout はセーフティネットですが、手動でキャンセルする方が費用を抑えられます。a10g-large は約 $1.50/時間です。

高度な使い方

Gradio でチャット UI

HF 記事には完全な Gradio の例が含まれています:job を起動した後、ローカルで Python スクリプトを実行し(OpenAI client と chat template kwargs で reasoning を処理)、http://127.0.0.1:7860 を開くと推論パネル付きのチャットインターフェースが使えます(出典:HF 公式記事、2026-06-26)。

コンテナへの SSH

起動時に --ssh を追加し、hf jobs ssh <job_id> でコンテナ内のシェルに入ります。nvidia-smi の実行、プロセスの監視、起動失敗のデバッグなどに使えます。SSH 公開鍵を huggingface.co/settings/keys に登録しておく必要があります(出典:HF 公式記事、2026-06-26)。

hf jobs run --flavor a10g-large --expose 8000 --timeout 2h --ssh \
  vllm/vllm-openai:latest \
  vllm serve Qwen/Qwen3-4B --host 0.0.0.0 --port 8000
hf jobs ssh &#x3C;job_id>

Pi コーディングエージェントのバックエンドとして

起動コマンドに --enable-auto-tool-choice --tool-call-parser hermes を追加し、より強力なモデルを使います(HF 記事では Qwen3.5-122B-A10B を使用):

hf jobs run --flavor h200x2 --expose 8000 --timeout 2h \
  vllm/vllm-openai:latest \
  vllm serve Qwen/Qwen3.5-122B-A10B \
  --host 0.0.0.0 --port 8000 --tensor-parallel-size 2 \
  --max-model-len 32768 --max-num-seqs 256 \
  --reasoning-parser deepseek_r1 \
  --enable-auto-tool-choice --tool-call-parser hermes

次に ~/.pi/agent/models.json でカスタムプロバイダーを設定します:

{
  "providers": {
    "hf-jobs": {
      "baseUrl": "https://&#x3C;job_id>--8000.hf.jobs/v1",
      "api": "openai-completions",
      "apiKey": "!hf auth token",
      "models": [
        { "id": "Qwen/Qwen3.5-122B-A10B" }
      ]
    }
  }
}

その後 pi を起動すると、セルフホストモデルで動作するコーディングエージェントが使えます(出典:HF 公式記事、2026-06-26)。

Jobs と Inference Endpoints の使い分け

シナリオ 推奨
一時的なテスト、1回きりの eval、バッチ生成 HF Jobs
長期間安定したエンドポイント、scale-to-zero が必要 Inference Endpoints
コンテナ起動のデバッグや推論問題の調査 HF Jobs(--ssh 付き)
public/protected/private のきめ細かいアクセス制御が必要 Inference Endpoints
開発段階でのセルフホストコーディングエージェント(Pi 等) HF Jobs
CI/CD での job イメージの再利用 HF Jobs
本番公開 API Inference Endpoints + gateway

出典:HF 公式記事、2026-06-26。

FAQ

vLLM サーバーはどのモデルをサポートしていますか?

vLLM がサポートするすべてのモデル(Qwen、Llama、Mistral、DeepSeek など)が使えます。一部のモデルでは追加の tokenizer や chat template の調整が必要な場合があります。

秒単位の課金はどのくらいですか?

A10G large で約 $1.50/時間、H200 で数ドル/時間です。正確な料金は HF Jobs の料金ページをご確認ください。

公開されたポートは一般公開されていますか?

いいえ。HF 公式記事によると、エンドポイントへのアクセスは制限されています。各リクエストには job の名前空間に対する読み取り権限を持つ HF token が必要です。一般公開エンドポイントではないため、直接外部サービスには使えません。

他の推論エンジンも使えますか?

HF 公式記事によると、同じ --expose port パターンは llama.cpp(GGUF)、SGLang など OpenAI 互換エンジンでも使えます(イメージが対応するポートを公開している場合)。本記事は vLLM のみを扱います。他のエンジンについては Serve Models on Jobs ガイドを参照してください。

Hugging Face Spaces との違いは?

Spaces はインタラクティブなデモやプロトタイピング向けで、GPU スペックや実行時間に制限があります。Jobs はベアコンテナに近く、vLLM のフラグ、ハードウェアスペック、実行時間を正確に制御したい場合に適しています。

Pi とは何ですか?

Pi はプロバイダーに依存しないエージェントハーネスで、カスタムプロバイダー設定によるセルフホストモデルバックエンドとの連携をサポートしています。README とドキュメントは Pi プロジェクトページを参照してください。

hugging-facevllmmodel-servinginferenceopen-source