Démarrer (AWS CLI) - Amazon Personalize

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Démarrer (AWS CLI)

Dans cet exercice, vous allez utiliser le AWS Command Line Interface (AWS CLI) pour découvrir Amazon Personalize. Vous créerez une campagne qui retourne des recommandations de films pour un ID utilisateur donné.

Avant de commencer cet exercice, procédez comme suit :

Lorsque vous avez terminé l'exercice de mise en route, pour éviter d'encourir des frais inutiles, supprimez les ressources que vous avez créées. Pour de plus amples informations, veuillez consulter Conditions requises pour supprimer des ressources Amazon Personalize.

Note

Les AWS CLI commandes de cet exercice ont été testées sous Linux. Pour plus d'informations sur l'utilisation des AWS CLI commandes sous Windows, reportez-vous à la section Spécification des valeurs de paramètres pour le AWS Command Line Interface dans le Guide de AWS Command Line Interface l'utilisateur.

Suivez ces étapes pour créer un groupe d'ensembles de données, ajouter un ensemble de données au groupe, puis remplir l'ensemble de données à l'aide des données de notation des films.

  1. Créez un groupe d'ensembles de données en exécutant la commande suivante. Vous pouvez chiffrer le groupe de jeux de données en transmettant une AWS Key Management Serviceclé ARN et le nom ARN d'un IAM rôle autorisé à accéder à cette clé en tant que paramètres d'entrée. Pour plus d'informations sur leAPI, consultezCreateDatasetGroup.

    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

    Le groupe de jeux de données ARN est affiché, par exemple :

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

    Utilisez la describe-dataset-group commande pour afficher le groupe de jeux de données que vous avez créé, en spécifiant le groupe de jeux de données renvoyéARN.

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

    Le groupe d'ensembles de données et ses propriétés s'affichent, par exemple :

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

    Attendez que le groupe de jeux de données status apparaisse comme ACTIVE avant de créer un ensemble de données dans le groupe. Cette opération est généralement rapide.

    Si vous ne vous souvenez pas du groupe de jeux de donnéesARN, utilisez la list-dataset-groups commande pour afficher tous les groupes de jeux de données que vous avez créés, ainsi que leursARNs.

    aws personalize list-dataset-groups
    Note

    Les list-objects commandes describe-object et sont disponibles pour la plupart des objets Amazon Personalize. Ces commandes n'apparaissent pas dans le reste de cet exercice, mais elles sont disponibles.

  2. Créez un fichier de schéma au JSON format en enregistrant le code suivant dans un fichier nomméMovieRatingSchema.json. Le schéma correspond aux en-têtes que vous avez précédemment ajoutés à ratings.csv. Le nom du schéma estInteractions, qui correspond à l'un des types de jeux de données reconnus par Amazon Personalize. Pour de plus amples informations, veuillez consulter Création de JSON fichiers de schéma pour les schémas 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. Créez un schéma en exécutant la commande suivante. Spécifiez le fichier que vous avez enregistré lors de l'étape précédente. L'exemple montre que le fichier appartient au dossier actif. Pour plus d'informations sur leAPI, consultezCreateSchema.

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

    Le schéma Amazon Resource Name (ARN) s'affiche, par exemple :

    { "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/MovieRatingSchema" }
  4. Créez un ensemble de données vide en exécutant la commande suivante. Indiquez le groupe de jeux de données ARN et ARN le schéma renvoyés lors des étapes précédentes. Le dataset-type doit correspondre au schéma name de l'étape précédente. Pour plus d'informations sur leAPI, consultezCreateDataset.

    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

    Le jeu de données ARN est affiché, par exemple :

    { "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS" }
  5. Ajoutez les données de formation à l'ensemble de données :

    1. Créez une tâche d'importation d'ensembles de données en exécutant la commande suivante. Indiquez le jeu de données ARN et le nom du compartiment Amazon S3 renvoyés lors des étapes précédentes. Indiquez le rôle AWS Identity and Access Management (IAM) dans ARN lequel vous avez crééCréation d'un IAM rôle pour Amazon Personalize. Pour plus d'informations sur leAPI, consultezCreateDatasetImportJob.

      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

      La tâche d'importation du jeu de données ARN s'affiche, par exemple :

      { "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob" }
    2. Vérifiez le statut à l'aide de la commande describe-dataset-import-job. Indiquez la tâche d'importation de ARN l'ensemble de données renvoyée à l'étape précédente. Pour plus d'informations sur leAPI, consultezDescribeDatasetImportJob.

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

      Les propriétés de la tâche d'importation d'ensembles de données et son statut sont affichés. Dans un premier temps, les status émissions sont CREATEPENDING, par exemple :

      { "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'importation du jeu de données est terminée lorsque le statut est indiqué commeACTIVE. Vous êtes alors prêt à former le modèle à l'aide de l'ensemble de données spécifié.

      Note

      L'importation nécessite un certain temps. Attendez que l'importation d'ensembles de données soit terminée avant de former le modèle à l'aide de l'ensemble de données.

Pour entraîner un modèle, vous créez la configuration pour entraîner le modèle à l'aide de l'CreateSolutionopération et vous laissez l'entraînement automatique activé. La solution commence automatiquement à entraîner la première solution en moins d'une heure.

Vous entraînez un modèle à l'aide d'une recette et de vos données d'entraînement. Amazon Personalize propose un ensemble de recettes prédéfinies. Pour de plus amples informations, veuillez consulter Choisir une recette. Pour cet exercice, vous allez utiliser la recette User-Personalization-v2.

  1. Créez la configuration pour la formation d'un modèle en exécutant la commande suivante. Cette commande crée une solution qui utilise l'entraînement automatique. Il crée automatiquement une nouvelle version de solution tous les sept jours (par défaut).

    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)\"}}"

    La solution ARN s'affiche, par exemple :

    { "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution" }
  2. Vérifiez le statut de création à l'aide de la commande describe-solution. Fournissez ARN la solution renvoyée à l'étape précédente. Pour plus d'informations sur leAPI, consultezDescribeSolution.

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

    Les propriétés de la solution et du status de création sont affichées. Par exemple :

    { "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. Avec la formation automatique, la formation sur les versions de la solution commence une fois que la solution est làACTIVE. Après le début de la formation, vous pouvez obtenir le nom de ressource Amazon (ARN) de la version de la solution à l'aide de la ListSolutionVersionscommande suivante :

    aws personalize list-solution-versions --solution-arn arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution
  4. Vérifiez le statut de formation de la version de solution à l'aide de la commande describe-solution-version. Indiquez la version de ARN la solution renvoyée à l'étape précédente. Pour plus d'informations sur leAPI, consultezDescribeSolutionVersion.

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

    Les propriétés de la version de solution et le status de formation sont affichés. Au départ, le statut s'affiche comme CREATE PENDING suit, par exemple :

    { "solutionVersion": { "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", ..., "status": "CREATE PENDING" } }
  5. Lorsque la version de la solution status est ACTIVE disponible, la formation est terminée.

    Vous pouvez désormais consulter les indicateurs de formation et créer une campagne à l'aide de la version de la solution.

    Note

    La formation nécessite un certain temps. Attendez que la formation soit terminée (le statut de formation de la version de la solution apparaît commeACTIVE) avant d'utiliser cette version de la solution dans une campagne.

  6. Vous pouvez valider les performances de la version de solutions en passant en revue ses métriques. Obtenez les métriques de la version de solutions en exécutant la commande suivante. Indiquez la version ARN de solution renvoyée précédemment. Pour plus d'informations sur leAPI, consultezGetSolutionMetrics.

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

    Voici un exemple de réponse :

    { "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 } }

Avant de pouvoir obtenir des recommandations, vous devez déployer une version de solution. Le déploiement d'une solution est également appelé la création d'une campagne. Une fois que vous avez créé votre campagne, votre application client peut obtenir des recommandations à l'aide du GetRecommendationsAPI.

  1. Créez une campagne en exécutant la commande suivante. Indiquez la version de ARN la solution renvoyée à l'étape précédente. Pour plus d'informations sur leAPI, consultezCreateCampaign.

    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

    Voici un exemple de réponse :

    { "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign" }
  2. Vérifiez le statut de déploiement en exécutant la commande suivante. Indiquez la campagne ARN renvoyée à l'étape précédente. Pour plus d'informations sur leAPI, consultezDescribeCampaign.

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

    Voici un exemple de réponse :

    { "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" } }
    Note

    Attendez les status émissions comme ACTIVE avant de recevoir les recommandations de la campagne.

Obtenez des recommandations en exécutant la commande get-recommendations. Indiquez la campagne ARN renvoyée à l'étape précédente. Dans la requête, spécifiez un ID utilisateur à partir de l'ensemble de données de notation des films. Pour plus d'informations sur leAPI, consultezGetRecommendations.

Note

Toutes les recettes ne supportent pas le GetRecommendationsAPI. Pour de plus amples informations, veuillez consulter Choisir une recette.

La AWS CLI commande que vous appelez à cette étape est différente de celle des étapes précédentes. personalize-runtime

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

En réponse, la campagne renvoie une liste de recommandations d'articles (filmsIDs) susceptibles d'intéresser l'utilisateur. La liste est triée par ordre décroissant de pertinence pour l'utilisateur.

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