Creazione di un processo di inferenza in batch - Amazon Personalize

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di un processo di inferenza in batch

Crea un processo di inferenza in batch per ottenere consigli sugli articoli in batch per gli utenti in base ai dati di input da Amazon S3. I dati di input possono essere un elenco di utenti o elementi (o entrambi) in JSON formato. Puoi creare un processo di inferenza in batch con la console Amazon Personalize, AWS Command Line Interface il AWS CLI() o. AWS SDKs

Quando crei un processo di inferenza in batch, specifichi i percorsi di Amazon S3 verso le posizioni di input e output. Amazon S3 è basato su prefissi. Se fornisci un prefisso per la posizione dei dati di input, Amazon Personalize utilizza tutti i file che corrispondono a quel prefisso come dati di input. Ad esempio, se fornisci s3://amzn-s3-demo-bucket/folderName e il tuo bucket ha anche una cartella con un percorso dis3://amzn-s3-demo-bucket/folderName_test, Amazon Personalize utilizza tutti i file in entrambe le cartelle come dati di input. Per utilizzare solo i file all'interno di una cartella specifica come dati di input, termina il percorso di Amazon S3 con un delimitatore di prefisso, ad esempio/: s3://amzn-s3-demo-bucket/folderName/ Per ulteriori informazioni su come Amazon S3 organizza gli oggetti, consulta Organizzazione, elenco e utilizzo degli oggetti.

Per ulteriori informazioni sul flusso di lavoro in batch in Amazon Personalize, inclusi i requisiti di autorizzazione, il punteggio dei consigli e la preparazione e l'importazione dei dati di input, consulta. Ottenere consigli sugli articoli in batch con risorse personalizzate

Creazione di un processo di inferenza in batch (console)

Al terminePreparazione dei dati di input per i consigli sui batch, è possibile creare un processo di inferenza in batch. Questa procedura presuppone che siano già state create una soluzione e una versione della soluzione (modello addestrato).

Per creare un processo di inferenza in batch (console)
  1. Apri la console Amazon Personalize a https://console.aws.amazon.com/personalize/casa e accedi al tuo account.

  2. Nella pagina dei gruppi di set di dati, scegli il tuo gruppo di set di dati.

  3. Dal riquadro di navigazione, in Risorse personalizzate, scegli Lavori di inferenza Batch.

  4. Scegliere Create batch inference job (Crea attività di inferenza batch).

  5. Scegliete il tipo di processo di inferenza in batch.

    • Per generare consigli sugli articoli senza temi, scegli Consigli sugli articoli.

    • Se utilizzi la ricetta Similar-Items e desideri aggiungere temi descrittivi a gruppi di articoli simili, scegli Consigli tematici con Content Generator. Per generare temi, è necessario disporre di un set di dati Items con dati relativi al nome dell'elemento e dati testuali. Per ulteriori informazioni, consulta Suggerimenti per i batch con temi di Content Generator.

  6. In Batch inference job details (Dettagli attività di inferenza batch), in Batch inference job name (Nome attività di inferenza batch) specificare un nome per l'attività di inferenza batch.

  7. Per Soluzione, scegli la soluzione, quindi scegli l'ID della versione della soluzione che desideri utilizzare per generare i consigli.

  8. Per Numero di risultati, specificate facoltativamente il numero di consigli per ogni riga di dati di input. Il valore predefinito è 25.

  9. Se il processo in batch genera suggerimenti con temi, in Dettagli dei consigli tematici, scegli la colonna contenente i nomi o i titoli degli elementi nel set di dati Items. Questi dati possono aiutare a generare temi più pertinenti. Per ulteriori informazioni, consulta Suggerimenti per i batch con temi di Content Generator.

  10. In Input source, specifica il percorso Amazon S3 del tuo file di input.

    Usa la seguente sintassi: s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json

    I dati di input devono essere nel formato corretto per la ricetta utilizzata dalla soluzione. Per esempi di dati di input, vedereEsempi di input e output JSON di job di inferenza in batch.

  11. Per la chiave di decrittografia, se utilizzi la tua AWS KMS chiave per la crittografia dei bucket, specifica l'Amazon Resource Name (ARN) della tua chiave. Amazon Personalize deve disporre dell'autorizzazione per utilizzare la tua chiave. Per informazioni sulla concessione delle autorizzazioni, consulta. Autorizzazione ad Amazon Personalize per l'uso della tua chiave AWS KMS

  12. In Destinazione di output, specificate il percorso verso la posizione di output. Ti consigliamo di utilizzare una posizione diversa per i dati di output (una cartella o un altro bucket Amazon S3).

    Usa la seguente sintassi: s3://amzn-s3-demo-bucket/<output folder name>/

  13. Per la chiave di crittografia, se si utilizza la propria AWS KMS chiave per la crittografia, specificare ARN la chiave. Amazon Personalize deve disporre dell'autorizzazione per utilizzare la tua chiave. Per informazioni sulla concessione delle autorizzazioni, consulta. Autorizzazione ad Amazon Personalize per l'uso della tua chiave AWS KMS

  14. Per il ruolo di IAM servizio, scegli il ruolo di IAM servizio che hai creato per Amazon Personalize durante la configurazione. Questo ruolo deve avere accesso in lettura e scrittura rispettivamente ai bucket Amazon S3 di input e output.

  15. In Filtri, scegli facoltativamente un filtro per applicare un filtro ai consigli sui batch. Se il filtro utilizza parametri segnaposto, assicurati che i valori dei parametri siano inclusi nell'input. JSON Per ulteriori informazioni, consulta Fornire valori di filtro nel codice JSON di input.

  16. Per i tag, aggiungi facoltativamente qualsiasi tag. Per ulteriori informazioni sull'etichettatura delle risorse Amazon Personalize, consulta. Etichettare le risorse di Amazon Personalize

  17. Scegliere Create batch inference job (Crea attività di inferenza batch). La creazione dell'attività di inferenza inizia e viene visualizzata la pagina Batch inference jobs (Attività di inferenza batch) con visualizzata la sezione Batch inference job detail (Dettagli attività di inferenza batch).

    Quando lo stato del processo di inferenza batch diventa Attivo, puoi recuperare l'output del processo dal bucket Amazon S3 di output designato. Il nome del file di output sarà nel formato input-name.out.

