View a markdown version of this page

Verfolgen Sie Inferenzempfehlungen und Benchmark-Ergebnisse mit MLflow - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verfolgen Sie Inferenzempfehlungen und Benchmark-Ergebnisse mit MLflow

Sie können die Ergebnisse Ihrer Empfehlungen und Benchmark-Jobs mit vollständig verwaltetem MLflow auf Amazon SageMaker AI verfolgen. Wenn Sie eine MLflow-Konfiguration angeben, protokolliert SageMaker KI die Leistungskennzahlen und Artefakte, die der Job erzeugt, in einer MLflow-App. Sie können dann die MLflow-Benutzeroberfläche verwenden, um einzelne Läufe anzuzeigen, Konfigurationen zwischen Jobs zu vergleichen und Ergebnisse mit Ihrem Team zu teilen. Weitere Informationen zu MLflow on SageMaker AI finden Sie unter. Beschleunigen Sie die generative KI-Entwicklung mit verwaltetem MLflow auf Amazon SageMaker AI

MLFlow-Tracking ist optional. Um es zu aktivieren, geben Sie bei der Erstellung des Jobs eine MLflow-Konfiguration an, die auf eine MLFlow-App verweist.

Voraussetzungen

Bevor Sie Ergebnisse mit MLflow verfolgen können, benötigen Sie zusätzlich zu dem Voraussetzungen für einen Empfehlungs- oder Benchmark-Job Folgendes:

  • Eine MLflow App in einem betriebsbereiten Zustand, genauso AWS-Region wie Ihr Job. Informationen zum Erstellen einer MLflow App finden Sie unter. Einrichtung der MLflow App

  • Eine IAM-Ausführungsrolle (dieRoleArn, die Sie an den Job übergeben) mit der Berechtigung, die MLflow App zu beschreiben und die MLflow REST-APIs aufzurufen. Fügen Sie die sagemaker:DescribeMlflowApp Aktion und die sagemaker-mlflow Aktionen hinzu, die der Job verwendet, um Läufe zu protokollieren. Weitere Informationen zu MLflow-Berechtigungen finden Sie unterEinrichtung der MLflow App.

MLflow-Konfigurationsparameter

Um die Ergebnisse zu verfolgen, fügen Sie ein MlflowConfig Objekt zu OutputConfig Ihrer CreateAIRecommendationJob CreateAIBenchmarkJob Anfrage hinzu. MlflowConfigenthält die folgenden Felder:

MlflowResourceArn

Erforderlich Der Amazon-Ressourcenname (ARN) der MLflow App, in der Ergebnisse protokolliert werden sollen, im Formatarn:aws:sagemaker:region:account-id:mlflow-app/app-id.

MlflowExperimentName

Optional. Der Name des MLflow-Experiments, unter dem der Lauf protokolliert werden soll. Wenn das Experiment nicht existiert, wird es von SageMaker KI erstellt. Wenn es bereits existiert, verwendet SageMaker KI es erneut, sodass Sie Läufe von mehreren Jobs unter einem Experiment gruppieren können, indem Sie denselben Namen angeben.

MlflowRunName

Optional. Der Name des MLflow-Laufs der obersten Ebene, unter dem die Ergebnisse des Jobs verschachtelt sind. Um die Ergebnisse mehrerer Jobs in einer Ausführung der obersten Ebene zu gruppieren, übergeben Sie sie an jeden Job. MlflowRunName

Jeder Job erstellt einen MLFlow-Lauf der obersten Ebene mit verschachtelten untergeordneten Läufen, die die Ergebnisse nach Dimensionen wie Benchmark-Ziel oder Instance-Typ, Bereitstellungskonfiguration und Parallelitätsebene aufschlüsseln. Mit dieser Struktur können Sie einzelne Messungen detailliert untersuchen und Konfigurationen in der MLflow-Benutzeroberfläche vergleichen.

Was MlflowConfig Sie in der Erstellungsanfrage angeben, wird in OutputConfig der entsprechenden Describe Antwort wiedergegeben.

Verfolgen Sie einen Empfehlungsjob

Fügen Sie das MlflowConfig Objekt hinzuOutputConfig, wenn Sie einen Empfehlungsjob erstellen.

Python (Teil 3)

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

Verfolge einen Benchmark-Job

Fügen Sie das MlflowConfig Objekt hinzu, OutputConfig wenn Sie einen Benchmark-Job erstellen.

Python (Teil 3)

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

Ergebnisse in MLflow anzeigen

Nachdem der Job den Completed Status erreicht hat, öffnen Sie die MLflow-Benutzeroberfläche in der MLflow App, um die protokollierten Läufe zu überprüfen. Weitere Informationen zum Starten der MLflow-Benutzeroberfläche finden Sie unter. Starten der MLflow-Benutzeroberfläche mit vorsignierter URL

Wählen Sie auf der Seite Experimente das Experiment aus, das Sie in MlflowExperimentName angegeben haben.

Die Seite MLflow UI Experiments zeigt eine Liste von Experimenten mit ihren Namen und Erstellungszeiten.

Die Ansicht „Runs“ des Experiments zeigt eine Ausführung auf oberster Ebene, die einen Lauf pro Job enthält, der sich auf untergeordnete Läufe für jeden Instanztyp, jede Bereitstellungskonfiguration und jede Parallelitätsebene erstreckt. Wählen Sie einen Lauf aus, um seine Parameter, Metriken und Artefakte anzuzeigen.

Die Ansicht MLflow UI Runs zeigt eine Ausführung auf oberster Ebene, die zu verschachtelten untergeordneten Läufen für die Stufen pro Job, Instanztyp, Image-Typ und Parallelität erweitert wird.