

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.

# AutoML-Job zur Optimierung von Textgenerierungsmodellen mithilfe der API erstellen
<a name="autopilot-create-experiment-finetune-llms"></a>

Große Sprachmodelle (LLMs) zeichnen sich durch vielfältige generative Aufgaben aus, darunter Textgenerierung, Zusammenfassung, Vervollständigung, Beantwortung von Fragen und mehr. Ihre Leistungsfähigkeit lässt sich auf ihre beträchtliche Größe und ihr umfangreiches Training mit unterschiedlichen Datensätzen und verschiedenen Aufgaben zurückführen. In bestimmten Bereichen, wie dem Gesundheitswesen und den Finanzdienstleistungen, ist jedoch möglicherweise eine individuelle Feinabstimmung erforderlich, um sie an spezifische Daten und Anwendungsfälle anzupassen. Durch die Anpassung ihrer Schulungen an ihr spezielles Fachgebiet LLMs können sie ihre Leistung verbessern und genauere Ergebnisse für gezielte Anwendungen liefern.

Autopilot bietet die Möglichkeit, eine Auswahl von vortrainierten generativen Textmodellen zu verfeinern. Insbesondere unterstützt der Autopilot die **anweisungsgestützte Feinabstimmung** einer Auswahl von Allzweck-Modellen in großen Sprachen (), die von unterstützt werden. LLMs JumpStart

**Anmerkung**  
Die Textgenerierungsmodelle, die die Feinabstimmung in Autopilot unterstützen, sind derzeit ausschließlich in Regionen verfügbar, die von Canvas unterstützt werden. SageMaker [Eine vollständige Liste der unterstützten Regionen finden Sie in der Dokumentation von SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) Canvas.

Für die Feinabstimmung eines vortrainierten Modells ist ein bestimmter Datensatz mit klaren Anweisungen erforderlich, anhand derer sich das Modell bei der Generierung von Ergebnissen oder beim Verhalten für diese Aufgabe orientieren kann. Das Modell lernt aus dem Datensatz und passt seine Parameter an, sodass sie den bereitgestellten Anweisungen entsprechen. Bei der Feinabstimmung mithilfe von Anweisungen werden beschriftete Beispiele verwendet, die als Prompt-Antwort-Paare formatiert und als Anweisungen formuliert sind. Weitere Informationen zur Feinabstimmung finden Sie unter [Feinabstimmung eines Basismodells](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-fine-tuning.html).

[Die folgenden Richtlinien beschreiben den Prozess der Erstellung eines Amazon SageMaker Autopilot-Jobs als Pilotversuch zur Feinabstimmung der Textgenerierung LLMs mithilfe der SageMaker API-Referenz.](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)

**Anmerkung**  
Aufgaben wie Text- und Bildklassifizierung, Zeitreihenprognosen und Feinabstimmung umfangreicher Sprachmodelle stehen nur über Version 2 der [AutoML-REST-API](autopilot-reference.md) zur Verfügung. Wenn Ihre bevorzugte Sprache Python ist, können Sie direkt auf [AWS SDK für Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_auto_ml_job_v2.html)das [MLV2 Auto-Objekt](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2) des Amazon SageMaker Python SDK verweisen.  
Benutzer, die den Komfort einer Benutzeroberfläche bevorzugen, können [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) verwenden, um auf vortrainierte Modelle und generative KI-Grundmodelle zuzugreifen oder benutzerdefinierte Modelle zu erstellen, die auf bestimmte Text-, Bildklassifizierungs-, Prognoseanforderungen oder generative KI zugeschnitten sind.

Um ein Autopilot-Experiment zur Feinabstimmung eines LLM programmgesteuert zu erstellen, können Sie die [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)API in jeder Sprache aufrufen, die von Amazon Autopilot oder dem unterstützt wird. SageMaker AWS CLI

Informationen darüber, wie diese API-Aktion in eine Funktion in der Sprache Ihrer Wahl übersetzt wird, finden Sie im Abschnitt [Siehe auch](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso) von `CreateAutoMLJobV2` und wählen Sie ein SDK aus. Als Beispiel für Python-Benutzer finden Sie die vollständige Anforderungssyntax von `[create\_auto\_ml\_job\_v2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_auto_ml_job_v2)` in AWS SDK für Python (Boto3).

**Anmerkung**  
Der Autopilot optimiert umfangreiche Sprachmodelle, ohne dass mehrere Kandidaten trainiert und bewertet werden müssen. Stattdessen optimiert Autopilot anhand Ihres Datensatzes direkt Ihr Zielmodell, um eine standardmäßige Zielmetrik, den Cross-Entropie-Verlust, zu verbessern. Für die Feinabstimmung von Sprachmodellen in Autopilot ist keine Einstellung des Feldes `AutoMLJobObjective` erforderlich.

