Hugging Face가 vLLM의 transformers modeling backend를 업데이트했다. 핵심은 간단하다. transformers에 구현된 모델을 vLLM에서 실행할 때, 별도의 hand-written vLLM 구현 없이도 native vLLM 처리량을 따라잡거나 일부에서는 앞섰다는 것이다. 사용자는 `vllm serve ... --model-impl transformers` 플래그만 붙이면 된다.
배경은 꽤 현실적이다. transformers는 450개가 넘는 아키텍처를 지원하는 기준 라이브러리지만, 고성능 서빙에서는 vLLM용 커스텀 구현이 따로 필요했다. 새 모델을 만든 뒤 transformers에 올리고, 다시 vLLM에 맞춰 병렬화와 fused kernel 최적화를 넣는 식이었다. 모델 연구 코드와 서빙 코드가 갈라지는 순간 유지보수 비용도 같이 늘어난다.
이번 업데이트는 그 간극을 줄인다. vLLM은 torch.fx로 transformers 모델 그래프를 정적으로 분석하고, 알려진 패턴을 찾은 뒤 ast로 소스 코드를 조작해 연산을 바꾼다. QKVParallelLinear, MergedColumnParallelLinear, MoE의 Expert Parallelization용 fused kernel 같은 vLLM 최적화 블록으로 매핑하는 방식이다. 이렇게 바뀐 모델은 torch.compile과 CUDA Graphs도 그대로 사용할 수 있다.
Hugging Face는 Qwen3 세 가지 모델로 비교했다. 4B dense 모델은 단일 GPU, 32B dense 모델은 2 GPU tensor parallel, 235B FP8 MoE 모델은 8×H100 노드에서 data parallel과 expert parallel을 함께 사용했다. 비교 조건은 native vLLM 구현, 기존 transformers backend, 새 PR이 적용된 transformers backend였다. 발표에 따르면 새 backend는 모든 조건에서 native throughput을 따라잡거나 앞섰다.
이 변화가 의미 있는 이유는 모델 생태계의 속도 때문이다. 모델 작성자는 transformers 구현 하나를 학습, 평가, RL rollout에 쓰면서 vLLM 서빙에서도 빠른 경로를 기대할 수 있다. 운영팀은 새 아키텍처가 나올 때마다 커스텀 vLLM 포트를 기다리는 시간을 줄일 수 있다.
다만 적용 범위는 아직 제한이 있다. linear attention 모델은 현재 지원하지 않고, Hub repo 안에 custom code로 들어간 모델은 규칙을 지키지 않은 경우가 많아 잘 작동하지 않을 수 있다. 자동 재작성은 backend가 인식할 수 있는 패턴이 있을 때 힘을 발휘한다. 그래도 방향은 뚜렷하다. transformers를 모델 구현의 중심에 두고, vLLM이 그 코드를 서빙 친화적인 형태로 바꾸는 흐름이다. 연구와 프로덕션 사이의 복사 비용을 줄이는 업데이트로 볼 만하다.