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:
-
Lesen Sie „Erste Schritte mit Voraussetzungen für den Einstieg“.
-
Richten Sie die AWS CLI wie unter Einrichten der AWS CLI angegeben ein.
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.
-
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-arnarn: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/MovieRatingDatasetGroupDie 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
Befehledescribe-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. -
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 Sieratings.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" }
-
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" }
-
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 Schemaname
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/MovieRatingSchemaDer Dataset-ARN wird angezeigt, zum Beispiel:
{ "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS" }
-
Fügen Sie dem Dataset die Schulungsdaten hinzu.
-
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-arnroleArn
Der Dataset-Importauftrags-ARN wird angezeigt, z. B.:
{ "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob" }
-
Ü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/MovieRatingImportJobDie 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.
-
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-personalizationDer Lösungs-ARN wird angezeigt, z. B.:
{ "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution" }
-
Ü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/MovieSolutionDie 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" } }
-
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/MovieSolutionDer 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 Schulungs
status
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" } }
-
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.
-
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.
-
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 1Es wird eine Beispielantwort angezeigt:
{ "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign" }
-
Ü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/MovieRecommendationCampaignEs 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" }, ... ] }