텍스트를 넘어선 전방위 미디어 서빙: vLLM-Omni DLC의 등장
대규모 언어 모델(LLM)의 발전이 텍스트 생성을 넘어 음성, 이미지, 비디오를 아우르는 멀티모달 영역으로 빠르게 확장되면서 인프라 서빙 스택의 복잡성도 급격히 증가하고 있습니다. 기존의 텍스트 전용 추론 런타임은 자귀회귀(Autoregressive) 생성 방식에 최적화되어 있어, 다단계 파이프라인이나 확산(Diffusion) 모델, 대용량 미디어 청크 스트리밍을 단일 구조 내에서 처리하기 어려웠습니다.
AWS는 이러한 서빙 파편화 문제를 해결하기 위해 vLLM-Omni Deep Learning Container(DLC) 기반의 다중 모달리티 호스팅 방식을 제시했습니다. vLLM-Omni는 기존 vLLM의 고성능 서빙 구조를 계승하면서도 오디오, 이미지, 비디오 모델을 OpenAI 호환 API 규격과 이기종 파이프라인 추상화(Heterogeneous Pipeline Abstraction)로 통합 지원합니다.
- 텍스트 프롬프트
- FLUX.2-klein 실시간 이미지 생성
- Wan2.1-VACE 비동기 비디오 렌더링
- S3 비디오 저장 및 스트리밍
초저지연 음성 대화를 위한 HTTP/2 양방향 스트리밍
대화형 음성 에이전트, 고객 지원 봇, 접근성 도구 등 실시간성이 필수적인 음성 애플리케이션에서는 긴 침묵 구간(Silent Pause)을 제거하는 것이 핵심 과제입니다. 모델이 전체 음성 생성을 완료할 때까지 대기하지 않고, 첫 번째 오디오 청크가 생성되는 즉시 클라이언트로 전달하는 스트리밍 아키텍처가 요구됩니다.
AWS는 Amazon SageMaker AI의 HTTP/2 기반 WebSocket 양방향 스트리밍 기능과 vLLM-Omni 컨테이너의 내부 라우팅을 결합했습니다.
- 포트 및 프로토콜 구성: 클라이언트는 SageMaker 런타임 엔드포인트의 8443 포트로 전이중(Full-duplex) HTTP/2 WebSocket 연결을 수립합니다.
- 엔드포인트 라우팅: SageMaker 사이드카가 클라이언트의 세션 설정 및 텍스트 이벤트를 컨테이너 내부의 `v1/audio/speech/stream` 경로로 전달합니다.
- 오디오 출력 포맷: 텍스트 입력이 전달되면 Qwen3-TTS 모델이 24 kHz PCM 오디오 청크를 실시간으로 분할 반환하여 즉시 재생을 지원합니다.
"음성 에이전트와 고객 서비스 어시스턴트는 긴 침묵 구간 없이 응답해야 합니다. 이 튜토리얼에서는 전체 응답 생성이 끝나기 전에 음성 재생을 시작할 수 있는 TTS 모델을 Amazon SageMaker AI에 배포합니다."
이 구조는 앞서 공개된 Voxtral-Mini-4B 기반 실시간 음성-텍스트(STT) 파이프라인과 완벽히 대칭을 이루어, 입력 스트림(STT)과 출력 스트림(TTS)을 결합한 완전한 실시간 음성 에이전트 구성을 가능하게 합니다.
이미지·비디오 생성: 실시간과 비동기 추론의 하이브리드 결합
이미지와 비디오 생성은 워크로드의 연산량과 소요 시간, 페이로드 크기가 서로 크게 다릅니다. 사용자의 즉각적인 피드백이 필요한 이미지 생성은 실시간 엔드포인트로 처리하고, 긴 연산 시간이 소요되는 비디오 변환은 비동기 엔드포인트로 격리하는 설계가 필수적입니다.
AWS는 단일 컨테이너 이미지(`omni-sagemaker-cuda-v1.6`)를 공유하면서 엔드포인트 성격을 이원화하는 방식을 채택했습니다.
| 파이프라인 단계 | 적용 모델 | 서빙 방식 | 라우트 경로 | 기본 인스턴스 |
|---|---|---|---|---|
| 1단계 (이미지 생성) | FLUX.2-klein-4B | 실시간 엔드포인트 | `/v1/images/generations` | ml.g6.xlarge |
| 2단계 (비디오 생성) | Wan2.1-VACE-1.3B | 비동기 엔드포인트 | `/v1/videos/sync` | ml.g6e.xlarge |
다단계 페이로드 최적화
1. 이미지 생성: 클라이언트가 텍스트 프롬프트를 전송하면 FLUX.2-klein 모델이 base64 인코딩된 PNG 이미지를 즉시 반환합니다. 2. 페이로드 전처리: 비디오 모델의 입력 규격에 맞추어 이미지를 480x320 크기로 리사이징하고 압축된 JPEG Data URL로 변환합니다. 이는 멀티파트 파서의 파트별 크기 제한을 초과하지 않도록 설계된 조치입니다. 3. 비동기 큐잉 및 S3 연계: SageMaker Asynchronous Inference의 인라인 본문 크기 제한(Body 128,000바이트)을 고려하여, 멀티파트 요청을 Amazon S3에 업로드하고 `InputLocation`을 통해 엔드포인트를 호출합니다. 모델은 디코딩 시 메모리 피크를 줄이기 위해 VAE 타일링 기법을 적용합니다.
인프라 효율화 및 실측 성능 분석
단일 DLC 이미지를 사용하면서 환경 변수 `SM_VLLM_MODEL`만 변경해 서로 다른 모달리티 모델을 구동하는 구조는 컨테이너 레지스트리 관리 및 보안 패치 적용 등의 MLOps 운영 비용을 크게 낮춥니다.
또한 SageMaker의 인스턴스 풀(Instance Pools) 기능을 활용해 `ml.g6.xlarge`를 우선 프로비저닝하고, 가용 용량 부족 시 `ml.g6e.xlarge`, `ml.g5.xlarge`, `ml.g4dn.xlarge` 순으로 자동 대체하도록 구성할 수 있습니다.
실제 미국 동부(버지니아 북부) 리전에서 측정된 단일 검증 실행 지표는 다음과 같습니다.
- 엔드포인트 준비 시간: `ml.g6.xlarge` 이미지 엔드포인트 배포에 9분 30초, `ml.g6e.xlarge` 비디오 엔드포인트 배포에 8분 40초가 소요되었습니다.
- 웜 스타트 추론 지연 시간: FLUX.2-klein 이미지 생성은 4.7초, Wan2.1-VACE 비디오 모델 추론 지연 시간은 8.9초, 클라이언트의 최종 MP4 검색 완료까지는 11.8초가 기록되었습니다 (17 프레임, 30 디퓨전 스텝 기준).