아티클 목록으로
추론·배포

vLLM, 최전선 성능과 이식성을 위한 하드웨어 비종속 레이어 도입

약 3분 소요

들어가며

vLLM은 그동안 모델 정의와 가속기 백엔드 사이의 추상화 계층으로 기능해 왔습니다. 어텐션, 선형 투영, 정규화, 활성화 같은 공통 구성요소를 여러 모델이 공유하고, torch.compile을 통해 그래프 추적과 연산 융합, 백엔드용 변환을 수행했습니다. 이 구조 덕분에 NVIDIA, AMD, Intel 등 다양한 하드웨어 생태계에서 모델 지원을 확장할 수 있었습니다.

하지만 최신 모델의 구조는 빠르게 갈라지고 있습니다. 모델마다 전용 레이어와 최적화 커널을 포함하고, 어텐션 구현도 서로 다른 방향으로 발전하고 있습니다. 동시에 차세대 GPU와 랙 단위 시스템에서 성능을 끌어내려면 계산과 통신의 중첩까지 하드웨어별로 설계해야 합니다. 이런 요구에 대응하기 위해 vLLM은 완전한 그래프 컴파일을 전제로 하지 않는 ‘플랫’ 모델 구현을 확대하고 있습니다.

핵심 내용

  • 공통 추상화의 비용이 커지고 있다. vLLM에는 새로운 모델 정의, 레거시 모델, Transformers 백엔드라는 세 가지 경로가 있지만, 대부분은 동일한 공통 레이어로 연결됩니다. 새 모델을 완전한 그래프 컴파일에 맞추려면 Dynamo 추적 가능 코드, Torch 라이브러리 연산자 등록, 가짜 구현, 변경 정보 지정 등이 필요합니다.
  • 플랫 모델은 최전선 성능을 우선한다. 특정 모델과 하드웨어를 위한 융합과 커널을 사용하면 최신 기능을 더 자유롭게 활용할 수 있습니다. 대신 완전한 그래프 컴파일이나 기존 CustomOp 확장 방식과 호환되지 않을 수 있습니다.
  • 외부 가속기 생태계에는 부담이 될 수 있다. IBM Spyre 같은 플러그인은 TorchDynamo와 TorchInductor에 의존하고, 성능을 위해 메모리 레이아웃이나 레이어 동작을 바꾸기도 합니다. 공통 레이어의 컴파일 및 확장성이 약해지면 플러그인 개발자가 모델과 레이어를 별도로 중복 관리해야 할 가능성이 있습니다.
  • 하드웨어 비종속 레이어가 완충 역할을 한다. vLLM은 구형 GPU, 소비자용 하드웨어, 트리 외 가속기를 위한 레이어 세트를 저장소 안에 구축하고 있습니다. 원문에 따르면 H100에서 이 구현은 최근 3개 모델의 기하평균 기준 총 토큰 처리량이 네이티브 구현과 3.4% 이내였습니다.

의미와 영향

이 전략은 하나의 추상화로 모든 목표를 해결하려 하기보다, ‘최신 시스템의 최고 성능’과 ‘다양한 하드웨어 및 모델 지원’을 별도 경로로 나누는 방식입니다. 모델 개발자는 공통 추상화에 맞추기 위해 최적화를 포기할 필요가 줄고, 사용자는 주류가 아닌 가속기에서도 새 모델을 사용할 수 있는 경로를 유지할 수 있습니다.

물론 구조적 복잡성과 유지보수 비용은 늘어납니다. 개발자는 플랫 모델과 하드웨어 비종속 레이어의 적용 범위를 구분해야 하고, 커뮤니티는 두 구현 전략을 함께 관리해야 합니다. 하드웨어 비종속 레이어가 네이티브에 가까운 성능을 유지하면서 Transformers 백엔드와 외부 플러그인까지 지원한다면, 이 이중 구조는 vLLM의 빠른 최적화와 장기적인 생태계를 연결하는 기반이 될 수 있습니다.

출처: PyTorch Blog

댓글

로그인 상태 확인 중…

댓글 불러오는 중…

관련 게시물