

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)
<a name="getting-started-cli"></a>

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](gs-prerequisites.md) de démarrage.
+ Configurez le AWS CLI, comme indiqué dans[Configuration du AWS CLI](aws-personalize-set-up-aws-cli.md).

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](deleting-resources.md). 

**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](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html) dans le *Guide de AWS Command Line Interface l'utilisateur*.

## Étape 1 : Importer les données d'entraînement
<a name="gs-create-ds"></a>

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 un ARN [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)clé 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](API_CreateDatasetGroup.md).

   ```
   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
   ```

   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/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 `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` 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.

1. 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 est`Interactions`, 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](how-it-works-dataset-schema.md).

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

1. 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](API_CreateSchema.md).

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

1. 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éma `name` de l'étape précédente. Pour plus d’informations sur l’API, consultez [CreateDataset](API_CreateDataset.md).

   ```
   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
   ```

   L'ARN de l'ensemble de données est affiché, par exemple :

   ```
   {
     "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS"
   }
   ```

1. 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 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 Gestion des identités et des accès AWS (IAM) dans lequel vous l'avez créé. [Création d'un rôle IAM pour Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions) Pour plus d’informations sur l’API, consultez [CreateDatasetImportJob](API_CreateDatasetImportJob.md).

      ```
      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
      ```

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

   1. 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](API_DescribeDatasetImportJob.md).

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

## Étape 2 : créer une solution (entraîner le modèle)
<a name="gs-create-solution"></a>

Pour entraîner un modèle, vous créez la configuration pour entraîner le modèle à l'aide de l'[CreateSolution](API_CreateSolution.md)opé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](working-with-predefined-recipes.md). Pour cet exercice, vous utilisez la recette User-Personalization-v 2.

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

   L'ARN de la solution est affiché, par exemple :

   ```
   {
     "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution"
   }
   ```

1. 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](API_DescribeSolution.md).

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

1.  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 [ListSolutionVersions](https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutionVersions.html)commande suivante : 

   ```
   aws personalize list-solution-versions --solution-arn arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution
   ```

1. 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](API_DescribeSolutionVersion.md).

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

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

1. 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](API_GetSolutionMetrics.md).

   ```
   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
       }
   }
   ```

## Étape 3 : Création d'une campagne (déploiement de la solution)
<a name="gs-create-campaign"></a>

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](API_RS_GetRecommendations.md).

1. 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](API_CreateCampaign.md).

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

1. 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](API_DescribeCampaign.md).

   ```
   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 que le `status` apparaisse comme ACTIVE (ACTIF) avant d'obtenir des recommandations à partir de la campagne.

## Étape 4 : Obtenir des recommandations
<a name="gs-test"></a>

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](API_RS_GetRecommendations.md).

**Note**  
Toutes les recettes ne prennent pas en charge l'API `GetRecommendations`. Pour de plus amples informations, veuillez consulter [Choisir une recette](working-with-predefined-recipes.md).  
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"
      },
      ...
  ]
}
```