Nozioni di base (AWS CLI) - Amazon Personalize

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à.

Nozioni di base (AWS CLI)

In questo esercizio, usi il AWS Command Line Interface (AWS CLI) per esplorare Amazon Personalize. Prevede la creazione di una campagna che restituisce i film raccomandati per un determinato ID utente.

Prima di iniziare l'esercitazione, effettua le seguenti operazioni:

Al termine dell'esercizio introduttivo, per evitare di incorrere in addebiti inutili, elimina le risorse che hai creato. Per ulteriori informazioni, consulta Requisiti per l'eliminazione delle risorse Amazon Personalize.

Nota

I AWS CLI comandi di questo esercizio sono stati testati su Linux. Per informazioni sull'utilizzo dei AWS CLI comandi in Windows, vedere Specificazione dei valori dei parametri per la AWS Command Line Interface nella Guida per l'AWS Command Line Interface utente.

Seguire la procedura per creare un gruppo di set di dati, aggiungere un set di dati al gruppo e quindi popolare il set di dati utilizzando il dati delle valutazioni dei film.

  1. Creare un gruppo di set di dati eseguendo il seguente comando. È possibile crittografare il gruppo di set di dati passando una AWS Key Management Servicechiave ARN e il nome ARN di un IAM ruolo che dispone delle autorizzazioni di accesso a tale chiave come parametri di input. Per ulteriori informazioni su, vedere. API CreateDatasetGroup

    aws personalize create-dataset-group --name MovieRatingDatasetGroup --kms-key-arn arn:aws:kms:us-west-2:01234567890:key/1682a1e7-a94d-4d92-bbdf-837d3b62315e --role-arn arn:aws:iam::01234567890:KMS-key-access

    Viene visualizzato il gruppo di set ARN di dati, ad esempio:

    { "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup" }

    Utilizzate il describe-dataset-group comando per visualizzare il gruppo di set di dati creato, specificando il gruppo di set di dati restituito. ARN

    aws personalize describe-dataset-group \ --dataset-group-arn arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup

    Vengono visualizzati il gruppo di set di dati e le relative proprietà, ad esempio:

    { "datasetGroup": { "name": "MovieRatingDatasetGroup", "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup", "status": "ACTIVE", "creationDateTime": 1542392161.262, "lastUpdatedDateTime": 1542396513.377 } }
    Nota

    Attendi che venga status visualizzato il gruppo di set di dati, come ACTIVE prima di creare un set di dati nel gruppo. Questa operazione è in genere rapida.

    Se non ricordi il gruppo di set di datiARN, usa il list-dataset-groups comando per visualizzare tutti i gruppi di set di dati che hai creato, insieme ai relativi. ARNs

    aws personalize list-dataset-groups
    Nota

    I list-objects comandi describe-object and sono disponibili per la maggior parte degli oggetti Amazon Personalize. Questi comandi non sono mostrati nel prosieguo di questa esercitazione, ma sono disponibili.

  2. Crea un file di schema in JSON formato salvando il codice seguente in un file denominatoMovieRatingSchema.json. Lo schema corrisponde alle intestazioni precedentemente aggiunte al file ratings.csv. Il nome dello schema èInteractions, che corrisponde a uno dei tipi di set di dati riconosciuti da Amazon Personalize. Per ulteriori informazioni, consulta Creazione di JSON file di schema per schemi Amazon Personalize.

    { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" }
  3. Creare uno schema eseguendo il seguente comando. Specificare il file salvato nel passaggio precedente. L'esempio illustra il file come appartenente alla cartella corrente. Per ulteriori informazioni suAPI, consulta. CreateSchema

    aws personalize create-schema \ --name MovieRatingSchema \ --schema file://MovieRatingSchema.json

    Viene visualizzato lo schema Amazon Resource Name (ARN), ad esempio:

    { "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/MovieRatingSchema" }
  4. Creare un gruppo di set di dati vuoto eseguendo il seguente comando. Fornisci il gruppo di set di dati ARN e ARN lo schema restituiti nei passaggi precedenti. Il dataset-type deve corrispondere al name dello schema del passaggio precedente. Per ulteriori informazioni suAPI, vedereCreateDataset.

    aws personalize create-dataset \ --name MovieRatingDataset \ --dataset-group-arn arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup \ --dataset-type Interactions \ --schema-arn arn:aws:personalize:us-west-2:acct-id:schema/MovieRatingSchema

    Il set di dati ARN viene visualizzato, ad esempio:

    { "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS" }
  5. Aggiungere i dati di training al set di dati.

    1. Creare un processo di importazione del set di dati eseguendo il seguente comando. Fornisci il set di dati ARN e il nome del bucket Amazon S3 restituiti nei passaggi precedenti. Fornisci il ruolo AWS Identity and Access Management (IAM) in ARN cui hai creato. Creare un IAM ruolo per Amazon Personalize Per ulteriori informazioni suAPI, vedereCreateDatasetImportJob.

      aws personalize create-dataset-import-job \ --job-name MovieRatingImportJob \ --dataset-arn arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS \ --data-source dataLocation=s3://amzn-s3-demo-bucket/ratings.csv \ --role-arn roleArn

      Viene visualizzato il processo ARN di importazione del set di dati, ad esempio:

      { "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob" }
    2. Verificare lo stato utilizzando il comando describe-dataset-import-job. Fornisci il processo di importazione del set ARN di dati restituito nel passaggio precedente. Per ulteriori informazioni suAPI, vedereDescribeDatasetImportJob.

      aws personalize describe-dataset-import-job \ --dataset-import-job-arn arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob

      Vengono visualizzate le proprietà del processo di importazione del set di dati, incluso lo stato. Inizialmente, status vengono mostrati CREATEPENDING, ad esempio:

      { "datasetImportJob": { "jobName": "MovieRatingImportJob", "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob", "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS", "dataSource": { "dataLocation": "s3://amzn-s3-demo-bucket/ratings.csv" }, "roleArn": "role-arn", "status": "CREATE PENDING", "creationDateTime": 1542392161.837, "lastUpdatedDateTime": 1542393013.377 } }

      L'importazione del set di dati è completa quando lo stato viene visualizzato comeACTIVE. A questo punto è possibile addestrare il modello utilizzando il set di dati specificato.

      Nota

      L'attività di importazione richiede del tempo. Prima di addestrare il modello con il set di dati, attendere il completamento dell'importazione del set di dati.

Per addestrare un modello, si crea la configurazione per l'addestramento del modello utilizzando l'CreateSolutionoperazione e si lascia attivo l'addestramento automatico. La soluzione avvia automaticamente l'addestramento della prima soluzione entro un'ora.

Si addestra un modello utilizzando una ricetta e i dati di allenamento. Amazon Personalize fornisce una serie di ricette predefinite. Per ulteriori informazioni, consulta Scegliere una ricetta. Per questo esercizio, usi la ricetta User-Personalization-v2.

  1. Creare la configurazione per l'addestramento di un modello eseguendo il seguente comando. Questo comando crea una soluzione che utilizza l'addestramento automatico. Crea automaticamente una nuova versione della soluzione ogni sette giorni (impostazione predefinita).

    aws personalize create-solution \ --name MovieSolution \ --dataset-group-arn arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup \ --recipe-arn arn:aws:personalize:::recipe/aws-user-personalization-v2 \ --perform-auto-training \ --solution-config "{\"autoTrainingConfig\": {\"schedulingExpression\": \"rate(7 days)\"}}"

    ARNViene visualizzata la soluzione, ad esempio:

    { "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution" }
  2. Verificare lo stato della creazione utilizzando il comando describe-solution. Fornisci ARN la soluzione restituita nel passaggio precedente. Per ulteriori informazioni suAPI, vedereDescribeSolution.

    aws personalize describe-solution \ --solution-arn arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution

    Vengono visualizzati le proprietà della soluzione e lo status di creazione. Per esempio:

    { "solution": { "name": "MovieSolution", "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution", "performHPO": false, "performAutoML": false, "recipeArn": "arn:aws:personalize:::recipe/aws-user-personalization-v2", "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup", "solutionConfig": { "algorithmHyperParameters": { "apply_recency_bias": "true" }, "featureTransformationParameters": {}, "autoTrainingConfig": { "schedulingExpression": "rate(7 days)" } }, "status": "ACTIVE", "creationDateTime": "2021-05-12T16:27:59.819000-07:00", "lastUpdatedDateTime": "2021-05-12T16:27:59.819000-07:00" } }
  3. Con la formazione automatica, la formazione sulla versione della soluzione inizia subito dopo la presentazione della soluzioneACTIVE. Dopo l'inizio della formazione, puoi ottenere Amazon Resource Name (ARN) della versione della soluzione con il seguente ListSolutionVersionscomando:

    aws personalize list-solution-versions --solution-arn arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution
  4. Verificare lo stato dell'addestramento della versione della soluzione usando il comando describe-solution-version. Fornisci la versione ARN della soluzione restituita nel passaggio precedente. Per ulteriori informazioni suAPI, vedereDescribeSolutionVersion.

    aws personalize describe-solution-version \ --solution-version-arn arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/version-id

    Vengono visualizzate le proprietà della versione della soluzione e lo status dell'addestramento. Inizialmente, lo stato appare come CREATEPENDING, ad esempio:

    { "solutionVersion": { "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", ..., "status": "CREATE PENDING" } }
  5. Quando la versione della soluzione status è disponibileACTIVE, la formazione è completa.

    Ora puoi rivedere le metriche di formazione e creare una campagna utilizzando la versione della soluzione.

    Nota

    L'attività di addestramento richiede del tempo. Attendi il completamento della formazione (lo stato della formazione della versione della soluzione è indicato comeACTIVE) prima di utilizzare questa versione della soluzione in una campagna.

  6. È possibile convalidare le prestazioni della versione della soluzione riesaminando i parametri. Ottenere i parametri della versione della soluzione eseguendo il seguente comando. Fornisci la versione ARN della soluzione restituita in precedenza. Per ulteriori informazioni suAPI, vedereGetSolutionMetrics.

    aws personalize get-solution-metrics \ --solution-version-arn arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/version-id

    Di seguito è mostrata una risposta di esempio:

    { "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/www-solution/<version-id>", "metrics": { "coverage": 0.0485, "mean_reciprocal_rank_at_25": 0.0381, "normalized_discounted_cumulative_gain_at_10": 0.0363, "normalized_discounted_cumulative_gain_at_25": 0.0984, "normalized_discounted_cumulative_gain_at_5": 0.0175, "precision_at_10": 0.0107, "precision_at_25": 0.0207, "precision_at_5": 0.0107 } }

Prima di ricevere consigli, è necessario distribuire una versione della soluzione. La distribuzione di una soluzione è nota anche come creazione di una campagna. Dopo aver creato la campagna, l'applicazione client può ricevere consigli utilizzando il GetRecommendationsAPI.

  1. Creare una campagna eseguendo il seguente comando. Fornisci la versione ARN della soluzione restituita nel passaggio precedente. Per ulteriori informazioni suAPI, vedereCreateCampaign.

    aws personalize create-campaign \ --name MovieRecommendationCampaign \ --solution-version-arn arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/version-id \ --min-provisioned-tps 1

    Di seguito è mostrata una risposta di esempio:

    { "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign" }
  2. Verificare lo stato della distribuzione eseguendo il seguente comando. Fornisci ARN la campagna restituita nel passaggio precedente. Per ulteriori informazioni suAPI, consultaDescribeCampaign.

    aws personalize describe-campaign \ --campaign-arn arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign

    Di seguito è mostrata una risposta di esempio:

    { "campaign": { "name": "MovieRecommendationCampaign", "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign", "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", "minProvisionedTPS": "1", "creationDateTime": 1543864775.923, "lastUpdatedDateTime": 1543864791.923, "status": "CREATE IN_PROGRESS" } }
    Nota

    Attendi gli status spettacoli, come ACTIVE prima di ricevere consigli dalla campagna.

È possibile ottenere raccomandazioni eseguendo il comando get-recommendations. Fornisci ARN la campagna restituita nel passaggio precedente. Nella richiesta, è necessario specificare un ID utente dal set di dati delle valutazioni dei film. Per ulteriori informazioni suAPI, consultaGetRecommendations.

Nota

Non tutte le ricette supportano il GetRecommendationsAPI. Per ulteriori informazioni, consulta Scegliere una ricetta.

Il AWS CLI comando richiamato in questo passaggio è diverso rispetto ai passaggi precedenti. personalize-runtime

aws personalize-runtime get-recommendations \ --campaign-arn arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign \ --user-id 123

In risposta, la campagna restituisce un elenco di articoli consigliati (filmIDs) che potrebbero interessare all'utente. L'elenco è ordinato in ordine decrescente di rilevanza per l'utente.

{ "itemList": [ { "itemId": "14" }, { "itemId": "15" }, { "itemId": "275" }, { "itemId": "283" }, { "itemId": "273" }, ... ] }