Crea un server di tracciamento utilizzando AWS CLI - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea un server di tracciamento utilizzando AWS CLI

Puoi creare un server di tracciamento utilizzando il AWS CLI per una personalizzazione della sicurezza più granulare.

Prerequisiti

Per creare un server di tracciamento utilizzando ilAWS CLI, è necessario disporre di quanto segue:

  • Accesso a un terminale.Ciò può includere un'istanza locale IDEs, un' EC2 istanza Amazon oAWS CloudShell.

  • Accesso a un ambiente di sviluppo. Ciò può includere un ambiente notebook locale IDEs o Jupyter all'interno di Studio o Studio Classic.

  • Un'installazione configurata. AWS CLI Per ulteriori informazioni, consulta Configurazione della AWS CLI

  • Un ruolo IAM con autorizzazioni appropriate. Per le fasi seguenti, è necessario che l’ambiente disponga delle autorizzazioni iam:CreateRole, iam:CreatePolicy, iam:AttachRolePolicy e iam:ListPolicies. Queste autorizzazioni sono richieste dal ruolo utilizzato per eseguire le fasi descritte in questa guida per l’utente. Le istruzioni contenute in questa guida creano un ruolo IAM che viene utilizzato come ruolo di esecuzione del MLflow Tracking Server in modo che possa accedere ai dati nei tuoi bucket Amazon S3. Inoltre, viene creata una policy per concedere al ruolo IAM dell'utente che interagisce con il Tracking Server tramite l' MLflow SDK il permesso di chiamare. MLflow APIs Per ulteriori informazioni, consulta Modifica di una policy di autorizzazioni del ruolo (console).

    Se utilizzi uno SageMaker Studio Notebook, aggiorna il ruolo di servizio per il tuo profilo utente di Studio con queste autorizzazioni IAM. Per aggiornare il ruolo di servizio, accedi alla console SageMaker AI e seleziona il dominio che stai utilizzando. All’interno il dominio, seleziona quindi il profilo utente che stai utilizzando. Qui vedrai il ruolo di servizio elencato. Accedi alla console IAM, cerca il ruolo di servizio in Ruoli e aggiorna il tuo ruolo con una policy che consenta le azioni iam:CreateRole, iam:CreatePolicy, iam:AttachRolePolicy e iam:ListPolicies.

Configura il AWS CLI modello

Segui questi passaggi della riga di comando all'interno di un terminale AWS CLI per configurare Amazon SageMaker AI con MLflow.

  1. Installa una versione aggiornata diAWS CLI. Per ulteriori informazioni, consulta Install or update to the latest version of the AWS CLI nella Guida per l’utente di AWS CLI.

  2. Verificare che AWS CLI sia installato utilizzando il seguente comando:

    aws sagemaker help

    Premi q per uscire dal prompt.

    Per la risoluzione dei problemi, consultare Risoluzione dei problemi di configurazione comuni.

Configurare l' MLflow infrastruttura

La sezione seguente mostra come configurare un server di MLflow tracciamento insieme al bucket Amazon S3 e al ruolo IAM necessari per il server di tracciamento.

Creare un bucket S3

All’interno del tuo terminale, utilizza i seguenti comandi per creare un bucket Amazon S3 generico:

Importante

Quando fornisci l'URI Amazon S3 per il tuo negozio di artefatti, assicurati che il bucket Amazon S3 sia nello stesso del tuo server di tracciamento. Regione AWS L’archiviazione di artefatti tra Regioni non è supportata.

bucket_name=bucket-name region=valid-region aws s3api create-bucket \ --bucket $bucket_name \ --region $region \ --create-bucket-configuration LocationConstraint=$region

L’output visualizzato dovrebbe essere simile al seguente:

{ "Location": "/bucket-name" }

Configurazione di policy di attendibilità IAM

