As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Conceitos básicos (AWS CLI)
Neste exercício, você usa o AWS Command Line Interface (AWS CLI) para explorar o Amazon Personalize. Você vai criar uma campanha que retorna recomendações de filmes para um determinado ID de usuário.
Antes de começar este exercício, faça o seguinte:
-
Consulte os Conceitos básicos Pré-requisitos de conceitos básicos.
-
Configure o AWS CLI, conforme especificado emConfigurando o AWS CLI.
Ao terminar o exercício de introdução, para evitar cobranças desnecessárias, exclua os recursos que você criou. Para obter mais informações, consulte Requisitos para excluir recursos do Amazon Personalize.
nota
Os AWS CLI comandos deste exercício foram testados no Linux. Para obter informações sobre como usar os comandos da AWS CLI no Windows, consulte Como especificar valores de parâmetros para AWS Command Line Interface no Guia do usuário da AWS Command Line Interface .
Siga as etapas para criar um grupo de conjuntos de dados, adicione um conjunto de dados ao grupo e preencha o conjunto de dados usando os dados de classificação do filme.
-
Crie um grupo de conjuntos de dados executando o seguinte comando. Você pode criptografar o grupo de conjuntos de dados passando uma AWS Key Management Servicechave ARN e a ARN de uma IAM função que tenha permissões de acesso a essa chave como parâmetros de entrada. Para obter mais informações sobre oAPI, consulteCreateDatasetGroup.
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
O grupo de conjuntos de dados ARN é exibido, por exemplo:
{ "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup" }
Use o
describe-dataset-group
comando para exibir o grupo de conjuntos de dados que você criou, especificando o grupo de conjuntos de dados retornado. ARNaws personalize describe-dataset-group \ --dataset-group-arn arn:aws:personalize:us-west-2:
acct-id
:dataset-group/MovieRatingDatasetGroupO grupo de conjuntos de dados e suas propriedades são exibidos, por exemplo:
{ "datasetGroup": { "name": "MovieRatingDatasetGroup", "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup", "status": "ACTIVE", "creationDateTime": 1542392161.262, "lastUpdatedDateTime": 1542396513.377 } }
nota
Espere até que o grupo de conjuntos de dados
status
apareça ACTIVE antes de criar um conjunto de dados no grupo. Em geral, essa operação é rápida.Se você não se lembra do grupo de conjuntos de dadosARN, use o
list-dataset-groups
comando para exibir todos os grupos de conjuntos de dados que você criou, junto com os deles. ARNsaws personalize list-dataset-groups
nota
Os comandos
describe-object
elist-objects
estão disponíveis para a maioria dos objetos do Amazon Personalize. Esses comandos não serão mostrados no restante deste exercício, mas eles estão disponíveis. -
Crie um arquivo de esquema em JSON formato salvando o código a seguir em um arquivo chamado
MovieRatingSchema.json
. O esquema corresponde aos cabeçalhos que você adicionou anteriormente ao arquivoratings.csv
. O nome do esquema éInteractions
, que corresponde a um dos tipos de conjunto de dados reconhecidos pelo Amazon Personalize. Para obter mais informações, consulte Criação de JSON arquivos de esquema para seus dados.{ "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" }
-
Crie um esquema executando o seguinte comando. Especifique o arquivo que você salvou na etapa anterior. O exemplo mostra o arquivo como pertencente à pasta atual. Para obter mais informações sobre oAPI, consulteCreateSchema.
aws personalize create-schema \ --name MovieRatingSchema \ --schema file://MovieRatingSchema.json
O esquema Amazon Resource Name (ARN) é exibido, por exemplo:
{ "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/MovieRatingSchema" }
-
Crie um conjunto de dados vazio executando o seguinte comando. Forneça o grupo de conjuntos de dados ARN e o esquema ARN que foram retornados nas etapas anteriores. O
dataset-type
deve corresponder ao tipo do esquemaname
da etapa anterior. Para obter mais informações sobre oAPI, consulteCreateDataset.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/MovieRatingSchemaO conjunto de dados ARN é exibido, por exemplo:
{ "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS" }
-
Adicione os dados de treinamento ao conjunto de dados.
-
Crie um trabalho de importação do conjunto de dados executando o seguinte comando. Forneça o conjunto de dados ARN e o nome do bucket do Amazon S3 que foram retornados nas etapas anteriores. Forneça a função AWS Identity and Access Management (IAM) na ARN qual você criouCriação de uma IAM função para o Amazon Personalize. Para obter mais informações sobre oAPI, consulteCreateDatasetImportJob.
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
O trabalho de importação do conjunto de dados ARN é exibido, por exemplo:
{ "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob" }
-
Verifique o status usando o comando
describe-dataset-import-job
. Forneça o trabalho de importação do conjunto de dados ARN que foi retornado na etapa anterior. Para obter mais informações sobre oAPI, consulteDescribeDatasetImportJob.aws personalize describe-dataset-import-job \ --dataset-import-job-arn arn:aws:personalize:us-west-2:
acct-id
:dataset-import-job/MovieRatingImportJobAs propriedades do trabalho de importação do conjunto de dados, incluindo seu status, são exibidas. Inicialmente, os
status
shows eram CREATEPENDING, por exemplo:{ "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 } }
A importação do conjunto de dados é concluída quando o status é exibido comoACTIVE. Agora, você está pronto para treinar o modelo usando o conjunto de dados especificado.
nota
A importação é demorada. Aguarde até que a importação do conjunto de dados seja concluída antes de treinar o modelo usando o conjunto de dados.
-
Para treinar um modelo, você cria a configuração para treinar o modelo usando a CreateSolution operação e deixa o treinamento automático ativado. A solução começa automaticamente a treinar a primeira solução em uma hora.
Você treina um modelo usando uma fórmula e seus dados de treinamento. O Amazon Personalize fornece um conjunto de fórmulas predefinidas. Para obter mais informações, consulte Escolher uma fórmula. Para este exercício, você usa a receita User-Personalization-v2.
-
Crie a configuração para treinar um modelo executando o comando a seguir. Esse comando cria uma solução que usa treinamento automático. Ele cria automaticamente uma nova versão da solução a cada sete dias (o padrão).
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)\"}}"A solução ARN é exibida, por exemplo:
{ "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution" }
-
Verifique o status de criação usando o comando
describe-solution
. Forneça a solução ARN que foi retornada na etapa anterior. Para obter mais informações sobre oAPI, consulteDescribeSolution.aws personalize describe-solution \ --solution-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolutionAs propriedades da solução e o
status
de criação são exibidos. Por exemplo:{ "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" } }
-
Com o treinamento automático, o treinamento da versão da solução começa dentro de um período após o término da soluçãoACTIVE. Após o início do treinamento, você pode obter o Amazon Resource Name (ARN) da versão da solução com o seguinte ListSolutionVersionscomando:
aws personalize list-solution-versions --solution-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolution -
Verifique o status de treinamento da versão da solução usando o comando
describe-solution-version
. Forneça a versão da solução ARN que foi retornada na etapa anterior. Para obter mais informações sobre oAPI, consulteDescribeSolutionVersion.aws personalize describe-solution-version \ --solution-version-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolution/version-id
As propriedades da versão da solução e o
status
do treinamento são exibidos. Inicialmente, o status é exibido como CREATEPENDING, por exemplo:{ "solutionVersion": { "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", ..., "status": "CREATE PENDING" } }
-
Quando a versão da solução
status
forACTIVE, o treinamento estará concluído.Agora você pode revisar as métricas de treinamento e criar uma campanha usando a versão da solução.
nota
O treinamento é demorado. Espere até que o treinamento seja concluído (o status do treinamento da versão da solução aparece comoACTIVE) antes de usar essa versão da solução em uma campanha.
-
Você pode validar o desempenho da versão da solução analisando as métricas dela. Obtenha as métricas para a versão da solução executando o comando a seguir. Forneça a versão da solução ARN que foi retornada anteriormente. Para obter mais informações sobre oAPI, consulteGetSolutionMetrics.
aws personalize get-solution-metrics \ --solution-version-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolution/version-id
Uma resposta de exemplo é mostrada:
{ "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 } }
Antes de obter recomendações, você deve implantar uma versão da solução. A implantação de uma solução também é conhecida como a criação de uma campanha. Depois de criar sua campanha, seu aplicativo cliente pode obter recomendações usando GetRecommendations API o.
-
Crie uma campanha executando o seguinte comando. Forneça a versão da solução ARN que foi retornada na etapa anterior. Para obter mais informações sobre oAPI, consulteCreateCampaign.
aws personalize create-campaign \ --name MovieRecommendationCampaign \ --solution-version-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolution/version-id
\ --min-provisioned-tps 1Uma resposta de exemplo é mostrada:
{ "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign" }
-
Verifique o status da implantação executando o seguinte comando. Forneça a campanha ARN que foi devolvida na etapa anterior. Para obter mais informações sobre oAPI, consulteDescribeCampaign.
aws personalize describe-campaign \ --campaign-arn arn:aws:personalize:us-west-2:
acct-id
:campaign/MovieRecommendationCampaignUma resposta de exemplo é mostrada:
{ "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" } }
nota
Espere até os
status
shows ACTIVE antes de receber recomendações da campanha.
Obtenha recomendações executando o comando get-recommendations
. Forneça a campanha ARN que foi devolvida na etapa anterior. Na solicitação, você especifica um ID de usuário do conjunto de dados de classificações de filmes. Para obter mais informações sobre oAPI, consulteGetRecommendations.
nota
Nem todas as receitas suportam GetRecommendations
API o. Para obter mais informações, consulte Escolher uma fórmula.
O AWS CLI comando que você chama nesta etapa,personalize-runtime
, é diferente do que nas etapas anteriores.
aws personalize-runtime get-recommendations \ --campaign-arn arn:aws:personalize:us-west-2:
acct-id
:campaign/MovieRecommendationCampaign \ --user-id 123
Em resposta, a campanha retorna uma lista de recomendações de itens (filmeIDs) que o usuário pode gostar. A lista é classificada em ordem decrescente de relevância para o usuário.
{ "itemList": [ { "itemId": "14" }, { "itemId": "15" }, { "itemId": "275" }, { "itemId": "283" }, { "itemId": "273" }, ... ] }