Eszközök

Egy parancssorból indítható vLLM-alapú LLM-szerver HF Jobs-on

A cikk bemutatja, hogyan lehet egyetlen parancssorból privát, OpenAI-kompatibilis LLM-végpontot indítani a Hugging Face HF Jobs infrastruktúráján vLLM segítségével.

Egy parancssorból indítható vLLM-alapú LLM-szerver HF Jobs-on

A Hugging Face Jobs segítségével egyetlen parancsból felállítható egy privát, OpenAI-kompatibilis LLM-végpont vLLM-mel, a Hugging Face infrastruktúráján — szerverprovízionálás vagy Kubernetes nélkül, per‑másodperc alapú számlázással. Ez gyors és kényelmes megoldás tesztekhez, értékelésekhez vagy tömeges generáláshoz. (Ha tartós, menedzselt szolgáltatásra van szükség, akkor a Hugging Face Inference Endpoints a megfelelő opció; alább részletezve mikor melyiket érdemes választani.)

Előfeltételek

  • Fizetési mód vagy pozitív előre feltöltött egyenleg, mivel a Jobs per perc/óra szerint számol a hardverhasználat alapján. A bejegyzés szerint az a10g-large íz nagyjából 1.50 USD/óra.
  • huggingface_hub verzió >= 1.20.0 (telepítés: pip install -U "huggingface_hub>=1.20.0").
  • helyi bejelentkezés: hf auth login

A szerver indítása

A hf jobs run a HF infrastruktúrában a docker run megfelelője. Például az alábbi parancs az hivatalos vllm/vllm-openai image-et használja, GPU-t kér (--flavor), és kitér a vLLM portját (--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

A parancs visszaadja a job azonosítót és a hozzáférési URL-t (példa kimenet):

✓ Job started id: 6a381ca1953ed90bfb947332 url: https://huggingface.co/jobs/qgallouedec/6a381ca1953ed90bfb947332

Az expozíció után a konténer portja elérhető lesz a jobs proxyn keresztül, például:

https://6a381ca1953ed90bfb947332--8000.hf.jobs

Adj pár percet a modell letöltésére és betöltésére; amikor a logban megjelenik az "Application startup complete", a szerver él.

Lekérdezés bárhonnan

A vLLM az OpenAI API-kompatibilis protokollt beszéli, minden kéréshez az HF token kell Bearer tokenként. Gyors példa curl-lel:

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} }'

A válasz OpenAI-stílusú JSON lesz; a choices[0].message.content mező tartalmazza a választ (példaként "Hello! How can I assist you today? 😊").

Pythonból az OpenAI kliens alap URL-jét a munka URL-jére kell állítani, és az hf auth token-t API-kulcsként átadni. A forrás példakódban az OpenAI klienssel és a huggingface_hub.get_token() használatával a chat végpont meghívható ugyanúgy, mint egy OpenAI szerver.

Egészségi ellenőrzésként a következő hívásnak fel kell sorolnia a modellt:

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

Biztonság és hozzáférés

A végpont zárt: minden kérésnek olyan HF tokennel kell érkeznie, amelynek olvasási joga van a job namespace-ére. A sima böngészős megnyitás elutasítást kap. A jobs proxy működik hozzáférésvezérlőként — a URL nem nyilvános, ezért ne ossza meg nyilvánosan és ne tegye közzé a tokenjét.

Leállítás és költségek

Mivel a Jobs per másodperc számláz, állítsa le a munkát, ha végzett:

hf jobs cancel <job_id>

A --timeout flag védelmet ad automatikus leállítással, de a kézi megszakítás olcsóbb. Például egy a10g-large körülbelül 1.50 USD/óra; a teljes árlistához futtassa a hf jobs hardware parancsot.

Nagyobb modellek indítása

Ugyanaz a parancs skálázható nagyobb modellekre: válasszon erősebb --flavor-t és adja meg a vLLM-nek a tensor párhuzamosítás méretét --tensor-parallel-size opcióval. Példa a Qwen3.5-122B Mixture-of-Experts modellel 2× H200-as GPU-n:

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

A --tensor-parallel-size értéke illeszkedjen a flavor GPU-számához (például h200x2 → 2). Nagy modelleknél adjunk hosszabb --timeout-ot a letöltés és cache kezelés miatt; H200 flavor-ok általában jobb ár/érték arányt adnak nagy modellekhez.

A Qwen3.5-122B esetén a --max-model-len és --max-num-seqs zászlók azért szerepelnek, mert a modell hibrid architektúrája és nagy kontextusmérete miatt a vLLM alapbeállításai OOM vagy cache-block hibát okozhatnak; ezek visszavétele segíthet elkerülni a memóriaszűkét.

Továbblépés: chat felület, SSH és ügynök-backend

  • Chat UI: Gradio-val néhány sor kóddal helyi chat felület hozható létre, a vLLM --reasoning-parser méretének megadásával a gondolkodási lépések külön mezőben érkezhetnek.

  • SSH a futó szerverbe: ha interaktív hibaelhárítás kell (nvidia-smi, logok, folyamatok), indítsa a jobot --ssh opcióval és regisztrált publikus kulccsal a huggingface.co/settings/keys címen: hf jobs ssh <job_id>.

  • Pi ügynök backend: a végpont hátteret adhat egy terminál-alapú kódoló ügynöknek (Pi). Ehhez a vLLM-et auto tool calling támogatással kell indítani (--enable-auto-tool-choice és --tool-call-parser a modell családjának megfelelően). A forrás részletezi, hogyan adható hozzá a job a Pi konfigurációjához (~/.pi/agent/models.json) és hogyan indítható az ügynök.

HF Jobs vs Inference Endpoints

A Jobs rugalmasabb és kontrolláltabb futtatást ad: gyakorlatilag docker run HF infrastruktúrán, Te választod meg az image-et, a vllm serve zászlókat és a hardvert; ez ideális kísérletekhez, egyszeri értékelésekhez vagy rövid élettartamú feladatokhoz. Az Inference Endpoints viszont menedzselt, hosszú távra alkalmas szolgáltatás, finomabb hozzáférés‑szabályozással és scale-to-zero opcióval, ami érdemes, ha tartós, elérhető végpontot szeretnél.

További olvasnivaló

A bejegyzés vLLM-re fókuszál, de ugyanaz a port expozíciós minta más OpenAI-kompatibilis szerverekkel is működik. A Serve Models on Jobs útmutató példákat mutat más backendre, például llama.cpp vagy SGLang használatára.

(Frissítve: 2026. június 26.)