Utilizza le fasi seguenti per creare una policy di attendibilità IAM. Per ulteriori informazioni sui ruoli e sulle policy di attendibilità, consulta Termini e concetti dei ruoli nella Guida per l’utente di AWS Identity and Access Management.

  1. All’interno del terminale, utilizza il comando seguente per creare un file denominato mlflow-trust-policy.json.

    cat <<EOF > /tmp/mlflow-trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] } EOF
  2. All’interno del terminale, utilizza il comando seguente per creare un file denominato custom-policy.json.

    cat <<EOF > /tmp/custom-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:Put*", "sagemaker:AddTags", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:DescribeModelPackageGroup", "sagemaker:UpdateModelPackage", "s3:List*" ], "Resource": "*" } ] } EOF
  3. Utilizza la policy di attendibilità per creare un ruolo. Quindi, collega le policy di ruolo IAM che consentono di accedere MLflow ad Amazon S3 e SageMaker Model Registry all'interno del tuo account. MLflow deve avere accesso ad Amazon S3 per l'archivio degli artefatti del tuo server di tracciamento e al Model Registry per la registrazione automatica dei SageMaker modelli.

    Nota

    Se stai aggiornando un ruolo esistente, utilizza invece il comando aws iam update-assume-role-policy --role-name $role_name --policy-document file:///tmp/mlflow-trust-policy.json.

    role_name=role-name aws iam create-role \ --role-name $role_name \ --assume-role-policy-document file:///tmp/mlflow-trust-policy.json aws iam put-role-policy \ --role-name $role_name \ --policy-name custom-policy \ --policy-document file:///tmp/custom-policy.json role_arn=$(aws iam get-role --role-name $role_name --query 'Role.Arn' --output text)

Crea un server di tracciamento MLflow

All'interno del tuo terminale, utilizza l'create-mlflow-tracking-serverAPI per creare un server Regione AWS di tracciamento a tua scelta. Questa fase può richiedere fino a 25 minuti.

Facoltativamente, puoi specificare la dimensione del server di tracciamento utilizzando il parametro --tracking-server-config. Scegli tra "Small", "Medium" e "Large". La dimensione di configurazione predefinita del MLflow Tracking Server è"Small". È possibile scegliere una dimensione in base all’uso previsto del server di tracciamento, ad esempio il volume di dati registrati, il numero di utenti e la frequenza di utilizzo. Per ulteriori informazioni, consulta MLflow Dimensioni del server di monitoraggio.

Il comando seguente crea un nuovo server di tracciamento con la registrazione automatica dei modelli abilitata. Per disattivare la registrazione automatica dei modelli, specifica --no-automatic-model-registration.

Dopo aver creato il server di tracciamento, puoi avviare l' MLflow interfaccia utente. Per ulteriori informazioni, consulta Avvio dell’interfaccia utente di MLflow mediante un URL prefirmato.

Nota

Per completare la creazione del server di tracciamento potrebbero essere necessari fino a 25 minuti. Se la creazione del server di tracciamento si prolunga per oltre 25 minuti, verifica di disporre delle autorizzazioni IAM necessarie. Per ulteriori informazioni sulle autorizzazioni IAM, consulta Configura le autorizzazioni IAM per MLflow. Quando viene creato correttamente, il server di tracciamento si avvia in modo automatico.

Quando crei un server di tracciamento, ti consigliamo di specificare la versione più recente. Per informazioni sulle versioni disponibili, consulta Versioni del server di tracciamento.

Per impostazione predefinita, il server di tracciamento viene creato con la versione più recente. Tuttavia, consigliamo di specificare sempre la versione più recente in modo esplicito, poiché la versione sottostante MLflow APIs può cambiare.

ts_name=tracking-server-name region=valid-region version=valid-version aws sagemaker create-mlflow-tracking-server \ --tracking-server-name $ts_name \ --artifact-store-uri s3://$bucket_name \ --role-arn $role_arn \ --automatic-model-registration \ --region $region \ --mlflow-version $version

L’output visualizzato dovrebbe essere simile al seguente:

{ "TrackingServerArn": "arn:aws:sagemaker:region:123456789012:mlflow-tracking-server/tracking-server-name" }
Importante

Prendi nota dell’ARN del server di tracciamento che dovrai utilizzare successivamente. Per le fasi di pulizia, ti servirà anche il $bucket_name.