Eszközök

A Transformers modellbackend mostantól natív vLLM-sebességgel fut több LLM-architektúrán

A főszereplő a vLLM és a Transformers könyvtár integrációja: a Transformers modellbackend mostantól sok nagy nyelvi modell esetén eléri vagy meghaladja a vLLM kézzel írt natív implementációinak átviteli sebességét.

A Transformers modellbackend mostantól natív vLLM-sebességgel fut több LLM-architektúrán

A transformers könyvtár mára a gépi tanulás referencia modellezési könyvtárává vált, több mint 450 architektúrát támogat egységes API-kon keresztül. A tervezés egyik alapelve, hogy a modellimplementációk önállóak és könnyen érthetők legyenek, így a transformers-kódból könnyen tanulható egy adott architektúra, és egyszerűen lehet portolni más futtatókörnyezetekbe, például vLLM-be.

A vLLM csapata korábban már integrálta a transformers modellt, hogy a szerzőknek ne kelljen külön portolniuk: a transformers adja a modelldefiníciót, a vLLM pedig a kifinomult inference-módszereket (folyamatos batchelés, egyedi attention-implementációk stb.). A mostani fejlesztés tovább javítja ezt az integrációt.

Mire jó ez a frissítés?

A vLLM transformers modellbackendje mostantól eléri vagy meghaladja a vLLM kézzel írt, natív implementációinak áteresztőképességét több vizsgált modell esetén. Három különböző Qwen3 modellt vetettek össze:

  • Qwen3-4B dense: egyetlen GPU-n
  • Qwen3-32B dense: tensor-parallel megoldással (2 GPU)
  • Qwen3-235B-A22B-FP8 Mixture-of-Experts (MoE): adat- és expert-parallelizáció egy 8×H100 csomóponton

A teszt eredménye: a transformers modellbackend minden vizsgált esetben elérte vagy meghaladta a natív vLLM-throughputot. Ennek következményeként bármely* Hugging Face modellt a transformers backenddel futtatni csak egy kapcsolóval lehetséges:

  • --model-impl transformers

Ez együttműködik a megszokott párhuzamosítási opciókkal, tehát a szerverbeállításokban nem szükséges változtatni. Példák:

  • Qwen3-4B egy GPU-n: vllm serve Qwen/Qwen3-4B --model-impl transformers
  • Qwen3-32B, tensor-parallel, 2 GPU: vllm serve Qwen/Qwen3-32B --model-impl transformers --tensor-parallel-size 2
  • Qwen3-235B MoE, data + expert parallel, 8 GPU: vllm serve Qwen/Qwen3-235B-A22B-FP8 --model-impl transformers --data-parallel-size 8 --enable-expert-parallel

Megjegyzés: modelleknél, amelyek lineáris attention-t használnak, a támogatás még nem elérhető; a közeljövőben tervezik hozzáadni. Egyedi, Hub repo-ban élő modellek valószínűleg nem fognak működni, ha nem íródtak a kompatibilitás szabályainak megfelelően.

Hogyan mérték?

Minden modellt három, egyébként azonos feltételek közötti futtatással hasonlítottak össze:

  • native — --model-impl vllm (a teljesítménybár)
  • after — --model-impl transformers (a PR után)
  • before — --model-impl transformers (a PR előtt)

A teljes, reprodukálható benchmark futtató script elérhető, hogy bárki megismételhesse a méréseket.

Miben változott a technika?

Korábban a transformers backend főként az attention optimalizálására fókuszált: a vLLM attention-implementációját futásidőben csatlakoztatva javítható volt a teljesítmény. Ugyanakkor a maximális inference-sebesség eléréséhez számos további szempont is számít: több GPU-s párhuzamosítás, fuzionált kernel-ek, fordítás/kompiláció és egyéb hardverközeli optimalizációk. Ezeket eddig a legjobb teljesítmény eléréséhez gyakran kézzel, natív vLLM-implementációkban kellett megvalósítani.

Az új megközelítés dinamikusan alkalmaz inference-specifikus réteg-fúziókat futásidőben, így a kompatibilis architektúrák esetén a transformers implementációk mostantól a natív vLLM-sebességet tudják elérni anélkül, hogy a modell szerzőjének bármilyen extra munkát kellene végeznie.

Működés – röviden

A transformers modellbackend most a torch.fx használatával statikus analízist végez a modell gráfján. Ez a keresés ismert, optimalizálható minták után történik. Azonosítás után az AST (abstract syntax tree) eszközeivel a forráskód bizonyos részeit futásidőben átírják, hogy egyes műveletek fuzionált, optimalizált formában fussanak.

Ezek az átalakítások lehetővé teszik, hogy több művelet egyetlen, vLLM által optimalizált kernelre legyen leképezve — például az Expert Parallelization (EP) mechanizmusnál MoE modellekben. Fő fuzionált blokkok a vLLM MergedColumnParallelLinear és QKVParallelLinear, amelyek segítségével automatikusan lehet tensor-parallel (TP) terveket következtetni; pipeline-parallel (PP) tervek is következtethetők, ha a dekóder blokklista egyértelműen azonosítható.

Az átalakított modellek továbbra is teljesen (torch) fordíthatóak: végigmehetnek a torch.compile és CUDA Graphs pipeline-on ugyanúgy, mint egy dedikált, natív vLLM-implementáció.

További előnyök

Ellentétben a vLLM-specifikus modellimplementációkkal, a transformers implementációk eddig is használhatók voltak tréningre. Így ugyanaz a modellkód alkalmazható tréningre, értékelésre és RL rollouts-ra, valamint most már natív vLLM inference-sebességgel futtatható is kompatibilis esetekben.

A csapat részletes blogposztot készít, amely mélyebben bemutatja a fuzionált inference-módszereket és azt, hogyan történik a modellmanipuláció.

Hasznos erőforrások

  • Transformers model definition
  • Transformers modeling backend in vLLM
  • Large scale serving
  • Torch FX
  • Abstract syntax tree

Megjegyzés: a lineáris attention-t használó modellek jelenleg nem támogatottak, más egyedi modellek pedig csak akkor működnek, ha a Hub-repo kompatibilis implementációt tartalmaz.