Erste Schritte (AWS CLI) - Amazon Personalize

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte (AWS CLI)

In dieser Übung verwenden Sie AWS Command Line Interface (AWS CLI), um Amazon Personalize zu erkunden. Sie erstellen eine Kampagne, die Filmempfehlungen für eine bestimmte Benutzer-ID zurückgibt.

Führen Sie die folgenden Schritte durch, bevor Sie mit dieser Übung beginnen:

Wenn Sie mit der Übung Erste Schritte fertig sind, folgen Sie den Schritten unter Löschen der von Ihnen erstellten Ressourcen, Bereinigen von Ressourcen um unnötige Kosten zu vermeiden.

Anmerkung

Die AWS CLI Befehle in dieser Übung wurden unter Linux getestet. Informationen zur Verwendung der AWS CLI Befehle unter Windows finden Sie AWS Command Line Interface im AWS Command Line InterfaceBenutzerhandbuch unter Angeben von Parameterwerten für.

Befolgen Sie die Schritte zum Erstellen einer Dataset-Gruppe, fügen Sie ein Dataset zur Gruppe hinzu und aktualisieren Sie das Dataset dann mit den Filmbewertungsdaten.

  1. Sie erstellen eine Dataset-Gruppe, indem Sie den folgenden Befehl ausführen. Sie können die Datensatzgruppe verschlüsseln, indem Sie einen AWS Key Management ServiceSchlüssel-ARN und den ARN einer IAM-Rolle, die über Zugriffsberechtigungen für diesen Schlüssel verfügt, als Eingabeparameter übergeben. Weitere Informationen zur API finden Sie unter 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

    Der Dataset-Gruppen-ARN wird angezeigt, zum Beispiel:

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

    Zeigen Sie die von Ihnen erstellte Dataset-Gruppe mit dem Befehl describe-dataset-group an, indem Sie den zurückgegebenen Dataset-Gruppen-ARN angeben.

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

    Die Dataset-Gruppe und ihre Eigenschaften werden angezeigt, z. B.:

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

    Warten Sie, bis für den status der Dataset-Gruppe ACTIVE angezeigt wird, bevor Sie ein Dataset in der Gruppe erstellen. Diese Operation läuft in der Regel schnell ab.

    Wenn Sie den ARN der Dataset-Gruppe vergessen haben, verwenden Sie den Befehl list-dataset-groups, um alle von Ihnen erstellten Dataset-Gruppen zusammen mit ihren ARNs anzuzeigen.

    aws personalize list-dataset-groups
    Anmerkung

    Die list-objects Befehle describe-object und sind für die meisten Amazon Personalize verfügbar. Diese Befehle werden im weiteren Verlauf dieser Übung nicht angezeigt, stehen aber zur Verfügung.

  2. Erstellen Sie eine Schemadatei im JSON-Format, indem Sie den folgenden Code in einer Datei mit dem Namen MovieRatingSchema.json speichern. Das Schema stimmt mit den Überschriften überein, die Sie ratings.csv vorher hinzugefügt haben. Der Schemaname lautetInteractions, was einem der von Amazon Personalize erkannten Datensatztypen entspricht. Weitere Informationen finden Sie unter Schemata.

    { "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. Erstellen Sie ein Schema, indem Sie den folgenden Befehl ausführen. Geben Sie die im vorherigen Schritt gespeicherte Datei an. Das Beispiel zeigt die Datei als Teil des aktuellen Ordners. Weitere Informationen zur API finden Sie unter CreateSchema.

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

    Der Amazon-Ressourcenname (ARN) des Schemas wird angezeigt, z. B.:

    { "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/MovieRatingSchema" }
  4. Erstellen Sie ein leeres Dataset, indem Sie den folgenden Befehl ausführen. Geben Sie den Dataset-Gruppen-ARN und den Schema-ARN an, die in den vorherigen Schritten zurückgegeben wurden. Der dataset-type muss mit dem Schema name aus dem vorherigen Schritt übereinstimmen. Weitere Informationen zur API finden Sie unter 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/MovieRatingSchema

    Der Dataset-ARN wird angezeigt, zum Beispiel:

    { "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS" }
  5. Fügen Sie dem Dataset die Schulungsdaten hinzu.

    1. Erstellen Sie den Dataset-Importauftrag, indem Sie den folgenden Befehl ausführen. Geben Sie den Dataset-ARN und den Amazon S3 S3-Bucket-Namen an, die in den vorherigen Schritten zurückgegeben wurden. Geben Sie den ARN für die Rolle AWS Identity and Access Management (IAM) an, in Erstellen einer IAM-Rolle für Amazon Personalize dem Sie ihn erstellt haben. Weitere Informationen zur API finden Sie unter 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://bucketname/ratings.csv \ --role-arn roleArn

      Der Dataset-Importauftrags-ARN wird angezeigt, z. B.:

      { "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob" }
    2. Überprüfen Sie mit dem Befehl describe-dataset-import-job den Status. Geben Sie den Dataset-Importauftrag-ARN an, der im vorherigen Schritt zurückgegeben wurde. Weitere Informationen zur API finden Sie unter DescribeDatasetImportJob.

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

      Die Eigenschaften des Dataset-Importauftrags, einschließlich des Erstellungsstatus, werden angezeigt. Anfänglich wird für den status CREATE PENDING angezeigt, z. B.:

      { "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://<bucketname>/ratings.csv" }, "roleArn": "role-arn", "status": "CREATE PENDING", "creationDateTime": 1542392161.837, "lastUpdatedDateTime": 1542393013.377 } }

      Der Dataset-Importvorgang ist abgeschlossen, wenn der Status als AKTIV angezeigt wird. Danach sind Sie zur Schulung des Modells anhand des angegebenen Datasets bereit.

      Anmerkung

      Das Importieren ist zeitaufwändig. Warten Sie, bis der Dataset-Importvorgang abgeschlossen ist, bevor Sie das Modell mit dem Dataset schulen.