Sobald Ihr LLM fein abgestimmt ist, können Sie seine Leistung bewerten, indem Sie bei einem `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)`-API-Aufruf auf verschiedene ROUGE-Scores über die `[BestCandidate](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateProperties.html#sagemaker-Type-CandidateProperties-CandidateMetrics)` zugreifen. Das Modell liefert auch Informationen über den Trainings- und Validierungsverlust sowie die Komplexität. Eine umfassende Liste von Kennzahlen zur Bewertung der Qualität des mit den fein abgestimmten Modellen generierten Textes finden Sie unter [Metriken für die Feinabstimmung großer Sprachmodelle in Autopilot](autopilot-llms-finetuning-metrics.md).

## Voraussetzungen
<a name="autopilot-llms-finetuning-api-prerequisites"></a>

Bevor Sie Autopilot verwenden, um ein Feinabstimmungsexperiment in KI zu erstellen, stellen Sie sicher, dass Sie die folgenden Schritte ausführen: SageMaker 
+ (optional) das vortrainierte Modell auswählen, das Sie verfeinern möchten.

  Eine Liste der vortrainierten Modelle, die für die Feinabstimmung in Amazon SageMaker Autopilot verfügbar sind, finden Sie unter. [Unterstützt große Sprachmodelle für die Feinabstimmung](autopilot-llms-finetuning-models.md) *Die Auswahl eines Modells ist nicht zwingend erforderlich. Wenn kein Modell angegeben ist, verwendet Autopilot automatisch standardmäßig das Modell Falcon7. BInstruct*
