← Back
AIModels#Hugging Face#vLLM#one-click deployment#inference service

Run a vLLM Server on HF Jobs in One Command

Hugging Face:Blog(RSS)T1
08:0006/26, 08:00 AMRSSRead the original ↗Export MD ↓

Score

55

Why selected

Provides practical tool integration, but represents incremental improvement rather than a breakthrough.

AI commentary

「This integration significantly lowers the barrier to deploying LLM inference services, allowing developers to focus on applications rather than infrastructure.」

Quick overview

Hugging Face announces that you can now deploy a vLLM server on HF Jobs with a single command, eliminating manual infrastructure setup. The integration enables users to quickly start high-performance LLM inference services supporting multiple models, with automatic scaling, logging, and monitoring. It's suitable for development, testing, and production, greatly simplifying model deployment.

  • Run a vLLM server on HF Jobs with one command
  • Automatically handle infrastructure, scaling, and monitoring
  • Support various open-source LLMs
  • Suitable for development to production workflow

Full text

Back to Articles

Run a vLLM Server on HF Jobs in One Command

Published June 26, 2026 Update on GitHub Upvote 11
  • +5
Quentin Gallouédec's avatar Quentin Gallouédec qgallouedec Follow

You can spin up a private, OpenAI-compatible LLM endpoint on Hugging Face infrastructure with a single command — no servers to provision, no Kubernetes, pay-per-second. Once it's up, you can query it from your laptop, a notebook, or anywhere else.

It's the quickest way to stand up a model for tests, evals, or batch generation. (If you're after a managed, production-ready service instead, that's what Inference Endpoints are for — more on when to pick which at the end.)

Here's the whole thing end to end.

Prerequisites

  • A payment method or a positive prepaid credit balance (Jobs is billed per‑minute by hardware usage).
  • huggingface_hub >= 1.20.0: pip install -U "huggingface_hub>=1.20.0".
  • Logged in locally: hf auth login.

Launch the server

hf jobs run is docker run for HF infrastructure. We use the official vllm/vllm-openai image, ask for a GPU with --flavor, and expose vLLM's port with --expose:

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

--expose 8000 routes the container's port through HF's public jobs proxy (see the Serve Models guide for the full reference). The command prints the URL your server is reachable at:

✓ Job started
  id: 6a381ca1953ed90bfb947332
  url: https://huggingface.co/jobs/qgallouedec/6a381ca1953ed90bfb947332
Hint: Exposed ports are reachable at (requires an HF token with read access to the job):
  https://6a381ca1953ed90bfb947332--8000.hf.jobs

6a381ca1953ed90bfb947332 is your job ID. Keep track of it, we'll need it. We'll use <job_id> as a placeholder for it in the rest of the post.

Give it a couple of minutes to download weights and boot. When the logs show Application startup complete, you're live.

Query it from anywhere

vLLM speaks the OpenAI API, and every request just needs your HF token as a bearer token. The quickest way to hit it is 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}
  }'

which returns the usual OpenAI-style JSON, with choices[0].message.content holding "Hello! How can I assist you today? 😊".

Or, from Python, point the OpenAI client at the exposed URL and pass the token as the API key:

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)
Hello! How can I assist you today? 😊

Quick health check before you start: curl https://<job_id>--8000.hf.jobs/v1/models -H "Authorization: Bearer $(hf auth token)" should list the model.

🔐 The endpoint is gated, not public. Every request must carry an HF token with read access to the job's namespace. A plain browser visit will be rejected. In effect, the jobs proxy is your API gate: access is scoped to you (and your org). That's fine for private use, but treat the URL accordingly: don't share it expecting it to be open, and don't paste your token into untrusted places. If you need finer-grained or public access, put a proper gateway in front instead. Or see HF Jobs or Inference Endpoints? below.

Clean up

Jobs are billed per second, so stop the server when you're done:

hf jobs cancel <job_id>

