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.
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 :
-
Consultez les Conditions préalables pour démarrer de démarrage.
-
Configurez le AWS CLI, comme indiqué dansConfiguration du AWS CLI.
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.
-
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 un ARN AWS Key Management Serviceclé et l'ARN d'un rôle IAM autorisé à accéder à cette clé en tant que paramètres d'entrée. Pour plus d’informations sur l’API, consultez 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
L'ARN du groupe d'ensembles de données est affiché, par exemple :
{ "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup" }
Utilisez la commande
describe-dataset-group
pour afficher le groupe d'ensembles de données que vous avez créé en spécifiant l'ARN du groupe d'ensembles de données renvoyé.aws personalize describe-dataset-group \ --dataset-group-arn arn:aws:personalize:us-west-2:
acct-id
:dataset-group/MovieRatingDatasetGroupLe 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
status
du groupe d'ensembles de données apparaisse comme ACTIVE (ACTIF) 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 de l'ARN du groupe de jeux de données, utilisez la
list-dataset-groups
commande pour afficher tous les groupes de jeux de données que vous avez créés, ainsi que leurs ARNs.aws personalize list-dataset-groups
Note
Les
list-objects
commandesdescribe-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. -
Créez un fichier de schéma au format JSON 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 fichiers JSON 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" }
-
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 l’API, consultez CreateSchema.
aws personalize create-schema \ --name MovieRatingSchema \ --schema file://MovieRatingSchema.json
Le nom Amazon Resource Name (ARN) du schéma est affiché, par exemple :
{ "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/MovieRatingSchema" }
-
Créez un ensemble de données vide en exécutant la commande suivante. Fournissez l'ARN du groupe d'ensembles de données et l'ARN du schéma qui ont été retournés lors des étapes précédentes. Le
dataset-type
doit correspondre au schémaname
de l'étape précédente. Pour plus d’informations sur l’API, consultez CreateDataset.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/MovieRatingSchemaL'ARN de l'ensemble de données est affiché, par exemple :
{ "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS" }
-
Ajoutez les données de formation à l'ensemble de données :
-
Créez une tâche d'importation d'ensembles de données en exécutant la commande suivante. Indiquez l'ARN du jeu de données et le nom du compartiment Amazon S3 renvoyés lors des étapes précédentes. Indiquez l'ARN du rôle AWS Identity and Access Management (IAM) dans lequel vous l'avez créé. Création d'un rôle IAM pour Amazon Personalize Pour plus d’informations sur l’API, consultez CreateDatasetImportJob.
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
L'ARN de la tâche d'importation d'ensembles de données est affiché, par exemple :
{ "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob" }
-
Vérifiez le statut à l'aide de la commande
describe-dataset-import-job
. Fournissez l'ARN de la tâche d'importation d'ensembles de données qui a été retourné lors de l'étape précédente. Pour plus d’informations sur l’API, consultez DescribeDatasetImportJob.aws personalize describe-dataset-import-job \ --dataset-import-job-arn arn:aws:personalize:us-west-2:
acct-id
:dataset-import-job/MovieRatingImportJobLes propriétés de la tâche d'importation d'ensembles de données et son statut sont affichés. Initialement, le
status
indique CREATE PENDING (CRÉATION EN ATTENTE), 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 d'ensembles de données est terminée quand le statut ACTIVE (ACTIF) apparaît. 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 utilisez la recette User-Personalization-v 2.
-
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)\"}}"L'ARN de la solution est affiché, par exemple :
{ "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution" }
-
Vérifiez le statut de création à l'aide de la commande
describe-solution
. Fournissez l'ARN de la solution qui a été retourné lors de l'étape précédente. Pour plus d’informations sur l’API, consultez DescribeSolution.aws personalize describe-solution \ --solution-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolutionLes 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" } }
-
Avec l'entraînement automatique, l'entraînement à la version de la solution commence une fois que la solution est 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 -
Vérifiez le statut de formation de la version de solution à l'aide de la commande
describe-solution-version
. Fournissez l'ARN de la version de solution qui a été renvoyé lors de l'étape précédente. Pour plus d’informations sur l’API, consultez DescribeSolutionVersion.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. Initialement, le statut indique CREATE PENDING (CRÉATION EN ATTENTE), par exemple :{ "solutionVersion": { "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", ..., "status": "CREATE PENDING" } }
-
Lorsque la version de la solution
status
est ACTIVE, 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 indique ACTIVE (ACTIF)) avant d'utiliser cette version de la solution dans une campagne.
-
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. Fournissez l'ARN de la version de solution qui a été renvoyée précédemment. Pour plus d’informations sur l’API, consultez GetSolutionMetrics.
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 l'API GetRecommendations.
-
Créez une campagne en exécutant la commande suivante. Fournissez l'ARN de la version de solution qui a été renvoyé lors de l'étape précédente. Pour plus d’informations sur l’API, consultez CreateCampaign.
aws personalize create-campaign \ --name MovieRecommendationCampaign \ --solution-version-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolution/version-id
\ --min-provisioned-tps 1Voici un exemple de réponse :
{ "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign" }
-
Vérifiez le statut de déploiement en exécutant la commande suivante. Fournissez l'ARN de la campagne qui a été retourné lors de l'étape précédente. Pour plus d’informations sur l’API, consultez DescribeCampaign.
aws personalize describe-campaign \ --campaign-arn arn:aws:personalize:us-west-2:
acct-id
:campaign/MovieRecommendationCampaignVoici 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 que le
status
apparaisse comme ACTIVE (ACTIF) avant d'obtenir des recommandations à partir de la campagne.
Obtenez des recommandations en exécutant la commande get-recommendations
. Fournissez l'ARN de la campagne qui a été retourné lors de 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 l’API, consultez GetRecommendations.
Note
Toutes les recettes ne prennent pas en charge l'API GetRecommendations
. 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 (films IDs) 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"
},
...
]
}