기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
HyperPod 클러스터에서 추론 관찰성 구현
Amazon SageMaker HyperPod는 데이터 과학자와 기계 학습 엔지니어가 배포된 모델을 모니터링하고 최적화할 수 있는 포괄적인 추론 관찰 기능을 제공합니다. 이 솔루션은 SageMaker HyperPod Observability를 통해 활성화되며 추론 워크로드에 대한 성능 지표를 자동으로 수집하여 통합 Prometheus
기본적으로 지표를 활성화하면 플랫폼은 호출 지연 시간, 동시 요청, 오류율 및 토큰 수준 지표를 포함한 필수 모델 성능 데이터를 캡처하는 동시에 사용자 지정 관찰성 솔루션을 구현하려는 고객에게 표준 Prometheus 엔드포인트를 제공합니다.
참고
이 주제에는 HyperPod 클러스터에서 추론 관찰성을 구현하는 방법에 대한 자세한 내용이 포함되어 있습니다. 보다 일반적인 참조는 단원을 참조하십시오클러스터 및 작업 관찰성.
이 가이드에서는 HyperPod 클러스터에서 추론 관찰성을 구현하고 사용하기 위한 step-by-step 지침을 제공합니다. 배포 YAML 파일에서 지표를 구성하고, 역할(관리자, 데이터 과학자 또는 기계 학습 엔지니어)을 기반으로 모니터링 대시보드에 액세스하고, Prometheus 엔드포인트를 사용하여 사용자 지정 관찰성 솔루션과 통합하고, 일반적인 모니터링 문제를 해결하는 방법을 알아봅니다.
지원되는 추론 지표
호출 지표
이러한 지표는 모델 추론 요청 및 응답 데이터를 캡처하여 모델 유형 또는 서비스 프레임워크에 관계없이 범용 가시성을 제공합니다. 추론 지표가 활성화되면 이러한 지표는 호출 시 계산되어 모니터링 인프라로 내보내집니다.
-
model_invocations_total
- 모델에 대한 총 호출 요청 수 -
model_errors_total
- 모델 호출 중 총 오류 수 -
model_concurrent_requests
- 활성 동시 모델 요청 -
model_latency_milliseconds
- 밀리초 단위의 모델 호출 지연 시간 -
model_ttfb_milliseconds
- 밀리초 단위의 첫 번째 바이트 지연 시간 모델링
컨테이너 지표 모델링
이러한 지표는 토큰 처리, 대기열 관리 및 프레임워크별 성능 지표를 포함하여 모델 컨테이너의 내부 작업에 대한 인사이트를 제공합니다. 사용 가능한 지표는 모델 서비스 프레임워크에 따라 다릅니다.
지표 차원
모든 추론 지표에는 배포 전반에서 세부 필터링 및 분석을 지원하는 포괄적인 레이블이 포함되어 있습니다.
-
클러스터 자격 증명:
-
cluster_id
- HyperPod 클러스터의 고유 ID -
cluster_name
- HyperPod 클러스터의 이름
-
-
리소스 자격 증명:
-
resource_name
- 배포 이름(예: "jumpstart-model-deployment") -
resource_type
- 배포 유형(점프스타트, 추론 엔드포인트) -
namespace
- 다중 테넌시를 위한 Kubernetes 네임스페이스
-
-
모델 특성:
-
model_name
- 특정 모델 식별자(예: "llama-2-7b-chat") -
model_version
- A/B 테스트 및 롤백을 위한 모델 버전 -
model_container_type
- 서비스 프레임워크(TGI, LMI, -)
-
-
인프라 컨텍스트:
-
pod_name
- 디버깅을 위한 개별 포드 식별자 -
node_name
- 리소스 상관관계를 위한 Kubernetes 노드 -
instance_type
- 비용 분석을 위한 EC2 인스턴스 유형
-
-
운영 컨텍스트:
-
metric_source
- 컬렉션 지점(역프록시, 모델 컨테이너) -
task_type
- 워크로드 분류(추론)
-
배포 YAML에서 지표 구성
Amazon SageMaker HyperPod는 모든 모델 배포에 대해 기본적으로 추론 지표를 활성화하여 추가 구성 없이 즉각적인 관찰성을 제공합니다. 배포 YAML 구성을 수정하여 특정 요구 사항에 따라 지표 수집을 활성화하거나 비활성화하여 지표 동작을 사용자 지정할 수 있습니다.
JumpStart에서 모델 배포
다음 YAML 구성을 사용하여 지표가 활성화된 JuJumpStartmpStart 모델을 배포합니다.
apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1 kind: JumpStartModel metadata: name:mistral-model namespace: ns-team-a spec: model: modelId: "huggingface-llm-mistral-7b-instruct" modelVersion: "3.19.0" metrics: enabled:true # Default: true (can be set to false to disable) replicas: 2 sageMakerEndpoint: name: "mistral-model-sm-endpoint" server: instanceType: "ml.g5.12xlarge" executionRole: "arn:aws:iam::123456789:role/SagemakerRole" tlsConfig: tlsCertificateOutputS3Uri: s3://hyperpod/mistral-model/certs/
Amazon S3 또는 Amazon FSx에서 사용자 지정 및 미세 조정된 모델 배포
다음 YAML을 사용하여 세부 지표 설정으로 사용자 지정 추론 엔드포인트를 구성합니다.
apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1 kind: JumpStartModel metadata: name:mistral-model namespace: ns-team-a spec: model: modelId: "huggingface-llm-mistral-7b-instruct" modelVersion: "3.19.0" metrics: enabled:true # Default: true (can be set to false to disable) replicas: 2 sageMakerEndpoint: name: "mistral-model-sm-endpoint" server: instanceType: "ml.g5.12xlarge" executionRole: "arn:aws:iam::123456789:role/SagemakerRole" tlsConfig: tlsCertificateOutputS3Uri: s3://hyperpod/mistral-model/certs/ Deploy a custom inference endpoint Configure custom inference endpoints with detailed metrics settings using the following YAML: apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1 kind: InferenceEndpointConfig metadata: name: inferenceendpoint-deepseeks namespace: ns-team-a spec: modelName: deepseeks modelVersion: 1.0.1 metrics: enabled: true # Default: true (can be set to false to disable) metricsScrapeIntervalSeconds: 30 # Optional: if overriding the default 15s modelMetricsConfig: port: 8000 # Optional: if overriding, it defaults to the WorkerConfig.ModelInvocationPort.ContainerPort within the InferenceEndpointConfig spec 8080 path: "/custom-metrics" # Optional: if overriding the default "/metrics" endpointName: deepseek-sm-endpoint instanceType: ml.g5.12xlarge modelSourceConfig: modelSourceType: s3 s3Storage: bucketName: model-weights region: us-west-2 modelLocation: deepseek prefetchEnabled: true invocationEndpoint: invocations worker: resources: limits: nvidia.com/gpu: 1 requests: nvidia.com/gpu: 1 cpu: 25600m memory: 102Gi image: 763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:0.32.0-lmi14.0.0-cu124 modelInvocationPort: containerPort: 8080 name: http modelVolumeMount: name: model-weights mountPath: /opt/ml/model environmentVariables: ... tlsConfig: tlsCertificateOutputS3Uri: s3://hyperpod/inferenceendpoint-deepseeks4/certs/
참고
특정 배포에 대한 지표를 비활성화하려면 YAML 구성metrics.enabled: false
에서를 설정합니다.
역할별 추론 워크로드 모니터링 및 문제 해결
Amazon SageMaker HyperPod는 초기 클러스터 설정부터 고급 성능 문제 해결에 이르기까지 다양한 사용자 워크플로를 지원하는 포괄적인 관찰성 기능을 제공합니다. 역할 및 모니터링 요구 사항에 따라 다음 지침을 사용합니다.
HyperPod 관리자
책임: 관찰성 인프라를 활성화하고 전체 클러스터에서 시스템 상태를 보장합니다.
알아야 할 사항:
-
클러스터 전반의 관찰성은 모든 워크로드에 대한 인프라 지표를 제공합니다.
-
원클릭 설정은 사전 구성된 대시보드를 사용하여 모니터링 스택을 배포합니다.
-
인프라 지표는 모델별 추론 지표와 별개입니다.
수행해야 할 작업:
-
HyperPod 콘솔로 이동합니다.
-
클러스터를 선택합니다.
-
방금 생성한 HyperPod 클러스터 세부 정보 페이지로 이동합니다. HyperPod 관찰성 추가 기능을 설치하는 새 옵션이 표시됩니다.
-
빠른 설치 옵션을 클릭합니다. 1~2분 후에 모든 단계가 완료되고 Grafana 대시보드와 Prometheus 워크스페이스 세부 정보가 표시됩니다.
이 단일 작업은 EKS 추가 기능을 자동으로 배포하고, 관찰성 연산자를 구성하고, Grafana에서 사전 구축된 대시보드를 프로비저닝합니다.
데이터 과학자
책임: 모델을 효율적으로 배포하고 기본 성능을 모니터링합니다.
알아야 할 사항:
-
모델을 배포할 때 지표가 자동으로 활성화됩니다.
-
Grafana 대시보드는 모델 성능에 대한 즉각적인 가시성을 제공합니다.
-
대시보드를 필터링하여 특정 배포에 집중할 수 있습니다.
수행해야 할 작업:
-
원하는 방법을 사용하여 모델을 배포합니다.
-
Amazon SageMaker Studio UI
-
HyperPod CLI 명령
-
노트북의 Python SDK
-
YAML 구성을 사용한 kubectl
-
-
모델 지표에 액세스합니다.
-
Amazon SageMaker Studio 열기
-
HyperPod 클러스터로 이동하여 Grafana 대시보드를 엽니다.
-
추론 대시보드 선택
-
필터를 적용하여 특정 모델 배포 보기
-
-
주요 성과 지표 모니터링:
-
모델 지연 시간 및 처리량 추적
-
오류 발생률 및 가용성 모니터링
-
리소스 사용률 추세 검토
-
이 작업이 완료되면 추가 구성 없이 모델의 성능을 즉시 확인할 수 있으므로 배포 문제 또는 성능 변경을 빠르게 식별할 수 있습니다.
기계 학습 엔지니어(MLE)
책임: 프로덕션 모델 성능을 유지하고 복잡한 성능 문제를 해결합니다.
알아야 할 사항:
-
고급 지표에는 대기열 깊이 및 토큰 지표와 같은 모델 컨테이너 세부 정보가 포함됩니다.
-
여러 지표 유형에 대한 상관관계 분석을 통해 근본 원인 파악
-
Auto Scaling 구성은 트래픽 급증 시 성능에 직접적인 영향을 미칩니다.
가상 시나리오: 고객의 채팅 모델이 간헐적으로 느린 응답을 경험합니다. 사용자가 5~10초 지연에 대해 불만을 제기합니다. MLE는 추론 관찰성을 활용하여 체계적인 성능 조사를 수행할 수 있습니다.
수행해야 할 작업:
-
Grafana 대시보드를 검토하여 성능 문제의 범위와 심각도를 이해합니다.
-
09:30 이후 높은 지연 시간 알림 활성
-
P99 지연 시간: 8.2초(정상: 2.1초)
-
영향을 받는 기간: 09:30~10:15(45분)
-
-
여러 지표를 상호 연관시켜 인시던트 발생 시 시스템 동작을 파악합니다.
-
동시 요청: 45로 스파이크됨(정상: 15~20)
-
포드 규모 조정: 인시던트 발생 시 KEDA에서 포드 2개 → 5개 규모 조정
-
GPU 사용률: 정상 유지(85~90%)
-
메모리 사용량: 일반(24GB/32GB)
-
-
인프라 지표가 정상으로 보이기 때문에 분산 시스템 동작을 검사합니다.
-
노드 수준 보기: 모든 포드가 동일한 노드에 집중됨(분산 불량)
-
모델 컨테이너 지표: TGI 대기열 깊이에 127개의 요청 표시(정상: 5~10)
Available in Grafana dashboard under "Model Container Metrics" panel Metric: tgi_queue_size{resource_name="customer-chat-llama"} Current value: 127 requests queued (indicates backlog)
-
-
상호 연결된 구성 문제를 식별합니다.
-
KEDA 조정 정책: 너무 느림(30초 폴링 간격)
-
조정 타임라인: 조정 응답이 트래픽 스파이크보다 45초 이상 지연됨
-
-
분석을 기반으로 대상 수정 사항을 구현합니다.
-
업데이트된 KEDA 폴링 간격: 30초 → 15초
-
조정 구성에서 maxReplicas 증가
-
조정 임계값을 조정하여 더 일찍 조정(동시 요청 15개 대 20개)
-
포괄적인 지표를 사용하여 복잡한 성능 문제를 체계적으로 진단하고, 대상 수정을 구현하고, 일관된 프로덕션 모델 성능을 유지하기 위한 예방 조치를 설정할 수 있습니다.
자체 관찰성 통합 구현
Amazon SageMaker HyperPod는 업계 표준 Prometheus 엔드포인트를 통해 추론 지표를 노출하므로 기존 관찰성 인프라와 통합할 수 있습니다. 기본 제공 Grafana 및 Prometheus 스택을 사용하는 대신 사용자 지정 모니터링 솔루션을 구현하거나 타사 관찰성 플랫폼과 통합하려는 경우이 접근 방식을 사용합니다.
추론 지표 엔드포인트 액세스
알아야 할 사항:
-
추론 지표는 표준화된 Prometheus 엔드포인트에 자동으로 노출됩니다.
-
모델 유형 또는 서비스 프레임워크에 관계없이 지표를 사용할 수 있습니다.
-
데이터 수집에는 표준 Prometheus 스크레이핑 관행이 적용됩니다.
추론 지표 엔드포인트 구성:
-
포트: 9113
-
경로: /metrics
-
전체 엔드포인트: http://pod-ip:9113/metrics
사용 가능한 추론 지표:
-
model_invocations_total
- 모델에 대한 총 호출 요청 수 -
model_errors_total
- 모델 호출 중 총 오류 수 -
model_concurrent_requests
- 모델당 활성 동시 요청 -
model_latency_milliseconds
- 밀리초 단위의 모델 호출 지연 시간 -
model_ttfb_milliseconds
- 밀리초 단위의 첫 번째 바이트 지연 시간 모델링
모델 컨테이너 지표에 액세스
알아야 할 사항:
-
모델 컨테이너는 해당 서비스 프레임워크와 관련된 추가 지표를 노출합니다.
-
이러한 지표는 토큰 처리 및 대기열 깊이와 같은 내부 컨테이너 인사이트를 제공합니다.
-
엔드포인트 구성은 모델 컨테이너 유형에 따라 다릅니다.
텍스트 생성 추론(TGI) 컨테이너를 사용한 JumpStart 모델 배포의 경우:
-
포트: 8080(모델 컨테이너 포트)
-
경로: /metrics
-
설명서: https://huggingface.co/docs/text-generation-inference/en/reference/metrics
대형 모델 추론(LMI) 컨테이너를 사용한 JumpStart 모델 배포의 경우:
-
포트: 8080(모델 컨테이너 포트)
-
경로: /server/metrics
-
설명서: https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md
사용자 지정 추론 엔드포인트(BYOD)의 경우:
-
포트: 고객 구성(기본값은 InferenceEndpointConfig 사양 내의 WorkerConfig.ModelInvocationPort.ContainerPort입니다.)
-
경로: 고객 구성(기본 / 지표)
사용자 지정 관찰성 통합 구현
사용자 지정 관찰성 통합을 사용하면 다음과 같은 책임이 있습니다.
-
지표 스크레이핑: 위의 엔드포인트에서 Prometheus 호환 스크레이핑 구현
-
데이터 내보내기: 선택한 관찰성 플랫폼으로 내보내기 구성
-
알림: 운영 요구 사항에 따라 알림 규칙 설정
-
대시보드: 모니터링 요구 사항에 맞는 시각화 대시보드 생성
추론 관찰성 문제 해결
대시보드에 데이터가 표시되지 않음
Grafana 대시보드가 비어 있고 모든 패널에 "데이터 없음"이 표시되면 다음 단계를 수행하여 조사합니다.
-
관리자에게 추론 관찰성이 설치되어 있는지 확인합니다.
-
HyperPod 콘솔 > 클러스터 선택 > "관찰성" 상태가 "활성화됨"으로 표시되는지 확인으로 이동합니다.
-
클러스터 개요에서 Grafana 워크스페이스 링크에 액세스할 수 있는지 확인
-
Amazon Managed Prometheus 워크스페이스가 구성되고 데이터를 수신하는지 확인
-
-
HyperPod Observability가 활성화되어 있는지 확인합니다.
hyp observability view
-
모델 지표가 활성화되었는지 확인합니다.
kubectl get jumpstartmodel -n <namespace> customer-chat-llama -o jsonpath='{.status.metricsStatus}' # Expected: enabled: true, state:Enabled
kubectl get jumpstartmodel -n <namespace> customer-chat-llama -o jsonpath='{.status.metricsStatus}' # Expected: enabled: true, state:Enabled
-
지표 엔드포인트를 확인합니다.
kubectl port-forward pod/customer-chat-llama-xxx 9113:9113 curl localhost:9113/metrics | grep model_invocations_total# Expected: model_invocations_total{...} metrics
-
로그를 확인합니다.
# Model Container kubectl logs customer-chat-llama-xxx -c customer-chat-llama# Look for: OOM errors, CUDA errors, model loading failures # Proxy/SideCar kubectl logs customer-chat-llama-xxx -c sidecar-reverse-proxy# Look for: DNS resolution issues, upstream connection failures # Metrics Exporter Sidecar kubectl logs customer-chat-llama-xxx -c otel-collector# Look for: Metrics collection issues, export failures
기타 일반적인 문제
문제 | Solution | 작업 |
---|---|---|
추론 관찰성이 설치되지 않음 |
콘솔을 통해 추론 관찰성 설치 |
HyperPod 콘솔에서 "관찰성 활성화" |
모델에서 비활성화된 지표 |
모델 구성 업데이트 |
모델 사양 |
AMP 워크스페이스가 구성되지 않음 |
데이터 소스 연결 수정 |
Grafana 데이터 소스에서 AMP 워크스페이스 ID 확인 |
네트워크 연결 |
보안 그룹/NACLs 확인 |
포드가 AMP 엔드포인트에 도달할 수 있는지 확인 |