The --timeout you set is a safety net (it'll auto-stop), but cancelling explicitly is cheaper. An a10g-large runs at $1.50/hour — check hf jobs hardware for the full price list and pick the smallest flavor that fits your model.

Going further: bigger models

The same command scales to much larger models — pick a beefier --flavor and tell vLLM to shard the model across the GPUs with --tensor-parallel-size. For example, the 122B Qwen3.5 mixture-of-experts model on 2× H200:

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

--tensor-parallel-size should match the number of GPUs in the flavor (h200x2 → 2, h200x8 → 8). Run hf jobs hardware to see what's available and give bigger models a longer --timeout, since they take longer to download and load. For large models, H200 flavors are usually the best value.

The --max-model-len 32768 --max-num-seqs 256 flags are specific to this model: Qwen3.5-122B is a hybrid Mamba/attention architecture with a 256K-token default context, which doesn't leave enough memory for vLLM's default batch settings. Capping the context length and concurrent-sequence count keeps it within the GPUs' memory. If a model fails to start with an out-of-memory or cache-block error, dialing these two down is the first thing to try. Everything else (the exposed URL, the OpenAI client, the token auth) stays exactly the same.

Going further: Chat with it in a UI

Prefer a chat window over curl? A few lines of Gradio point at the same endpoint. Add --reasoning-parser deepseek_r1 to the vllm serve command so Qwen3's thinking comes back as a separate field (not necessary, but helpful), then run this code locally (you'll just need the job ID):

import gradio as gr
from gradio import ChatMessage
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())

def chat(message, history):
    messages = [{"role": m["role"], "content": m["content"]} for m in history if not m.get("metadata")]
    messages.append({"role": "user", "content": message})
    stream = client.chat.completions.create(model="Qwen/Qwen3-4B", messages=messages, stream=True)

    thinking, answer = "", ""
    for chunk in stream:
        delta = chunk.choices[0].delta
        thinking += delta.model_extra.get("reasoning", "")
        answer += delta.content or ""
        out = []
        if thinking.strip():
            status = "done" if answer.strip() else "pending"
            out.append(ChatMessage(role="assistant", content=thinking, metadata={"title": "💭 Thinking", "status": status}))
        if answer.strip():
            out.append(ChatMessage(role="assistant", content=answer))
        yield out

gr.ChatInterface(chat).launch()

Run it, open http://127.0.0.1:7860, and chat — reasoning streams into the collapsible panel, the answer below.

Going further: SSH into the running server

Need to debug a startup failure, watch GPU memory, or tail logs interactively? You can open a shell straight into the running job. Launch it with --ssh and make sure your public key is registered at huggingface.co/settings/keys:

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

then connect with the job ID:

hf jobs ssh <job_id>

You're now inside the container, where you can run nvidia-smi, inspect the process, or poke at the model directly — which makes debugging and monitoring much easier than reading logs from the outside. SSH support requires huggingface_hub >= 1.20.0.

Going further: Use it as a coding-agent backend with Pi

The same endpoint can back a terminal coding agent. Pi is a provider-agnostic agent harness. Point it at the job and you get a Read/Write/Edit/Bash agent running on your own self-hosted model.

One thing to set up first: agents drive the model through tool calls, and vLLM only accepts those if the server is launched with tool calling enabled. So relaunch with --enable-auto-tool-choice and a --tool-call-parser matching the model family (hermes for Qwen3). Agents also benefit from a stronger model, so this is a good place to bring in the bigger one:

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

Then add the job as a custom provider in ~/.pi/agent/models.json:

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

Then launch the agent against it:

pi

The model you spun up a couple of commands ago, now driving an interactive coding agent in your terminal.

HF Jobs or Inference Endpoints?

HF Jobs isn't the only way to serve a model on Hugging Face. Inference Endpoints are our managed product for the same job, and which one fits depends on what you're after.

Reach for HF Jobs when you want maximum flexibility and control: it's just docker run on HF infrastructure, so you pick the image, the exact vllm serve flags, and the hardware, and you pay per second for as long as the job runs. That makes it a great fit for experiments, one-off evals, batch generation, or kicking the tires on a model before committing to anything.

Reach for Inference Endpoints when you want something more production-ready. They add the operational niceties a long-lived service needs: finer-grained access control (an endpoint can be public, protected, or private), and scale-to-zero, so you're not billed during periods of inactivity. If you're standing up a durable endpoint rather than running a job, that's the tool to grab.

Further reading

This post sticks to vLLM, but the same expose-a-port pattern works with any OpenAI-compatible server. To serve GGUFs with llama.cpp or run SGLang instead, see the Serve Models on Jobs guide, which walks through those backends.

More Articles from our Blog

guidehubjobs

Migrating Your GitHub CI to Hugging Face Jobs

11 June 9, 2026
guidecloudinference

Blazingly fast whisper transcriptions with Inference Endpoints

  • +2
82 May 13, 2025

Community

