本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 HyperPod 叢集上實作推論可觀測性
Amazon SageMaker HyperPod 提供全面的推論可觀測性功能,可讓資料科學家和機器學習工程師監控和最佳化其部署的模型。此解決方案透過 SageMaker HyperPod 可觀測性啟用,並自動收集推論工作負載的效能指標,透過整合的 Prometheus
使用預設啟用的指標,平台會擷取必要的模型效能資料,包括調用延遲、並行請求、錯誤率和字符層級指標,同時為偏好實作自訂可觀測性解決方案的客戶提供標準 Prometheus 端點。
注意
本主題包含深入了解如何在 HyperPod 叢集上實作推論可觀測性。如需更一般的參考,請參閱 叢集和任務可觀測性。
本指南提供step-by-step說明。 HyperPod 您將了解如何在部署 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
- 部署類型 (jumpstart、inference-endpoint) -
namespace
- 適用於多租用戶的 Kubernetes 命名空間
-
-
模型特性:
-
model_name
- 特定模型識別符 (例如「llama-2-7b-chat」) -
model_version
- A/B 測試和轉返的模型版本 -
model_container_type
- 服務架構 (TGI、LMI、-)
-
-
基礎設施內容:
-
pod_name
- 用於偵錯的個別 Pod 識別符 -
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 使用者介面
-
HyperPod CLI 命令
-
筆記本中的 Python SDK
-
kubectl 搭配 YAML 組態
-
-
存取您的模型指標:
-
開啟 Amazon SageMaker Studio
-
導覽至 HyperPod 叢集並開啟 Grafana 儀表板
-
選取推論儀表板
-
套用篩選條件以檢視您的特定模型部署
-
-
監控關鍵績效指標:
-
追蹤模型延遲和輸送量
-
監控錯誤率和可用性
-
檢閱資源使用率趨勢
-
完成後,您將立即了解模型的效能,而無需額外的組態,以便快速識別部署問題或效能變更。
機器學習工程師 (MLE)
您的責任:維護生產模型效能並解決複雜的效能問題。
您需要知道的事項:
-
進階指標包括模型容器詳細資訊,例如佇列深度和字符指標
-
跨多個指標類型的關聯分析會顯示根本原因
-
在流量激增期間,自動擴展組態會直接影響效能
假設案例:客戶的聊天模型會遇到間歇性慢速回應。使用者抱怨 5-10 秒的延遲。MLE 可以利用推論可觀測性進行系統效能調查。
您需要執行的動作:
-
檢查 Grafana 儀表板以了解效能問題的範圍和嚴重性:
-
自 09:30 起啟用高延遲提醒
-
P99 延遲:8.2 秒 (正常:2.1 秒)
-
受影響的時段:09:30-10:15 (45 分鐘)
-
-
關聯多個指標,以了解事件期間的系統行為:
-
並行請求:拼字至 45 (正常:15-20)
-
Pod 擴展:KEDA 在事件期間擴展 2→5 個 Pod
-
GPU 使用率:保持正常 (85-90%)
-
記憶體用量:正常 (24GB/32GB)
-
-
檢查分散式系統行為,因為基礎設施指標看起來正常:
-
節點層級檢視:所有集中在相同節點上的 Pod (分佈不佳)
-
模型容器指標: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://https://huggingface.co/docs/text-generation-inference/en/reference/metrics
對於使用大型模型推論 (LMI) 容器的 JumpStart 模型部署:
-
連接埠:8080 (模型容器連接埠)
-
路徑:/server/metrics
-
文件:https://https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md
對於自訂推論端點 (BYOD):
-
連接埠:客戶設定 (InferenceEndpointConfig 規格內的 WorkerConfig.ModelInvocationPort.ContainerPort 預設 8080)
-
路徑:客戶設定 (預設 /metrics)
實作自訂可觀測性整合
透過自訂可觀測性整合,您需負責:
-
指標擴展:從上述端點實作與 Prometheus 相容的抓取
-
資料匯出:設定匯出至您選擇的可觀測性平台
-
提醒:根據您的操作需求設定提醒規則
-
儀表板:為您的監控需求建立視覺化儀表板
對推論可觀測性問題進行故障診斷
儀表板未顯示任何資料
如果 Grafana 儀表板是空的,且所有面板都顯示「無資料」,請執行下列步驟來調查:
-
確認管理員已安裝推論可觀測性:
-
導覽至 HyperPod 主控台 > 選取叢集 > 檢查「可觀測性」狀態是否顯示「已啟用」
-
驗證可從叢集概觀存取 Grafana 工作區連結
-
確認已設定 Amazon Managed Prometheus 工作區並接收資料
-
-
確認 HyperPod Observabilty 已啟用:
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
其他常見問題
問題 | 解決方案 | 動作 |
---|---|---|
未安裝推論可觀測性 |
透過主控台安裝推論可觀測性 |
在 HyperPod 主控台中啟用可觀測性 |
模型中停用的指標 |
更新模型組態 |
|
未設定 AMP 工作區 |
修正資料來源連線 |
在 Grafana 資料來源中驗證 AMP 工作區 ID |
網路連線能力 |
檢查安全群組/NACLs |
確保 Pod 可以到達 AMP 端點 |