Creazione di un processo di inferenza in batch ()AWS CLI

Una volta completataPreparazione dei dati di input per i consigli sui batch, è possibile creare un processo di inferenza in batch con l'CreateBatchInferenceJoboperazione.

Creazione di un processo di inferenza in batch

È possibile utilizzare il create-batch-inference-job comando per creare un processo di inferenza in batch. Specificate un nome di lavoro, sostituitelo Solution version ARN con Amazon Resource Name (ARN) della versione della soluzione e IAM service role ARN sostituitelo con il ruolo ARN di IAM servizio che avete creato per Amazon Personalize durante la configurazione. Questo ruolo deve avere accesso in lettura e scrittura rispettivamente ai bucket Amazon S3 di input e output. Facoltativamente, fornisci un filtro per ARN filtrare i consigli. Se il filtro utilizza parametri segnaposto, assicurati che i valori dei parametri siano inclusi nell'input. JSON Per ulteriori informazioni, consulta Filtraggio dei consigli sui batch e dei segmenti di utenti (risorse personalizzate).

Sostituisci S3 input path e S3 output path con il percorso Amazon S3 verso i file di input e le posizioni di output. Ti consigliamo di utilizzare una posizione diversa per i dati di output (una cartella o un altro bucket Amazon S3). Usa la seguente sintassi per le posizioni di input e output: and. s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json s3://amzn-s3-demo-bucket/<output folder name>/

L'esempio include itemExplorationConfig iperparametri opzionali specifici della ricetta di personalizzazione utente: e. explorationWeight explorationItemAgeCutOff Facoltativamente, includi explorationWeight e explorationItemAgeCutOff valori per configurare l'esplorazione. Per ulteriori informazioni, consulta Ricetta di personalizzazione dell'utente.

