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:
-
Esamina i Prerequisiti per iniziare delle Nozioni di base.
-
Configura il AWS CLI, come specificato inConfigurare il AWS CLI.
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.
-
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-arnarn: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. ARNaws personalize describe-dataset-group \ --dataset-group-arn arn:aws:personalize:us-west-2:
acct-id
:dataset-group/MovieRatingDatasetGroupVengono 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. ARNsaws personalize list-dataset-groups
Nota
I
list-objects
comandidescribe-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. -
Crea un file di schema in JSON formato salvando il codice seguente in un file denominato
MovieRatingSchema.json
. Lo schema corrisponde alle intestazioni precedentemente aggiunte al fileratings.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" }
-
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" }
-
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 alname
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/MovieRatingSchemaIl set di dati ARN viene visualizzato, ad esempio:
{ "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS" }
-
Aggiungere i dati di training al set di dati.
-
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-arnroleArn
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" }
-
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/MovieRatingImportJobVengono 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.
-
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" }
-
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/MovieSolutionVengono 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" } }
-
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 -
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" } }
-
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.
-
È 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.
-
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 1Di seguito è mostrata una risposta di esempio:
{ "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign" }
-
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/MovieRecommendationCampaignDi 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 GetRecommendations
API. 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" }, ... ] }