+ Erstellen eines Datensatzes mit Anweisungen. Weitere Informationen zu den Formatanforderungen für Ihren anweisungsbasierten Datensatz finden Sie unter [Datensatz-Dateitypen und Eingabedatenformat](autopilot-llms-finetuning-data-format.md).
+ Platzieren Sie Ihre Datensätze in einem Amazon-S3-Bucket.
+ Gewähren Sie vollen Zugriff auf den Amazon S3 S3-Bucket, der Ihre Eingabedaten für die SageMaker KI-Ausführungsrolle enthält, die für die Ausführung Ihres Experiments verwendet wurde.
  + Informationen zum Abrufen Ihrer SageMaker KI-Ausführungsrolle finden Sie unter[Abrufen Ihrer Ausführungsrolle](sagemaker-roles.md#sagemaker-roles-get-execution-role).
  + Informationen dazu, wie Sie Ihrer SageMaker KI-Ausführungsrolle Berechtigungen für den Zugriff auf einen oder mehrere bestimmte Buckets in Amazon S3 gewähren, finden *Sie unter Zusätzliche Amazon S3 S3-Berechtigungen zu einer SageMaker KI-Ausführungsrolle hinzufügen* in[Erstellen einer Ausführungsrolle](sagemaker-roles.md#sagemaker-roles-create-execution-role).
+ Darüber hinaus sollten Sie Ihrer Ausführungsrolle die erforderlichen Berechtigungen für den Zugriff auf den Standardspeicher gewähren, von dem Amazon S3 S3-Bucket verwendet wird JumpStart. Dieser Zugriff ist erforderlich, um vortrainierte Modellartefakte in zu speichern und abzurufen. JumpStart Um Zugriff auf diesen Amazon-S3-Bucket zu gewähren, müssen Sie eine neue benutzerdefinierte Inline-Richtlinie für Ihre Ausführungsrolle erstellen.

  Hier ist eine Beispielrichtlinie, die Sie in Ihrem JSON-Editor verwenden können, wenn Sie AutoML-Feintuning-Jobs in `us-west-2` konfigurieren:

  *JumpStartDie Bucket-Namen folgen einem vordefinierten Muster, das von der abhängt. AWS-Regionen Sie müssen den Namen des Buckets entsprechend anpassen.* 

  ```
  {
      "Sid": "Statement1",
      "Effect": "Allow",
      "Action": [
          "s3:GetObject",
          "s3:PutObject",
          "s3:ListBucket"
      ],
      "Resource": [
          "arn:aws:s3:::jumpstart-cache-prod-{{us-west-2}}",
          "arn:aws:s3:::jumpstart-cache-prod-{{us-west-2/*}}"
      ]
  }
  ```

Sobald dies erledigt ist, können Sie den ARN dieser Ausführungsrolle in Autopilot-API-Anfragen verwenden.

## Erforderliche Parameter
<a name="autopilot-llms-finetuning-api-required-params"></a>

Wenn Sie `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)` aufrufen, um ein Autopilot-Experiment zur Optimierung von LLMs zu erstellen, müssen Sie die folgenden Werte angeben:
+ Einen `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)`, um den Namen Ihres Auftrags anzugeben. Der Name sollte vom Typ `string` sein und mindestens 1 Zeichen und höchstens 32 Zeichen lang sein.
+ Mindestens einen `[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)` vom Typ `training` innerhalb von `[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)`. Dieser Kanal gibt den Namen des Amazon-S3-Buckets an, in dem sich Ihr Fine-Tuning-Datensatz befindet. Sie haben die Möglichkeit, einen `validation`skanal zu definieren. Wenn kein Validierungskanal bereitgestellt wird und eine `ValidationFraction` in der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) konfiguriert ist, wird dieser Anteil verwendet, um den Trainingsdatensatz nach dem Zufallsprinzip in Trainings- und Validierungssätze aufzuteilen. Darüber hinaus können Sie den Inhaltstyp (CSV- oder Parquet-Dateien) für den Datensatz angeben.
+ Ein `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` vom Typ `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)`, mit dem Sie die Einstellungen Ihres Trainingsjobs zur Optimierung konfigurieren können.

  Insbesondere können Sie den Namen des Basismodells für die Feinabstimmung in dem Feld `BaseModelName` angeben. Eine Liste der vortrainierten Modelle, die für die Feinabstimmung in Amazon SageMaker Autopilot verfügbar sind, finden Sie unter. [Unterstützt große Sprachmodelle für die Feinabstimmung](autopilot-llms-finetuning-models.md)
+ Ein `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)` um den Amazon S3-Ausgabepfad zum Speichern der Artefakte Ihres AutoML-Auftrags anzugeben.
+ Ein `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)`, zur Angabe der ARN der Rolle, die für den Zugriff auf Ihre Daten verwendet wird.

Im Folgenden finden Sie ein Beispiel für das vollständige Anforderungsformat, das bei einem API-Aufruf `CreateAutoMLJobV2` zur Feinabstimmung eines (`Falcon7BInstruct`-)Modells verwendet wird.

```
{
   "AutoMLJobName": "<job_name>",
   "AutoMLJobInputDataConfig": [ 
      { 
         "ChannelType": "training",
         "CompressionType": "None",
         "ContentType": "text/csv", 
         "DataSource": { 
            "S3DataSource": { 
               "S3DataType": "S3Prefix",
               "S3Uri": "s3://<bucket_name>/<input_data>.csv"
            }
         }
      }
   ],
  "OutputDataConfig": {
      "S3OutputPath": "s3://<bucket_name>/output",
      "KmsKeyId": "arn:aws:kms:<region>:<account_id>:key/<key_value>"
   },
   "RoleArn":"arn:aws:iam::<account_id>:role/<sagemaker_execution_role_name>",
   "AutoMLProblemTypeConfig": {
        "TextGenerationJobConfig": {
            "BaseModelName": "Falcon7BInstruct"
       }
   }
}
```

Alle anderen Parameter sind optional.

## Optionale Parameter
<a name="autopilot-llms-finetuning-api-optional-params"></a>

Die folgenden Abschnitte enthalten Einzelheiten zu einigen optionalen Parametern, die Sie an Ihren AutoML-Job zur Feinabstimmung übergeben können.

### So spezifizieren Sie die Trainings- und Validierungsdatensätze eines AutoML-Auftrags
<a name="autopilot-llms-finetuning-data-training-or-validation"></a>

Sie können Ihren eigenen Validierungsdatensatz und ein benutzerdefiniertes Datenteilungsverhältnis angeben oder den Datensatz automatisch von Autopilot teilen lassen.

Jedes [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)Objekt (siehe der erforderliche Parameter [Auto MLJob InputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)) hat einen`ChannelType`, der entweder auf `training` oder `validation` Werte gesetzt werden kann, die angeben, wie die Daten bei der Erstellung eines Modells für maschinelles Lernen verwendet werden sollen.

Es muss mindestens eine Datenquelle bereitgestellt werden, und es sind maximal zwei Datenquellen zulässig: eine für Trainingsdaten und eine für Validierungsdaten. Wie Sie die Daten in Trainings- und Validierungsdatensätze aufteilen, hängt davon ab, ob Sie über eine oder zwei Datenquellen verfügen. 
+ Wenn Sie nur über **eine Datenquelle** verfügen, wird die `ChannelType` standardmäßig auf `training` eingestellt und muss diesen Wert haben.
  + Wenn der Wert `ValidationFraction` in [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) nicht festgelegt ist, werden standardmäßig 0,2 (20%) der Daten aus dieser Quelle für die Validierung verwendet. 
  + Wenn für `ValidationFraction` ein Wert zwischen 0 und 1 festgelegt wird, wird der Datensatz anhand des angegebenen Wertes aufgeteilt. Dabei gibt der Wert den Anteil des Datensatzes an, der für die Validierung verwendet wird.
+ Wenn Sie über **zwei Datenquellen** verfügen, muss der `ChannelType` für eines der `AutoMLJobChannel` Objekte auf `training` gesetzt werden, den Standardwert. Der `ChannelType` der anderen Datenquelle muss auf `validation` gesetzt werden. Die beiden Datenquellen müssen dasselbe Format haben, entweder CSV oder Parquet, und dasselbe Schema. In diesem Fall dürfen Sie den Wert für `ValidationFraction` nicht festlegen, da alle Daten aus jeder Quelle entweder für das Training oder für die Validierung verwendet werden. Wenn dieser Wert festgelegt wird, verursacht dies einen Fehler.

### So aktivieren Sie die automatische Bereitstellung
<a name="autopilot-llms-finetuning-auto-model-deployment"></a>

Mit Autopilot können Sie Ihr optimiertes Modell automatisch auf einem Endpunkt bereitstellen. Um die automatische Bereitstellung für Ihr optimiertes Modell zu ermöglichen, fügen Sie der AutoML-Jobanfrage eine `[ModelDeployConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-ModelDeployConfig)` hinzu. Dies ermöglicht die Bereitstellung Ihres fein abgestimmten Modells auf einem SageMaker KI-Endpunkt. Im Folgenden finden Sie die verfügbaren Konfigurationen für die Anpassung.
+ Damit Autopilot den Endpunktnamen generieren kann, stellen Sie `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)` auf `True` ein.
+ Um Ihren eigenen Namen für den Endpunkt anzugeben, legen Sie `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents) to False and provide a name of your choice in [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)` fest.

### So legen Sie die EULA-Akzeptanz bei der Optimierung eines Modells mithilfe der AutoML-API fest
<a name="autopilot-llms-finetuning-set-eula"></a>

Bei Modellen, für die vor der Optimierung die Annahme einer Endbenutzer-Lizenzvereinbarung erforderlich ist, können Sie die EULA akzeptieren, indem Sie bei der Konfiguration von `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` das Attribut `AcceptEula` der `[ModelAccessConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelAccessConfig.html)` in `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` auf `True` setzen.

### Hyperparameter festlegen, um den Lernprozess eines Modells zu optimieren
<a name="autopilot-llms-finetuning-set-hyperparameters"></a>

Sie können den Lernprozess Ihres Textgenerierungsmodells optimieren, indem Sie bei der Konfiguration von `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` die Hyperparameterwerte im Attribut `TextGenerationHyperParameters` von `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` festlegen.

Der Autopilot ermöglicht die Einstellung von vier gemeinsamen Hyperparametern für alle Modelle.
+ `epochCount`: Dieser Wert sollte eine Zeichenfolge sein, die einen ganzzahligen Wert im Bereich von `1` bis `10` enthält.
+ `batchSize`: Dieser Wert sollte eine Zeichenfolge sein, die einen ganzzahligen Wert im Bereich von `1` bis `64` enthält.
+ `learningRate`: Dieser Wert sollte eine Zeichenfolge sein, die einen Gleitkommawert im Bereich von `0` bis `1` enthält.
+ `learningRateWarmupSteps`: Dieser Wert sollte eine Zeichenfolge sein, die einen ganzzahligen Wert im Bereich von `0` bis `250` enthält.

Weitere Informationen zu den einzelnen Hyperparametern finden Sie unter [Hyperparameter zur Optimierung des Lernprozesses Ihrer Textgenerierungsmodelle](autopilot-llms-finetuning-hyperparameters.md).

Das folgende JSON-Beispiel zeigt ein `TextGenerationHyperParameters` Feld, das an das übergeben wird, TextGenerationJobConfig in dem alle vier Hyperparameter konfiguriert sind.

```
"AutoMLProblemTypeConfig": {
  "TextGenerationJobConfig": {
    "BaseModelName": "Falcon7B",
    "TextGenerationHyperParameters": {"epochCount":"5", "learningRate":"0.000001", "batchSize": "32", "learningRateWarmupSteps": "10"}
  }
}
```