이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
Amazon EKS에서 AI/ML 추론 워크로드 실행
작은 정보
향후 예정된 Amazon EKS AI/ML 워크숍에 등록
추론은 훈련된 AI 모델을 실행하여 입력 데이터에서 예측 또는 출력을 생성하는 프로세스입니다. 여기에는 텍스트 또는 코드를 생성하는 대규모 언어 모델(LLM), 이미지를 생성하는 확산 모델, 음성 합성 및 트랜스크립션을 위한 음성 모델, 실시간 분석 또는 생성을 위한 비디오 모델 제공이 포함됩니다. Amazon EKS는 NVIDIA GPU 또는 AWS Trainium 액셀러레이터, 동적 규모 조정, 광범위한 Kubernetes 및 AWS 도구 및 서비스 환경과의 통합을 통해 이러한 추론 워크로드를 배포할 수 있는 확장 가능하고 이식 가능한 솔루션을 제공합니다.
추론에 Amazon EKS를 사용해야 하는 이유
Amazon EKS는 Kubernetes 오케스트레이션을 AWS 인프라와 결합하여 대규모 추론 실행이라는 주요 과제를 해결합니다.
-
동적 GPU 규모 조정 - Karpenter는 포드 리소스 요청에 따라 온디맨드로 적절한 크기의 GPU 인스턴스를 프로비저닝하여 유휴 시에는 0부터 규모를 조정하고 트래픽 증가에 따라 용량을 추가합니다. 이렇게 하면 비용이 많이 드는 GPU 리소스가 과도하게 프로비저닝되지 않습니다.
-
빠른 콜드 스타트 - SOCI(Seekable OCI) 병렬 풀은 대용량 컨테이너 이미지 계층을 동시에 다운로드하고 압축을 해제하여 이미지 풀 시간을 분 단위에서 초 단위로 줄입니다. Amazon S3에서 GPU 메모리로 직접 스트리밍하는 모델과 결합되면 포드가 2분 이내에 서비스를 시작할 수 있습니다.
-
자동 GPU 장애 복구 - EKS 노드 모니터링 에이전트는 GPU 하드웨어 장애를 감지하고 자동 노드 교체를 트리거하여 수동 개입 없이 가동 중지 시간을 최소화합니다.
-
비용 최적화 - 온디맨드 폴백, 적절한 크기의 인스턴스 선택, 0으로 규모 조정 동작이 포함된 스팟 인스턴스는 GPU 비용을 절감합니다. 예약 용량(ODCR)을 사용하면 정상 상태 워크로드의 비용을 추가로 절감할 수 있습니다.
-
개방형 표준 및 이식성 - 추론 워크로드는 vLLM 또는 SGLang 같은 오픈 소스 모델 서버와 함께 표준 Kubernetes API(배포, 서비스, HPA)에서 실행되어 환경 간 이식성을 제공합니다.
-
통합 모니터링 - vLLM 또는 SGLang 및 NVIDIA DCGM Exporter의 Prometheus 지표는 Grafana 대시보드를 통해 요청 지연 시간, 토큰 처리량, GPU 사용률, 메모리 사용량에 대한 가시성을 제공합니다.
용어집
이 섹션에서 사용되는 용어는 다음과 같습니다.
-
추론 - 훈련된 모델을 실행하여 입력 데이터에서 출력(텍스트, 임베딩, 분류)을 생성하는 프로세스입니다.
-
모델 서버 - 모델을 메모리에 로드하고, 추론 요청을 수신하고, 예측을 반환하는 컨테이너화된 서비스입니다. vLLM
, SGLang , Triton Inference Server , Text Generation Inference(TGI) 을 예로 들 수 있습니다. -
모델 가중치 - 모델 서버가 GPU 메모리에 로드하는 파일(일반적으로 SafeTensors 또는 GGUF 형식)로 저장된 훈련된 모델의 학습된 파라미터입니다.
-
액셀러레이터 - NVIDIA GPU 또는 AWS Trainium/Inferentia 칩 등 추론에 필요한 행렬 연산 속도를 높이는 전문 하드웨어입니다.
-
텐서 병렬 처리 - 동일한 노드의 여러 GPU에 모델을 분할하여 단일 GPU의 메모리를 초과하는 모델을 제공합니다.
-
KV 캐시 - 텍스트 생성 중에 이전에 계산된 키-값 페어를 저장하여 새 토큰을 생성할 때마다 중복 계산을 방지하는 메모리 버퍼입니다.
Amazon EKS에서 추론 작동 방식
상위 수준에서 Amazon EKS에 추론 워크로드를 배포하려면 다음 단계가 필요합니다.
| 단계 | 설명 |
|---|---|
|
클러스터 설정 |
GPU 지원 노드, 모니터링, 스토리지가 포함된 EKS 클러스터를 생성합니다. EKS의 AI/ML 문서의 클러스터 설정을 참조하세요. |
|
모델 가중치 저장 |
모델 레지스트리(예: Hugging Face)에서 모델 가중치를 다운로드하고 콜드 스타트 또는 스케일 업 이벤트 중에 빠른 모델 로드를 위해 Amazon S3에 저장합니다. |
|
모델 서버 배포 |
GPU 노드에서 모델 서버(예: vLLM)를 실행하는 Kubernetes 배포를 생성합니다. 모델 서버는 S3에서 GPU 메모리로 가중치를 스트리밍하고 OpenAI 호환 API를 노출합니다. |
|
추론 엔드포인트 노출 |
Kubernetes 서비스를 생성하여 안정적인 네트워크 엔드포인트를 제공합니다. 테스트에는 포트 전달을 사용하고 프로덕션 트래픽에는 AWS Application Load Balancer(ALB) 같은 로드 밸런서를 사용합니다. |
|
모니터링 및 규모 조정 |
Prometheus 지표(요청 속도, 토큰 처리량, 지연 시간, KV 캐시 사용률)를 사용하여 성능을 모니터링하고 오토 스케일링을 구성합니다. |
추론 성능 지표
추론 성능을 이해하려면 지연 시간 및 처리량 전반의 지표를 추적해야 합니다.
지연 시간 지표
-
첫 번째 토큰까지의 시간(TTFT) - 요청 도착부터 처음 생성된 토큰까지의 시간입니다. 대화형 애플리케이션에 매우 중요합니다.
-
출력 토큰당 시간(TPOT) - 첫 번째 토큰 이후 각 후속 토큰의 평균 생성 시간입니다.
-
종단 간 요청 지연 시간 - 요청 제출부터 전체 응답 완료까지의 총 시간입니다.
처리량 지표
-
초당 요청 수 - 모든 복제본에서 초당 제공된 총 추론 요청 수입니다.
-
초당 출력 토큰 - 총 출력 토큰을 경과 시간으로 나눈 값으로 측정된 토큰 생성 속도입니다.
-
GPU 사용률 - 추론에 능동적으로 사용되는 GPU 컴퓨팅 주기의 백분율입니다.
-
KV 캐시 사용률 - 사용 중인 할당된 KV 캐시 메모리의 백분율로서 서버가 용량에 얼마나 근접했는지 나타냅니다.
콜드 스타트 시간 단축
대규모 추론 컨테이너(8~15GB)와 모델 가중치(10~100GB 이상)로 인해 포드 시작 속도가 느려질 수 있습니다. 다음 기법은 콜드 스타트 지연을 최소화합니다.
-
SOCI 병렬 풀 - 컨테이너 이미지 계층을 순차적이 아니라 동시에 다운로드하고 압축을 해제합니다. GPU 인스턴스용 EKS 자율 모드에서 기본적으로 활성화됩니다.
-
S3에서 모델 스트리밍 - Run:ai Model Streamer
와 같은 도구는 Amazon S3에서 GPU 메모리로 직접 모델 가중치를 스트리밍하여 로컬 디스크를 우회하고 로드 시간을 분 단위에서 초 단위로 줄입니다. -
Amazon ECR에 이미지 저장 - VPC 엔드포인트를 통해 리전 ECR 리포지토리에서 가져오면 대용량 컨테이너 이미지의 인터넷 지연 시간이 방지됩니다.
-
인스턴스 저장소 캐싱 - 로컬 NVMe 디스크가 있는 G 패밀리 인스턴스는 컨테이너 계층과 모델 아티팩트를 캐싱하여 동일한 노드에서 후속 가져오기 속도를 높일 수 있습니다.
배포할 항목
모델 로드 및 제공 안내서는 종단 간 추론 애플리케이션을 배포하는 방법을 안내합니다.
-
모델 가중치 다운로드 - Kubernetes 작업은 Hugging Face에서 Ministral-3-8B-Instruct 모델을 다운로드하여 S3 버킷에 업로드합니다.
-
vLLM 배포 - 배포는 Run:ai Model Streamer와 함께 vLLM을 실행하여 S3에서 GPU 메모리로 가중치를 직접 스트리밍하는 방식으로 OpenAI 호환 API를 제공합니다.
-
Grafana로 모니터링 - ServiceMonitor는 실시간 대시보드를 위해 vLLM Prometheus 지표를 모니터링 스택에 연결합니다.
-
채팅 프론트엔드 배포 - Open WebUI는 vLLM 엔드포인트에 연결된 브라우저 기반 채팅 인터페이스를 제공합니다.
이 연습은 AI/ML 워크로드를 위한 Amazon EKS 클러스터 설정 섹션의 클러스터 인프라를 사용하며 EKS 자율 모드 경로와 자체 관리형 Karpenter 경로 모두에서 작동합니다.