EditPreview Upload images, audio, and videos by dragging in the text input, pasting, or clicking here. Tap or paste here to upload images Comment

· Sign up or log in to comment

Upvote 11

Related items

92
08:00OpenRouter:Announcements(RSS)T1RSS

FeaturedDeepSeek V4 Doubles Token Share on OpenRouter, Driven by Agentic Workloads

DeepSeek V4 在 OpenRouter 上的代币份额翻倍,智能体工作负载成主要驱动力

The rapid adoption of DeepSeek V4 signals a strong market preference for high-performance, low-cost inference models, especially as agentic use cases reshape AI deployment.

AIModels#DeepSeek#OpenRouter#V4 Flash
91

Five-dimension score

Information gain9 ×0.3

详细揭示了两个具体设置如何协同作用实现三倍性能提升,信息增量高。

Content quality8 ×0.2

来自OpenAI官方,数据明确,结构清晰,但缺少对比实验细节。

Practical value9 ×0.2

为AI工程师提供了可直接操作的性能调优方案,实用性强。

Timeliness10 ×0.15

消息刚发布,具有高度时效性。

Source reliability10 ×0.15

信源为OpenAI官方新闻,权威可靠。

Base 91 × T1 Source weight ×1 = 91

Curation line 60Selected

23:00OpenAI:News(RSS)T1RSS

FeaturedEnabling Two Settings Triples ARC-AGI-3 Benchmark Scores

启用两项设置使ARC-AGI-3基准测试分数提升三倍

This finding is crucial! It shows that model performance depends not only on training but also on inference-time configuration. For AI engineers and researchers, this is a must-know optimization direction. Teams deploying models on resource-constrained devices in particular could find a low-cost way to boost capabilities.

TechModels#ARC-AGI-3#GPT-5.6#OpenAI
91

Five-dimension score

Information gain9 ×0.3

首次公开GPT-5.6具体效率优化细节,此前仅有传闻。

Content quality8 ×0.2

内容简洁,关键指标明确,但缺乏详细技术文档支撑。

Practical value9 ×0.2

直接指导企业如何降低AI部署成本,具有商业参考价值。

Timeliness10 ×0.15

刚发布的官方新闻,时效性极强。

Source reliability10 ×0.15

来源为OpenAI官方博客,信源权威。

Base 91 × T1 Source weight ×1 = 91

Curation line 60Selected

08:00OpenAI:News(RSS)T1RSS

FeaturedGPT-5.6: Fusing Frontier Intelligence with Frontier Efficiency

GPT-5.6:前沿智能与前沿效率的融合

This news is worth watching as it marks a shift from pure parameter scaling to efficiency competition. For AI developers and business decision-makers, GPT-5.6 means higher performance at lower cost, especially for long-context or agentic tasks previously hindered by inference expenses. OpenAI's move may redefine what 'frontier' means.

AIModels#Agent Workflows#GPT-5.6#OpenAI
91

Five-dimension score

Information gain8 ×0.3

首次提出针对CPU优化的1M上下文模型,填补了边缘设备长文本推理的空白,信息增量显著。

Content quality9 ×0.2

技术细节清晰,提供了基准测试对比和架构解释,图文并茂,质量上乘。

Practical value10 ×0.2

直接降低长上下文应用的硬件成本,开源权重可立即部署,实用价值极高。

Timeliness10 ×0.15

当日发布的博客,且长上下文推理是当前AI热点,时效性满分。

Source reliability9 ×0.15

Hugging Face官方博客,作者为Liquid AI,属于第一方技术发布,可信度高。

Base 90.5 × T1 Source weight ×1 = 91

Curation line 60Selected

23:01Hugging Face:Blog(RSS)T1RSS

FeaturedLFM2.5-Encoders: New Models for Fast Long-Context Inference on CPU

LFM2.5-Encoder:面向CPU快速长上下文推理的新模型

This blog post catches my eye because it directly solves the pain point of running long-context LLMs on CPU. For teams or individual developers without high-end GPUs, the LFM2.5-Encoder series offers a ready-to-use open-source solution. Highly recommended for those working on RAG, document search, or code analysis—now a standard server can handle million-token documents.

AIModels#CPU Inference Optimization#LFM2.5-Encoder#Liquid AI
91

Five-dimension score

Information gain9 ×0.3

首次公开自动化红队系统的具体机制与实验发现,信息增量高。

Content quality8 ×0.2

来自官方,结构清晰,但未提供完整技术细节(如具体模型版本),扣1分。

