본문으로 건너뛰기
AWS ML Blog조회 2

Amazon SageMaker AI와 vLLM을 활용한 실시간 음성 애플리케이션 구축

Amazon SageMaker AI의 양방향 스트리밍과 vLLM의 Realtime API를 결합하여 실시간 음성-텍스트 변환 서비스를 구축하는 방법을 설명한다.

섹션별 상세

01
기존 요청-응답 방식은 전체 오디오 수신 후 처리를 시작하여 실시간 서비스에 부적합한 지연을 발생시킨다. SageMaker AI의 양방향 스트리밍은 HTTP/2를 통해 클라이언트와 컨테이너 간 지속적인 연결을 유지한다. 이 구조는 오디오를 청크 단위로 스트리밍하며 즉각적인 전사 결과를 반환하여 실시간성을 확보한다.
02
vLLM의 Realtime API는 WebSocket을 통해 오디오 데이터를 입력받고 전사 토큰을 출력한다. Piecewise CUDA 그래프 실행을 적용하여 GPU 커널 시작 오버헤드를 줄이고 스트리밍 전사 시 토큰당 지연 시간을 최소화한다. 오픈 소스인 vLLM을 사용하여 모델 구성과 양자화 설정을 제어할 수 있다.
Realtime API를 통한 클라이언트와 서버 간의 오디오 스트리밍 및 전사 메시지 흐름 시퀀스 다이어그램.
Diagram이 다이어그램은 클라이언트가 WebSocket을 통해 오디오 청크를 전송하고 서버가 전사 결과를 스트리밍하는 양방향 통신 과정을 보여준다. 실시간 음성 인식의 핵심인 데이터 흐름을 시각화하여 이해를 돕는다.
03
SageMaker AI는 HTTP/2 이벤트 스트림과 WebSocket 프로토콜 간의 브릿지 역할을 수행한다. 컨테이너 내부에 FastAPI 기반 브릿지를 배포하여 SageMaker AI의 경로를 vLLM의 내부 API 경로로 매핑한다. 이 과정에서 별도의 프로토콜 변환 관리 없이 실시간 양방향 통신이 가능하다.
dockerfile
FROM public.ecr.aws/deep-learning-containers/vllm:0.17.1-gpu-py312-cu129-ubuntu22.04-sagemaker-v1.0-soci LABEL com.amazonaws.sagemaker.capabilities.bidirectional-streaming=true WORKDIR /opt/ml/code COPY requirements.txt . RUN pip install --upgrade --no-cache-dir -r requirements.txt COPY app.py . COPY sagemaker-entrypoint.sh entrypoint.sh RUN chmod +x entrypoint.sh ENTRYPOINT ["./entrypoint.sh"]

SageMaker AI 양방향 스트리밍을 활성화하는 Dockerfile 설정

python
VLLM_WS_URL = "ws://localhost:8081/v1/realtime" @app.websocket("/invocations-bidirectional-stream") async def websocket_bridge(sm_ws: WebSocket): await sm_ws.accept() async with websockets.connect(VLLM_WS_URL) as vllm_ws: async def sm_to_vllm(): while True: message = await sm_ws.receive() if "text" in message and message["text"]: await vllm_ws.send(message["text"]) elif "bytes" in message and message["bytes"]: await vllm_ws.send(message["bytes"].decode("utf-8")) async def vllm_to_sm(): async for msg in vllm_ws: if isinstance(msg, str): await sm_ws.send_text(msg) elif isinstance(msg, bytes): await sm_ws.send_bytes(msg) await asyncio.gather(sm_to_vllm(), vllm_to_sm())

SageMaker AI와 vLLM 간의 WebSocket 통신을 중계하는 FastAPI 브릿지 코드

04
Voxtral-Mini-4B-Realtime-2602 모델을 활용한 실시간 음성 인식 데모는 Gradio를 통해 구현된다. 마이크 입력을 16kHz PCM16으로 리샘플링하고 base64로 인코딩하여 전송한다. 이 아키텍처는 음성 에이전트, 실시간 자막, 콜센터 분석 등 연속적인 양방향 통신이 필요한 서비스에 적용 가능하다.
python
voxtral_model = Model.create( model_name=model_name, primary_container=ContainerDefinition( image=inference_image, model_data_source=ModelDataSource( s3_data_source=S3ModelDataSource( s3_uri=f"{model_artifact}/", s3_data_type="S3Prefix", compression_type="None", ) ), environment=vllm_env ), execution_role_arn=role, )

SageMaker AI 엔드포인트에 모델을 배포하는 코드

SageMaker AI 엔드포인트 배포 워크플로우를 보여주는 다이어그램.
Diagram이 이미지는 모델 생성, 엔드포인트 설정, 엔드포인트 생성으로 이어지는 배포 과정을 설명한다. SageMaker AI 인프라 내에서 모델이 어떻게 배포되고 관리되는지 구조적으로 보여준다.

용어 해설

vLLM
고성능 LLM 추론 및 서빙 엔진. PagedAttention 기술을 통해 메모리 효율을 극대화하며, Realtime API를 통해 WebSocket 기반의 스트리밍 추론을 지원한다.
웹소켓(WebSocket)
클라이언트와 서버 간의 전이중 통신을 지원하는 프로토콜. 실시간 음성 인식처럼 데이터가 지속적으로 오가는 서비스에서 필수적이다.
CUDA 그래프(CUDA Graph)
GPU 커널 실행을 그래프 형태로 미리 정의하여 실행 오버헤드를 줄이는 기술. vLLM에서 추론 지연 시간을 낮추는 데 사용된다.
HTTP/2
웹 통신 프로토콜. 다중화 및 양방향 스트리밍을 지원하여 SageMaker AI에서 실시간 데이터 전송을 가능하게 한다.

기술

  • Amazon SageMaker AI
  • vLLM
  • Voxtral-Mini-4B-Realtime-2602
  • Gradio
  • FastAPI
  • HTTP/2
  • WebSocket

활용 사례

  • Voice Agents
  • Live Captioning
  • Contact Center Analytics
  • Real-time Translation
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 05. 21.수집 2026. 05. 21.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.