

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
<a name="creating-batch-inference-job"></a>

 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 formato JSON. 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 di`s3://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.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/organizing-objects.html) 

 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](getting-batch-recommendations.md) 

**Topics**
+ [Creazione di un processo di inferenza in batch (console)](#batch-console)
+ [Creazione di un processo di inferenza in batch ()AWS CLI](#batch-cli)
+ [Creazione di un processo di inferenza in batch ()AWS SDKs](#batch-sdk)

## Creazione di un processo di inferenza in batch (console)
<a name="batch-console"></a>

 Al termine[Preparazione dei dati di input per i consigli sui batch](batch-data-upload.md), è 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](https://console.aws.amazon.com/personalize/home) e accedi al tuo account.

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

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

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

1.  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](themed-batch-recommendations.md). 

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

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

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

1.  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](themed-batch-recommendations.md). 

1.  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, vedere[Esempi JSON di input e output di job di inferenza in batch](batch-data-upload.md#batch-inference-job-json-examples). 

1. 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 all'uso del codice da parte di Amazon Personalize AWS KMS](granting-personalize-key-access.md) 

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

1. Per la **chiave di crittografia**, se si utilizza la propria AWS KMS chiave per la crittografia, specificare l'ARN della chiave. Amazon Personalize deve disporre dell'autorizzazione per utilizzare la tua chiave. Per informazioni sulla concessione delle autorizzazioni, consulta. [Autorizzazione all'uso del codice da parte di Amazon Personalize AWS KMS](granting-personalize-key-access.md) 

1. Per il **ruolo di servizio IAM**, scegli il ruolo di servizio IAM 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.

1.  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 nel codice JSON di input. Per ulteriori informazioni, consulta [Fornire valori di filtro nel codice JSON di input](filter-batch.md#providing-filter-values). 

1. Per i **tag, aggiungi** facoltativamente qualsiasi tag. Per ulteriori informazioni sull'etichettatura delle risorse Amazon Personalize, consulta. [Etichettare le risorse di Amazon Personalize](tagging-resources.md)

1.  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
<a name="batch-cli"></a>

Una volta completata[Preparazione dei dati di input per i consigli sui batch](batch-data-upload.md), è possibile creare un processo di inferenza in batch con l'[CreateBatchInferenceJob](API_CreateBatchInferenceJob.md)operazione. 

**Topics**
+ [Creazione di un processo di inferenza in batch](#batch-cli-code-sample)
+ [Creazione di un processo di inferenza in batch che genera temi](#batch-cli-themes)

### Creazione di un processo di inferenza in batch
<a name="batch-cli-code-sample"></a>

 È 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 l'Amazon Resource Name (ARN) della versione della soluzione e sostituitelo `IAM service role ARN` con l'ARN del ruolo di servizio IAM 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 ARN per filtrare i consigli. Se il filtro utilizza parametri segnaposto, assicurati che i valori dei parametri siano inclusi nel codice JSON di input. Per ulteriori informazioni, consulta [Filtraggio dei consigli sui batch e dei segmenti di utenti (risorse personalizzate)](filter-batch.md). 

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 per la personalizzazione dell'utente](native-recipe-new-item-USER_PERSONALIZATION.md). 

```
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
<a name="batch-cli-themes"></a>

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](themed-batch-recommendations.md)

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
<a name="batch-sdk"></a>

Una volta completata[Preparazione dei dati di input per i consigli sui batch](batch-data-upload.md), è possibile creare un processo di inferenza in batch con l'[CreateBatchInferenceJob](API_CreateBatchInferenceJob.md)operazione. 

**Topics**
+ [Creazione di un processo di inferenza in batch](#batch-sdk-code-sample)
+ [Creazione di un processo di inferenza in batch che genera temi](#batch-sdk-themes)

### Creazione di un processo di inferenza in batch
<a name="batch-sdk-code-sample"></a>

 È possibile utilizzare il codice seguente per creare un processo di inferenza in batch. Specificate un nome di lavoro, l'Amazon Resource Name (ARN) della versione della soluzione e l'ARN del ruolo di servizio IAM 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>/**

 Per`numResults`, 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 nel codice JSON di input. Per ulteriori informazioni, consulta [Filtraggio dei consigli sui batch e dei segmenti di utenti (risorse personalizzate)](filter-batch.md).

------
#### [ SDK for Python (Boto3) ]

L'esempio include iperparametri opzionali specifici della ricetta di personalizzazione utente: e. `itemExplorationConfig` `explorationWeight` `explorationItemAgeCutOff` Facoltativamente, includi `explorationWeight` e `explorationItemAgeCutOff` valori per configurare l'esplorazione. Per ulteriori informazioni, consulta [Ricetta per la personalizzazione dell'utente](native-recipe-new-item-USER_PERSONALIZATION.md). 

```
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 per la personalizzazione dell'utente](native-recipe-new-item-USER_PERSONALIZATION.md). 

```
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: {
    s3DataSource: {
      path: "INPUT_PATH",
    },
  },
  jobOutput: {
    s3DataDestination: {
      path: "OUTPUT_PATH",
    },
  },
  roleArn: "ROLE_ARN",
  solutionVersionArn: "SOLUTION_VERSION_ARN",
  numResults: 20,
};

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

### Creazione di un processo di inferenza in batch che genera temi
<a name="batch-sdk-themes"></a>

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](themed-batch-recommendations.md)

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