AWS, SageMaker AI·vLLM 결합한 실시간 음성 전사 가이드 공개
AWS가 SageMaker AI 양방향 스트리밍과 vLLM Realtime API를 결합해 실시간 음성 전사 서비스를 만드는 구현 가이드를 ML 블로그에 공개했다. Mistral AI의 컴팩트 실시간 음성 모델 Voxtral-Mini-4B-Realtime-2602를 SageMaker AI 엔드포인트에 배포해, 클라이언트가 오디오를 보내는 동안 동시에 전사 결과가 돌아오는 풀듀플렉스 파이프라인을 보여 준다.
보이스 에이전트, 라이브 캡션, 콘택트센터 분석, 접근성 도구 같은 워크로드는 오디오를 받자마자 전사 토큰을 돌려주는 실시간 처리에 의존한다. 기존 요청-응답형 추론은 전체 녹음이 다 도착해야 처리가 시작돼 실시간 경험을 깨뜨리는 한계가 있었다.
AWS는 이 간극을 메우기 위해 2025년 11월부터 SageMaker AI의 실시간 추론에 양방향 스트리밍 기능을 제공하기 시작했다. vLLM 역시 Realtime API를 통해 WebSocket 기반 양방향 스트리밍을 지원하면서, 두 기술을 한 엔드포인트에 묶을 수 있게 됐다.
vLLM은 /v1/realtime 경로에 네이티브 WebSocket 엔드포인트를 노출하며, piecewise CUDA 그래프 실행으로 GPU 커널 실행 오버헤드를 줄여 토큰당 지연 시간을 낮춘다. 오픈소스이기 때문에 모델 설정, 양자화, 컴파일 옵션을 사용자가 직접 제어할 수 있고 서빙 계층의 벤더 종속이 없다.
클라이언트는 HTTP/2 다중화 스트림을 사용해 8443 포트의 SageMaker AI 런타임 엔드포인트에 접속한다. SageMaker AI가 들어온 HTTP/2 이벤트 스트림과 컨테이너의 WebSocket을 자동으로 브리지하며, 클라이언트가 DataType을 UTF8로 지정하면 컨테이너에는 WebSocket 텍스트 프레임 그대로 전달된다.
컨테이너 내부에는 FastAPI 기반 경량 브리지(app.py)가 8080 포트의 /invocations-bidirectional-stream 경로에서 대기한다. 이 브리지는 SageMaker AI가 연결한 WebSocket을 받아 vLLM이 8081 포트의 /v1/realtime에 띄운 두 번째 WebSocket과 연결해 메시지를 양방향으로 중계하고, vLLM 소스 코드를 패치하지 않고도 /ping 헬스 체크를 함께 프록시해 호스팅 규약을 충족시킨다.
오디오 프로토콜은 16 kHz 모노 PCM16을 base64로 인코딩해 input_audio_buffer.append 이벤트로 보내고, 서버는 transcription.delta 이벤트로 증분 텍스트를, transcription.done 이벤트로 최종 전사와 사용량 통계를 돌려준다. 클라이언트는 input_audio_buffer.commit에 final=True를 붙여 입력 종료를 알릴 수 있어 오디오 파일 스트리밍 시나리오에도 대응된다.
운영 측면에서는 SageMaker AI가 WebSocket 연결을 ping/pong 킵얼라이브 프레임으로 유지하고 컨테이너 헬스를 점검하며, 엔드포인트 모니터링을 Amazon CloudWatch로 노출한다. 가이드에는 Gradio 기반 마이크 라이브 데모와 오디오 파일 스트리밍 파이썬 클라이언트가 함께 제공돼 음성 모델 배포부터 실서비스 운영까지의 단계를 그대로 따라갈 수 있다.