Zwei Schritte sind erforderlich, um ein Modell erstmals zu schulen. Zuerst erstellen Sie die Konfiguration für die Schulung des Modells mithilfe der Operation CreateSolution. Zweitens schulen Sie das Modell mithilfe der Operation CreateSolutionVersion.

Sie trainieren ein Modell anhand eines Rezepts und Ihrer Trainingsdaten. Amazon Personalize bietet eine Reihe vordefinierter Rezepte. Weitere Informationen finden Sie unter Ein Rezept wählen. Für diese Übung verwenden Sie das Rezept für die Benutzerpersonalisierung.

  1. Erstellen Sie die Konfiguration für die Schulung eines Modells, indem Sie den folgenden Befehl ausführen.

    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

    Der Lösungs-ARN wird angezeigt, z. B.:

    { "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution" }
  2. Überprüfen Sie den Status create mithilfe des Befehls describe-solution. Geben Sie den Lösungs-ARN an, der im vorherigen Schritt zurückgegeben wurde. Weitere Informationen zur API finden Sie unter DescribeSolution.

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

    Die Eigenschaften der Lösung und der status der Erstellung werden angezeigt. Anfänglich wird der Status als CREATE PENDING angezeigt, z. B.:

    { "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", "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup", "solutionConfig": {}, "status": "ACTIVE", "creationDateTime": "2021-05-12T16:27:59.819000-07:00", "lastUpdatedDateTime": "2021-05-12T16:27:59.819000-07:00" } }
  3. Wenn die Lösung AKTIV ist, trainieren Sie das Modell, indem Sie den folgenden Befehl ausführen.

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

    Der ARN der Lösungsversion wird angezeigt, z. B.:

    { "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>" }

    Überprüfen Sie den Schulungsstatus der Lösungsversion, indem Sie den Befehl describe-solution-version verwenden. Geben Sie den Lösungsversions-ARN an, der im vorherigen Schritt zurückgegeben wurde. Weitere Informationen zur API finden Sie unter DescribeSolutionVersion.

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

    Die Eigenschaften der Lösungsversion und des Schulungsstatus werden angezeigt. Anfänglich wird der Status als CREATE PENDING angezeigt, z. B.:

    { "solutionVersion": { "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", ..., "status": "CREATE PENDING" } }
  4. Wenn die Lösungsversion AKTIV status ist, ist die Schulung abgeschlossen.

    Jetzt können Sie die Trainingsmetriken überprüfen und mithilfe der Lösungsversion eine Kampagne erstellen.

    Anmerkung

    Die Schulung ist zeitaufwändig. Warten Sie, bis die Schulung abgeschlossen ist (der Schulungsstatus der Lösungsversion wird als AKTIV angezeigt), bevor Sie diese Version der Lösung in einer Kampagne verwenden.

  5. Sie können die Leistung der Lösungsversion validieren, indem Sie ihre Metriken überprüfen. Mit dem folgenden Befehl können Sie die Metriken für die Lösungsversion abrufen. Geben Sie den Lösungsversions-ARN an, der vorher zurückgegeben wurde. Weitere Informationen zur API finden Sie unter GetSolutionMetrics.

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

    Es wird eine Beispielantwort angezeigt:

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

Bevor Sie Empfehlungen erhalten können, müssen Sie eine Lösungsversion bereitstellen. Das Bereitstellen einer Lösung wird auch als Erstellen einer Kampagne bezeichnet. Wenn Sie Ihre Kampagne erstellt haben, kann Ihre Client-Anwendung mithilfe der GetRecommendations-API-Empfehlungen erhalten.

  1. Erstellen Sie eine Kampagne, indem Sie den folgenden Befehl ausführen. Geben Sie den Lösungsversions-ARN an, der im vorherigen Schritt zurückgegeben wurde. Weitere Informationen zur API finden Sie unter 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 1

    Es wird eine Beispielantwort angezeigt:

    { "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign" }
  2. Überprüfen Sie den Bereitstellungsstatus, indem Sie den folgenden Befehl ausführen. Geben Sie den Kampagnen-ARN an, der im vorherigen Schritt zurückgegeben wurde. Weitere Informationen zur API finden Sie unter DescribeCampaign.

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

    Es wird eine Beispielantwort angezeigt:

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

    Warten Sie, bis für den status ACTIVE angezeigt wird, bevor Sie Empfehlungen von der Kampagne erhalten.

Sie können durch Ausführen des Befehls get-recommendations Empfehlungen erhalten. Geben Sie den Kampagnen-ARN an, der im vorherigen Schritt zurückgegeben wurde. Geben Sie in der Anforderung eine Benutzer-ID aus dem Filmbewertungs-Dataset an. Weitere Informationen zur API finden Sie unter GetRecommendations.

Anmerkung

Nicht alle Rezepte unterstützen die GetRecommendations-API. Weitere Informationen finden Sie unter Ein Rezept wählen.

Der AWS CLI-Befehl personalize-runtime, den Sie in diesem Schritt aufrufen, unterscheidet sich von dem in vorherigen Schritten.

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

In der Antwort gibt die Kampagne eine Liste von Elementempfehlungen (Film-IDs) zurück, die für den Benutzer interessant sein könnten. Die Liste ist in absteigender Reihenfolge nach der Bedeutung für den Benutzer sortiert.

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