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.