aws personalize create-batch-inference-job \ --job-name Batch job name \ --solution-version-arn Solution version ARN \ --filter-arn Filter ARN \ --job-input s3DataSource={path=s3://S3 input path} \ --job-output s3DataDestination={path=s3://S3 output path} \ --role-arn IAM service role ARN \ --batch-inference-job-config "{\"itemExplorationConfig\":{\"explorationWeight\":\"0.3\",\"explorationItemAgeCutOff\":\"30\"}}"

Creazione di un processo di inferenza in batch che genera temi

Per generare temi per articoli simili, è necessario utilizzare la ricetta Similar-Items e il set di dati Items deve avere un campo di testo e una colonna di dati relativi ai nomi degli elementi. Per ulteriori informazioni sui consigli relativi ai temi, consulta. Suggerimenti per i batch con temi di Content Generator

Il codice seguente crea un processo di inferenza in batch che genera consigli con temi. Lascia il batch-inference-job-mode set a. THEME_GENERATION Sostituisci COLUMN_NAME con il nome della colonna in cui sono memorizzati i dati relativi al nome dell'articolo.

aws personalize create-batch-inference-job \ --job-name Themed batch job name \ --solution-version-arn Solution version ARN \ --filter-arn Filter ARN \ --job-input s3DataSource={path=s3://S3 input path} \ --job-output s3DataDestination={path=s3://S3 output path} \ --role-arn IAM service role ARN \ --batch-inference-job-mode THEME_GENERATION \ --theme-generation-config "{\"fieldsForThemeGeneration\": {\"itemName\":\"COLUMN_NAME\"}}"

Creazione di un processo di inferenza in batch ()AWS SDKs

Una volta completataPreparazione dei dati di input per i consigli sui batch, è possibile creare un processo di inferenza in batch con l'CreateBatchInferenceJoboperazione.

Creazione di un processo di inferenza in batch

È possibile utilizzare il codice seguente per creare un processo di inferenza in batch. Specificate il nome del lavoro, l'Amazon Resource Name (ARN) della versione della soluzione e il ruolo ARN di IAM servizio che avete creato per Amazon Personalize durante la configurazione. Questo ruolo deve avere accesso in lettura e scrittura ai bucket Amazon S3 di input e output.

Ti consigliamo di utilizzare una posizione diversa per i dati di output (una cartella o un altro bucket Amazon S3). Usa la seguente sintassi per le posizioni di input e output: and. s3:/amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json s3://amzn-s3-demo-bucket/<output folder name>/

PernumResults, specifica il numero di articoli che desideri che Amazon Personalize preveda per ogni riga di dati di input. Facoltativamente, fornisci un filtro ARN per filtrare i consigli. Se il filtro utilizza parametri segnaposto, assicurati che i valori dei parametri siano inclusi nell'input. JSON Per ulteriori informazioni, consulta Filtraggio dei consigli sui batch e dei segmenti di utenti (risorse personalizzate).

SDK for Python (Boto3)

L'esempio include iperparametri opzionali specifici itemExplorationConfig della ricetta di personalizzazione utente: e. explorationWeight explorationItemAgeCutOff Facoltativamente, includi explorationWeight e explorationItemAgeCutOff valori per configurare l'esplorazione. Per ulteriori informazioni, consulta Ricetta di personalizzazione dell'utente.

import boto3 personalize_rec = boto3.client(service_name='personalize') personalize_rec.create_batch_inference_job ( solutionVersionArn = "Solution version ARN", jobName = "Batch job name", roleArn = "IAM service role ARN", filterArn = "Filter ARN", batchInferenceJobConfig = { # optional USER_PERSONALIZATION recipe hyperparameters "itemExplorationConfig": { "explorationWeight": "0.3", "explorationItemAgeCutOff": "30" } }, jobInput = {"s3DataSource": {"path": "s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json"}}, jobOutput = {"s3DataDestination": {"path": "s3:/amzn-s3-demo-bucket/<output folder name>/"}} )
SDK for Java 2.x

L'esempio include campi opzionali specifici itemExplorationConfig della ricetta di personalizzazione utente: e. explorationWeight explorationItemAgeCutOff Facoltativamente, includi explorationWeight e explorationItemAgeCutOff valori per configurare l'esplorazione. Per ulteriori informazioni, consulta Ricetta di personalizzazione dell'utente.

public static String createPersonalizeBatchInferenceJob(PersonalizeClient personalizeClient, String solutionVersionArn, String jobName, String filterArn, String s3InputDataSourcePath, String s3DataDestinationPath, String roleArn, String explorationWeight, String explorationItemAgeCutOff) { long waitInMilliseconds = 60 * 1000; String status; String batchInferenceJobArn; try { // Set up data input and output parameters. S3DataConfig inputSource = S3DataConfig.builder() .path(s3InputDataSourcePath) .build(); S3DataConfig outputDestination = S3DataConfig.builder() .path(s3DataDestinationPath) .build(); BatchInferenceJobInput jobInput = BatchInferenceJobInput.builder() .s3DataSource(inputSource) .build(); BatchInferenceJobOutput jobOutputLocation = BatchInferenceJobOutput.builder() .s3DataDestination(outputDestination) .build(); // Optional code to build the User-Personalization specific item exploration config. HashMap<String, String> explorationConfig = new HashMap<>(); explorationConfig.put("explorationWeight", explorationWeight); explorationConfig.put("explorationItemAgeCutOff", explorationItemAgeCutOff); BatchInferenceJobConfig jobConfig = BatchInferenceJobConfig.builder() .itemExplorationConfig(explorationConfig) .build(); // End optional User-Personalization recipe specific code. CreateBatchInferenceJobRequest createBatchInferenceJobRequest = CreateBatchInferenceJobRequest.builder() .solutionVersionArn(solutionVersionArn) .jobInput(jobInput) .jobOutput(jobOutputLocation) .jobName(jobName) .filterArn(filterArn) .roleArn(roleArn) .batchInferenceJobConfig(jobConfig) // Optional .build(); batchInferenceJobArn = personalizeClient.createBatchInferenceJob(createBatchInferenceJobRequest) .batchInferenceJobArn(); DescribeBatchInferenceJobRequest describeBatchInferenceJobRequest = DescribeBatchInferenceJobRequest.builder() .batchInferenceJobArn(batchInferenceJobArn) .build(); long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; // wait until the batch inference job is complete. while (Instant.now().getEpochSecond() < maxTime) { BatchInferenceJob batchInferenceJob = personalizeClient .describeBatchInferenceJob(describeBatchInferenceJobRequest) .batchInferenceJob(); status = batchInferenceJob.status(); System.out.println("Batch inference job status: " + status); if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return batchInferenceJobArn; } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } return ""; }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { CreateBatchInferenceJobCommand } from "@aws-sdk/client-personalize"; import { personalizeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeClient = new PersonalizeClient({ region: "REGION"}); // Set the batch inference job's parameters. export const createBatchInferenceJobParam = { jobName: 'JOB_NAME', jobInput: { /* required */ s3DataSource: { /* required */ path: 'INPUT_PATH', /* required */ // kmsKeyArn: 'INPUT_KMS_KEY_ARN' /* optional */' } }, jobOutput: { /* required */ s3DataDestination: { /* required */ path: 'OUTPUT_PATH', /* required */ // kmsKeyArn: 'OUTPUT_KMS_KEY_ARN' /* optional */' } }, roleArn: 'ROLE_ARN', /* required */ solutionVersionArn: 'SOLUTION_VERSION_ARN', /* required */ numResults: 20 /* optional integer*/ }; export const run = async () => { try { const response = await personalizeClient.send(new CreateBatchInferenceJobCommand(createBatchInferenceJobParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

L'elaborazione dell'attività batch potrebbe richiedere del tempo per il completamento. È possibile controllare lo stato di un'attività richiamando DescribeBatchInferenceJob e passando batchRecommendationsJobArn come parametro di input. Puoi anche elencare tutti i lavori di inferenza in batch di Amazon Personalize nel tuo AWS ambiente chiamando. ListBatchInferenceJobs

Creazione di un processo di inferenza in batch che genera temi

Per generare temi per articoli simili, è necessario utilizzare la ricetta Similar-Items e il set di dati Items deve avere un campo di testo e una colonna di dati relativi ai nomi degli elementi. Per ulteriori informazioni sui consigli relativi ai temi, consulta. Suggerimenti per i batch con temi di Content Generator

Il codice seguente crea un processo di inferenza in batch che genera consigli con temi. Lascia il batchInferenceJobMode set a. "THEME_GENERATION" Sostituisci COLUMNN_NAME con il nome della colonna in cui sono memorizzati i dati relativi al nome dell'articolo.

import boto3 personalize_rec = boto3.client(service_name='personalize') personalize_rec.create_batch_inference_job ( solutionVersionArn = "Solution version ARN", jobName = "Batch job name", roleArn = "IAM service role ARN", filterArn = "Filter ARN", batchInferenceJobMode = "THEME_GENERATION", themeGenerationConfig = { "fieldsForThemeGeneration": { "itemName": "COLUMN_NAME" } }, jobInput = {"s3DataSource": {"path": "s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json"}}, jobOutput = {"s3DataDestination": {"path": "s3://amzn-s3-demo-bucket/<output folder name>/"}} )