기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
MLflow를 사용하여 추론 권장 사항 및 벤치마크 결과 추적
Amazon SageMaker AI에서 완전 관리형 MLflow를 사용하여 권장 사항 및 벤치마크 작업의 결과를 추적할 수 있습니다. MLflow 구성을 제공하면 SageMaker AI는 작업이 생성하는 성능 지표와 아티팩트를 MLflow 앱에 기록합니다. 그런 다음 MLflow UI를 사용하여 개별 실행을 보고, 작업 간 구성을 비교하고, 결과를 팀과 공유할 수 있습니다. SageMaker AI의 MLflow에 대한 자세한 내용은 섹션을 참조하세요Amazon SageMaker AI에서 관리형 MLflow를 사용하여 생성형 AI 개발 가속화.
MLflow 추적은 선택 사항입니다. 활성화하려면 작업을 생성할 때 MLflow 앱을 참조하는 MLflow 구성을 제공합니다.
사전 조건
MLflow를 사용하여 결과를 추적하기 전에 권장 사항 또는 벤치마크 작업에 사전 조건 대한 외에 다음이 필요합니다.
-
AWS 리전 작업과 동일한 운영 상태의 MLflow 앱. MLflow 앱 생성에 대한 자세한 내용은 섹션을 참조하세요MLflow 앱 설정.
-
MLflow 앱을 설명하고 MLflow REST API를 호출할 수 있는 권한이 있는 IAM 실행 역할(작업에
RoleArn전달하는 )입니다. APIssagemaker:DescribeMlflowApp작업과 작업이 실행을 로깅하는 데 사용하는sagemaker-mlflow작업을 추가합니다. MLflow 권한에 대한 자세한 내용은 섹션을 참조하세요MLflow 앱 설정.
MLflow 구성 파라미터
결과를 추적하려면 CreateAIRecommendationJob 또는 CreateAIBenchmarkJob 요청OutputConfig의에 MlflowConfig 객체를 추가합니다. MlflowConfig에는 다음 필드가 포함되어 있습니다.
MlflowResourceArn-
필수 사항입니다. 결과를 로깅할 MLflow 앱의 Amazon 리소스 이름(ARN)으로, 형식입니다
arn:aws:sagemaker:.region:account-id:mlflow-app/app-id MlflowExperimentName-
선택 사항. 실행을 로깅할 MLflow 실험의 이름입니다. 실험이 존재하지 않는 경우 SageMaker AI는 실험을 생성합니다. 이미 존재하는 경우 SageMaker AI는 실험을 재사용하므로 동일한 이름을 전달하여 한 실험에서 여러 작업의 실행을 그룹화할 수 있습니다.
MlflowRunName-
선택 사항. 작업 결과가 중첩되는 최상위 MLflow 실행의 이름입니다. 한 번의 최상위 실행으로 여러 작업의 결과를 그룹
MlflowRunName화하려면 각 작업에 동일한 작업을 전달합니다.
각 작업은 최상위 MLflow 실행을 생성하며, 중첩된 하위 실행은 벤치마크 대상 또는 인스턴스 유형, 배포 구성, 동시성 수준과 같은 차원별로 결과를 분류합니다. 이 구조를 사용하면 개별 측정값을 드릴링하고 MLflow UI의 구성을 비교할 수 있습니다.
생성 요청에 MlflowConfig 제공하는는 해당 Describe 응답OutputConfig의에 다시 반영됩니다.
권장 작업 추적
추천 작업을 생성할 OutputConfig 때에 MlflowConfig 객체를 추가합니다.
Python(boto3)
response = client.create_ai_recommendation_job( AIRecommendationJobName="my-recommendation-job", ModelSource={ "S3": { "S3Uri": "s3://DOC-EXAMPLE-BUCKET/models/my-model/", } }, OutputConfig={ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/recommendations/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE", "MlflowExperimentName": "my-recommendation-experiment", "MlflowRunName": "my-recommendation-job-run", }, }, PerformanceTarget={ "Constraints": [ {"Metric": "ttft-ms"} ] }, AIWorkloadConfigIdentifier="my-recommendation-workload", RoleArn="arn:aws:iam::111122223333:role/ExampleRole", ) print(response["AIRecommendationJobArn"])
AWS CLI
aws sagemaker create-ai-recommendation-job \ --ai-recommendation-job-name "my-recommendation-job" \ --model-source '{"S3": {"S3Uri": "s3://DOC-EXAMPLE-BUCKET/models/my-model/"}}' \ --output-config '{ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/recommendations/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE", "MlflowExperimentName": "my-recommendation-experiment", "MlflowRunName": "my-recommendation-job-run" } }' \ --performance-target '{"Constraints": [{"Metric": "ttft-ms"}]}' \ --ai-workload-config-identifier "my-recommendation-workload" \ --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \ --region us-west-2
벤치마크 작업 추적
벤치마크 작업을 생성할 OutputConfig 때에 MlflowConfig 객체를 추가합니다.
Python(boto3)
response = client.create_ai_benchmark_job( AIBenchmarkJobName="my-benchmark-job", BenchmarkTarget={ "Endpoint": { "Identifier": "my-sagemaker-endpoint" } }, OutputConfig={ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE", "MlflowExperimentName": "my-benchmark-experiment", "MlflowRunName": "my-benchmark-job-run", }, }, AIWorkloadConfigIdentifier="my-benchmark-config", RoleArn="arn:aws:iam::111122223333:role/ExampleRole", ) print(response["AIBenchmarkJobArn"])
AWS CLI
aws sagemaker create-ai-benchmark-job \ --ai-benchmark-job-name "my-benchmark-job" \ --benchmark-target '{"Endpoint": {"Identifier": "my-sagemaker-endpoint"}}' \ --output-config '{ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE", "MlflowExperimentName": "my-benchmark-experiment", "MlflowRunName": "my-benchmark-job-run" } }' \ --ai-workload-config-identifier "my-benchmark-config" \ --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \ --region us-west-2
MLflow에서 결과 보기
작업이 Completed 상태에 도달하면 MLflow 앱에서 MLflow UI를 열어 로깅된 실행을 검사합니다. MLflow UI 시작에 대한 자세한 내용은 섹션을 참조하세요미리 서명된 URL을 사용하여 MLflow UI 시작.
실험 페이지에서에 지정한 실험을 선택합니다MlflowExperimentName.
실험의 실행 보기에는 각 인스턴스 유형, 배포 구성 및 동시성 수준에 대한 하위 실행으로 확장되는 작업별 실행이 포함된 최상위 실행이 표시됩니다. 실행을 선택하여 파라미터, 지표 및 아티팩트를 봅니다.