

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.

# Einen Batch-Inferenzjob erstellen
<a name="creating-batch-inference-job"></a>

 Erstellen Sie einen Batch-Inferenzjob, um anhand von Eingabedaten aus Amazon S3 Empfehlungen für Batch-Artikel für Benutzer zu erhalten. Bei den Eingabedaten kann es sich um eine Liste von Benutzern oder Elementen (oder beides) im JSON-Format handeln. Sie können einen Batch-Inferenzjob mit der Amazon Personalize Personalize-Konsole, dem AWS Command Line Interface (AWS CLI) oder erstellen. AWS SDKs 

 Wenn Sie einen Batch-Inferenz-Job erstellen, geben Sie die Amazon S3 S3-Pfade zu Ihren Eingabe- und Ausgabespeicherorten an. Amazon S3 basiert auf Präfixen. Wenn Sie ein Präfix für den Speicherort der Eingabedaten angeben, verwendet Amazon Personalize alle Dateien, die diesem Präfix entsprechen, als Eingabedaten. Wenn Sie beispielsweise einen Ordner mit einem Pfad von angeben `s3://amzn-s3-demo-bucket/folderName` und Ihr Bucket auch über einen Ordner verfügt`s3://amzn-s3-demo-bucket/folderName_test`, verwendet Amazon Personalize alle Dateien in beiden Ordnern als Eingabedaten. Um nur die Dateien in einem bestimmten Ordner als Eingabedaten zu verwenden, beenden Sie den Amazon S3-Pfad mit einem Präfix-Trennzeichen, z. B.`/`: `s3://amzn-s3-demo-bucket/folderName/` Weitere Informationen darüber, wie Amazon S3 Objekte [organisiert, auflisten und mit ihnen arbeiten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/organizing-objects.html). 

 Weitere Informationen zum Batch-Workflow in Amazon Personalize, einschließlich Berechtigungsanforderungen, Empfehlungsbewertung und Vorbereitung und Import von Eingabedaten, finden Sie unter[Empfehlungen für Chargenartikel mit benutzerdefinierten Ressourcen abrufen](getting-batch-recommendations.md). 