Practical value9 ×0.2

对AI安全工程师、模型开发者和企业部署者直接指导作用,实用性极强。

Timeliness10 ×0.15

刚刚发布,是当前AI安全领域最前沿进展之一。

Source reliability10 ×0.15

信源为OpenAI官方新闻,权威且一手。

Base 91 × T1 Source weight ×1 = 91

Curation line 60Selected

18:00OpenAI:News(RSS)T1RSS

FeaturedGPT-Red: OpenAI Automates Red Teaming via Self-Play to Boost Model Robustness

GPT-Red:OpenAI通过自我对弈实现AI红队自动化,提升模型鲁棒性

GPT-Red marks a milestone from human to automated red-teaming—essential for safety engineers and alignment researchers. While reducing cost, it also raises ethical questions about automated attacks, worth pondering for everyone in AI governance.

AIModels#AI Safety Alignment#GPT-Red#OpenAI
91

Five-dimension score

Information gain9 ×0.3

这是首个针对AI模型生物安全的漏洞赏金计划,为行业提供了全新的安全评估视角。

Content quality9 ×0.2

官方来源,内容清晰,涵盖范围、奖励、准则等关键细节。

Practical value8 ×0.2

对AI安全研究员和生物安全专家有直接参与价值,但普通用户关联度较低。

Timeliness10 ×0.15

刚刚发布,完全符合新闻时效要求。

Source reliability10 ×0.15

OpenAI官方RSS和博客,信源权威可靠。

Base 91 × T1 Source weight ×1 = 91

Curation line 60Selected

18:00OpenAI:News(RSS)T1RSS

FeaturedOpenAI Launches GPT-5.5 Bio Bug Bounty Program

OpenAI推出GPT-5.5生物漏洞赏金计划

This program deserves attention as it pioneers the extension of AI bug bounty to biosecurity, offering a new research direction for the security community and a practical training ground for AI risk governance. It is particularly important for model safety researchers, biosecurity experts, and practitioners concerned about dual-use AI risks.

AIModels#Bio Bug Bounty#GPT-5.5#OpenAI
91

Five-dimension score

Information gain8 ×0.3

公布了vLLM新后端的具体架构设计与实测数据,对了解推理优化前沿有较高信息增量。

Content quality9 ×0.2

技术细节清晰,有定量性能对比,来源为官方博客,内容质量高。

Practical value10 ×0.2

直接降低LLM部署门槛与成本,对AI工程化落地具有极高实用价值。

Timeliness10 ×0.15

发布即时,属于最新技术动态,时效性满分。

Source reliability9 ×0.15

来源为Hugging Face官方博客,vLLM为开源权威项目,可信度高。

Base 90.5 × T1 Source weight ×1 = 91

Curation line 60Selected

08:00Hugging Face:Blog(RSS)T1RSS

FeaturedvLLM Introduces Native-Speed Transformers Modeling Backend for Enhanced Inference Performance

vLLM推出原生速度Transformers建模后端,大幅提升推理性能

This update is critical for AI engineering teams: eliminating format conversion speeds up model iteration, and 2-5x speedup directly reduces GPU costs. If you're building LLM online services or batch inference, this is practically a must-read technical update.

AIModels#Hugging Face#PagedAttention#Transformers
90

Five-dimension score

Information gain9 ×0.3

手语转文本是AI无障碍领域的新突破,提供了此前罕见的具体模型信息。

Content quality8 ×0.2

来源权威,内容清晰描述了模型功能、应用场景和开发理念。

Practical value9 ×0.2

对聋人群体、开发者和无障碍研究者具有直接参考与应用价值。

Timeliness9 ×0.15

刚刚发布的官方公告,时效性非常高。

Source reliability10 ×0.15

Google DeepMind官方博客,信源可信度极高。

Base 89.5 × T1 Source weight ×1 = 90

Curation line 60Selected

22:01Google DeepMind:Blog(RSS)T1RSS

FeaturedGoogle DeepMind Introduces SL2T, a Sign Language-to-Text Model for Deaf Users

Google DeepMind 发布手语转文本模型 SL2T,助力聋人用户

This news matters not only as a technical breakthrough but also as a sign that AI is beginning to address the needs of marginalized groups. For developers, the architecture and technical approach of SL2T merit deep study; for accessibility advocates, it's a key case for advancing industry standards.

AIModels#Google DeepMind#SL2T#Sign Language Recognition

Verify against the original source before citing