**Topics**
+ [Einen Batch-Inferenzjob erstellen (Konsole)](#batch-console)
+ [Einen Batch-Inferenz-Job erstellen ()AWS CLI](#batch-cli)
+ [Einen Batch-Inferenzjob erstellen ()AWS SDKs](#batch-sdk)

## Einen Batch-Inferenzjob erstellen (Konsole)
<a name="batch-console"></a>

 Nachdem Sie den Vorgang abgeschlossen haben[Vorbereiten der Eingabedaten für Batch-Empfehlungen](batch-data-upload.md), können Sie einen Batch-Inferenzjob erstellen. Bei diesem Verfahren wird davon ausgegangen, dass Sie bereits eine Lösung und eine Lösungsversion (trainiertes Modell) erstellt haben. 

**So erstellen Sie einen Batch-Inferenzjob (Konsole)**

1. Öffnen Sie zu [https://console.aws.amazon.com/personalize/Hause](https://console.aws.amazon.com/personalize/home) die Amazon Personalize Personalize-Konsole und melden Sie sich bei Ihrem Konto an.

1. Wählen Sie auf der Seite **Datensatzgruppen** Ihre Datensatzgruppe aus.

1. Wählen Sie im Navigationsbereich unter **Benutzerdefinierte Ressourcen** die Option **Batch-Inferenzjobs** aus.

1. Wählen Sie **Create batch inference job (Batch-Inferenzauftrag erstellen)**.

1.  Wählen Sie den Auftragstyp Batch-Inferenz aus. 
   + Um Artikelempfehlungen ohne Themen zu generieren, wählen Sie **Artikelempfehlungen**.
   +  Wenn du das Rezept für ähnliche Artikel verwendest und Gruppen ähnlicher Artikel beschreibende Themen hinzufügen möchtest, wähle **Thematische Empfehlungen mit** Inhaltsgenerator. Um Themen zu generieren, benötigen Sie einen Artikeldatensatz mit Artikelnamen und Textdaten. Weitere Informationen finden Sie unter [Batch-Empfehlungen mit Themen aus dem Content Generator](themed-batch-recommendations.md). 

1. Geben Sie unter **Batch inference job details (Batch-Inferenzauftragsdetails)** unter **Batch inference job name (Batch-Inferenzauftragsname)** einen Namen für den Batch-Inferenzauftrag an.

1. Wählen Sie unter **Lösung** die Lösung und dann die **Versions-ID der Lösung** aus, die Sie zum Generieren der Empfehlungen verwenden möchten. 

1. Geben Sie **unter Anzahl der Ergebnisse** optional die Anzahl der Empfehlungen für jede Zeile mit Eingabedaten an. Der Standardwert ist 25.

1.  Wenn Ihr Batch-Job Empfehlungen mit Themen generiert, wählen Sie unter **Details zu thematischen Empfehlungen** die Spalte mit den Namen oder Titeln für die Elemente in Ihrem Artikel-Datensatz aus. Diese Daten können dazu beitragen, relevantere Themen zu generieren. Weitere Informationen finden Sie unter [Batch-Empfehlungen mit Themen aus dem Content Generator](themed-batch-recommendations.md). 

1.  Geben Sie unter **Eingabequelle** den Amazon S3 S3-Pfad zu Ihrer Eingabedatei an. 

   Verwenden Sie die folgende Syntax: **s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json**

    Ihre Eingabedaten müssen das richtige Format für das in Ihrer Lösung verwendete Rezept haben. Beispiele für Eingabedaten finden Sie unter[JSON-Beispiele für die Eingabe und Ausgabe von Batch-Inferenzjobs](batch-data-upload.md#batch-inference-job-json-examples). 

1. Wenn Sie für den **Entschlüsselungsschlüssel** Ihren eigenen AWS KMS Schlüssel für die Bucket-Verschlüsselung verwenden, geben Sie den Amazon-Ressourcennamen (ARN) Ihres Schlüssels an. Amazon Personalize benötigt die Erlaubnis, Ihren Schlüssel zu verwenden. Informationen zur Erteilung von Berechtigungen finden Sie unter[Amazon Personalize die Erlaubnis zur Verwendung Ihres AWS KMS Schlüssels erteilen](granting-personalize-key-access.md). 

1. Geben Sie im **Ausgabeziel** den Pfad zu Ihrem Ausgabespeicherort an. Wir empfehlen, einen anderen Speicherort für Ihre Ausgabedaten zu verwenden (entweder einen Ordner oder einen anderen Amazon S3 S3-Bucket).

    Verwenden Sie die folgende Syntax: **s3://amzn-s3-demo-bucket/<output folder name>/** 

1. Wenn Sie Ihren eigenen **Schlüssel für die Verschlüsselung** verwenden, geben Sie unter AWS KMS Verschlüsselungsschlüssel den ARN Ihres Schlüssels an. Amazon Personalize benötigt die Erlaubnis, Ihren Schlüssel zu verwenden. Informationen zur Erteilung von Berechtigungen finden Sie unter[Amazon Personalize die Erlaubnis zur Verwendung Ihres AWS KMS Schlüssels erteilen](granting-personalize-key-access.md). 

1. Wählen Sie für die **IAM-Servicerolle** die IAM-Servicerolle aus, die Sie bei der Einrichtung für Amazon Personalize erstellt haben. Diese Rolle muss Lese- und Schreibzugriff auf Ihre Amazon S3 S3-Eingabe- bzw. Ausgabe-Buckets haben.

1.  Wählen Sie unter **Filter** optional einen Filter aus, um einen Filter auf die Batch-Empfehlungen anzuwenden. Wenn Ihr Filter Platzhalterparameter verwendet, stellen Sie sicher, dass die Werte für die Parameter in Ihrem Eingabe-JSON enthalten sind. Weitere Informationen finden Sie unter [Bereitstellung von Filterwerten in Ihrem Eingabe-JSON](filter-batch.md#providing-filter-values). 

1. Fügen Sie für **Tags** optional beliebige Tags hinzu. Weitere Informationen zum Taggen von Amazon Personalize Personalize-Ressourcen finden Sie unter. [Taggen von Amazon Personalize Personalize-Ressourcen](tagging-resources.md)

1.  Wählen Sie **Create batch inference job (Batch-Inferenzauftrag erstellen)**. Die Erstellung von Batch-Inferenzaufträgen wird gestartet, und die Seite **Batch inference jobs (Batch-Inferenzaufträge)** wird mit dem angezeigten Bereich **Batch inference job detail (Batch-Inferenzauftrauftragsdetails)** angezeigt.

    Wenn sich der Status des Batch-Inferenz-Jobs auf **Aktiv** ändert, können Sie die Ausgabe des Jobs aus dem angegebenen Amazon S3 S3-Ausgabe-Bucket abrufen. Der Name der Ausgabedatei entspricht dem Format `input-name.out`. 

## Einen Batch-Inferenz-Job erstellen ()AWS CLI
<a name="batch-cli"></a>

Nachdem Sie den Vorgang abgeschlossen haben[Vorbereiten der Eingabedaten für Batch-Empfehlungen](batch-data-upload.md), können Sie mit dem [CreateBatchInferenceJob](API_CreateBatchInferenceJob.md) Vorgang einen Batch-Inferenzjob erstellen. 

**Topics**
+ [Einen Batch-Inferenzjob erstellen](#batch-cli-code-sample)
+ [Erstellen eines Batch-Inferenzjobs, der Themen generiert](#batch-cli-themes)

### Einen Batch-Inferenzjob erstellen
<a name="batch-cli-code-sample"></a>

 Sie können den `create-batch-inference-job` Befehl verwenden, um einen Batch-Inferenzjob zu erstellen. Geben Sie einen Jobnamen an, `Solution version ARN` ersetzen Sie ihn durch den Amazon Resource Name (ARN) Ihrer Lösungsversion und ersetzen Sie den durch den `IAM service role ARN` ARN der IAM-Servicerolle, die Sie bei der Einrichtung für Amazon Personalize erstellt haben. Diese Rolle muss Lese- und Schreibzugriff auf Ihre Amazon S3 S3-Eingabe- bzw. Ausgabe-Buckets haben. Geben Sie optional einen Filter-ARN an, um Empfehlungen zu filtern. Wenn Ihr Filter Platzhalterparameter verwendet, stellen Sie sicher, dass die Werte für die Parameter in Ihrem Eingabe-JSON enthalten sind. Weitere Informationen finden Sie unter [Filtern von Batch-Empfehlungen und Benutzersegmenten (benutzerdefinierte Ressourcen)](filter-batch.md). 

Ersetzen Sie `S3 input path` und `S3 output path` durch den Amazon S3-Pfad zu Ihrer Eingabedatei und Ihren Ausgabespeicherorten. Wir empfehlen, einen anderen Speicherort für Ihre Ausgabedaten zu verwenden (entweder einen Ordner oder einen anderen Amazon S3 S3-Bucket). Verwenden Sie die folgende Syntax für Eingabe- und Ausgabespeicherorte: **s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json** und**s3://amzn-s3-demo-bucket/<output folder name>/**. 

Das Beispiel enthält optionale, rezeptspezifische `itemExplorationConfig` Hyperparameter für die Benutzerpersonalisierung: und. `explorationWeight` `explorationItemAgeCutOff` Fügen Sie optional `explorationItemAgeCutOff` Werte hinzu, um `explorationWeight` die Erkundung zu konfigurieren. Weitere Informationen finden Sie unter [Rezept für Benutzerpersonalisierung](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\"}}"
```

### Erstellen eines Batch-Inferenzjobs, der Themen generiert
<a name="batch-cli-themes"></a>

Um Themen für ähnliche Artikel zu generieren, müssen Sie das Rezept für ähnliche Artikel verwenden und Ihr Artikeldatensatz muss ein Textfeld und eine Spalte mit Artikelnamendaten enthalten. Weitere Informationen zu Empfehlungen mit Themen finden Sie unter. [Batch-Empfehlungen mit Themen aus dem Content Generator](themed-batch-recommendations.md)

Der folgende Code erstellt einen Batch-Inferenzjob, der Empfehlungen mit Themen generiert. Belassen Sie das `batch-inference-job-mode` Set auf. `THEME_GENERATION` `COLUMN_NAME`Ersetzen Sie es durch den Namen der Spalte, in der Ihre Artikelnamendaten gespeichert sind. 

```
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\"}}"
```

## Einen Batch-Inferenzjob erstellen ()AWS SDKs
<a name="batch-sdk"></a>

Nachdem Sie den Vorgang abgeschlossen haben[Vorbereiten der Eingabedaten für Batch-Empfehlungen](batch-data-upload.md), können Sie mit dem [CreateBatchInferenceJob](API_CreateBatchInferenceJob.md) Vorgang einen Batch-Inferenzjob erstellen. 

**Topics**
+ [Einen Batch-Inferenzjob erstellen](#batch-sdk-code-sample)
+ [Erstellen eines Batch-Inferenzauftrags, der Themen generiert](#batch-sdk-themes)

### Einen Batch-Inferenzjob erstellen
<a name="batch-sdk-code-sample"></a>

 Sie können den folgenden Code verwenden, um einen Batch-Inferenzjob zu erstellen. Geben Sie einen Jobnamen, den Amazon-Ressourcennamen (ARN) Ihrer Lösungsversion und den ARN der IAM-Servicerolle an, die Sie bei der Einrichtung für Amazon Personalize erstellt haben. Diese Rolle muss Lese- und Schreibzugriff auf Ihre Amazon S3 S3-Eingabe- und Ausgabe-Buckets haben.

Wir empfehlen, einen anderen Speicherort für Ihre Ausgabedaten zu verwenden (entweder einen Ordner oder einen anderen Amazon S3 S3-Bucket). Verwenden Sie die folgende Syntax für Eingabe- und Ausgabespeicherorte: **s3:/amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json** und**s3://amzn-s3-demo-bucket/<output folder name>/**.

 Geben Sie für die Anzahl der Artikel an`numResults`, die Amazon Personalize für jede Zeile mit Eingabedaten vorhersagen soll. Geben Sie optional einen Filter-ARN an, um Empfehlungen zu filtern. Wenn Ihr Filter Platzhalterparameter verwendet, stellen Sie sicher, dass die Werte für die Parameter in Ihrem Eingabe-JSON enthalten sind. Weitere Informationen finden Sie unter [Filtern von Batch-Empfehlungen und Benutzersegmenten (benutzerdefinierte Ressourcen)](filter-batch.md).

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

Das Beispiel enthält optionale, rezeptspezifische `itemExplorationConfig` Hyperparameter für die Benutzerpersonalisierung: und. `explorationWeight` `explorationItemAgeCutOff` Fügen Sie optional `explorationItemAgeCutOff` Werte hinzu, um `explorationWeight` die Erkundung zu konfigurieren. Weitere Informationen finden Sie unter [Rezept für Benutzerpersonalisierung](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 ]

Das Beispiel enthält optionale `itemExplorationConfig` Rezeptfelder für die Benutzerpersonalisierung: `explorationWeight` und. `explorationItemAgeCutOff` Fügen `explorationWeight` Sie optional `explorationItemAgeCutOff` Werte hinzu, um die Erkundung zu konfigurieren. Weitere Informationen finden Sie unter [Rezept für Benutzerpersonalisierung](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();
```

------

Die Verarbeitung des Batchauftrags kann eine Weile dauern. Sie können den Status eines Auftrags überprüfen, indem Sie [DescribeBatchInferenceJob](API_DescribeBatchInferenceJob.md) aufrufen und als Eingabeparameter einen `batchRecommendationsJobArn` übergeben. Sie können auch alle Amazon Personalize-Batch-Inferenzjobs in Ihrer AWS Umgebung auflisten, indem Sie anrufen. [ListBatchInferenceJobs](API_ListBatchInferenceJobs.md)

### Erstellen eines Batch-Inferenzauftrags, der Themen generiert
<a name="batch-sdk-themes"></a>

Um Themen für ähnliche Artikel zu generieren, müssen Sie das Rezept für ähnliche Artikel verwenden und Ihr Artikeldatensatz muss ein Textfeld und eine Spalte mit Artikelnamendaten enthalten. Weitere Informationen zu Empfehlungen mit Themen finden Sie unter. [Batch-Empfehlungen mit Themen aus dem Content Generator](themed-batch-recommendations.md)

Der folgende Code erstellt einen Batch-Inferenzjob, der Empfehlungen mit Themen generiert. Belassen Sie das `batchInferenceJobMode` Set auf. `"THEME_GENERATION"` `COLUMNN_NAME`Ersetzen Sie es durch den Namen der Spalte, in der Ihre Artikelnamendaten gespeichert sind. 

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