

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.

# XGBoost-Algorithmus mit Amazon AI SageMaker
<a name="xgboost"></a>

[XGBoost](https://github.com/dmlc/xgboost) (eXtreme Gradient Boosting) ist eine beliebte und effiziente Open-Source-Implementierung eines Baumalgorithmus mit Gradient Boosting. Gradient Boosting ist ein überwachter Lernalgorithmus, der versucht, eine Zielvariable genau vorherzusagen, indem mehrere Schätzungen aus einer Menge einfacherer Modelle kombiniert werden. Der XGBoost-Algorithmus schneidet bei Wettbewerben im Bereich Machine Learning aus den folgenden Gründen gut ab:
+ Er bietet einen robusten Umgang mit einer Vielzahl von Datentypen, Beziehungen und Verteilungen.
+ Er ermöglicht die Optimierung einer Vielzahl von Hyperparametern.

Sie können XGBoost für Regressions-, Binär- und Multiclass-Klassifizierungs- und Ranglistenprobleme verwenden. 

Es gibt zwei Anwendungsmöglichkeiten für die neue Version des XGBoost-Algorithmus:
+ Ein in Amazon SageMaker AI integrierter Algorithmus.
+ als Framework zum Ausführen von Trainingsskripten in Ihren lokalen Umgebungen.

Diese Implementierung bietet einen kleineren Speicherbedarf, eine bessere Protokollierung, eine verbesserte Hyperparameter-Validierung und einen größeren Satz von Metriken als die ursprünglichen Versionen. Sie bietet auch einen XGBoost `estimator`, der ein Trainingsskript in einer verwalteten XGBoost-Umgebung ausführt. Die aktuelle Version von SageMaker AI XGBoost basiert auf den ursprünglichen XGBoost-Versionen 1.0, 1.2, 1.3, 1.5, 1.7 und 3.0.

Weitere Informationen zum Amazon SageMaker AI XGBoost-Algorithmus finden Sie in den folgenden Blogbeiträgen:
+ [Wir stellen den Open-Source-Amazon SageMaker AI XGBoost-Algorithmuscontainer vor](https://aws.amazon.com/blogs/machine-learning/introducing-the-open-source-amazon-sagemaker-xgboost-algorithm-container/)
+ [Amazon SageMaker AI XGBoost bietet jetzt vollständig verteiltes GPU-Training](https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-xgboost-now-offers-fully-distributed-gpu-training/)

## Unterstützte Versionen
<a name="xgboost-supported-versions"></a>

Weitere Informationen finden Sie in unseren [Support-Richtlinien](https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-support-policy.html#pre-built-containers-support-policy-ml-framework).
+ Framework-Modus (Open Source): 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1, 3.0-5
+ Algorithmusmodus: 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1, 3.0-5

**Warnung**  
Aufgrund der erforderlichen Rechenkapazität ist Version 3.0-5 von SageMaker AI XGBoost zu Trainings- oder Inferenzzwecken nicht mit GPU-Instances aus der P3-Instanzfamilie kompatibel.

**Warnung**  
Aufgrund der Paketkompatibilität unterstützt Version 3.0-5 von AI XGBoost keinen Debugger. SageMaker SageMaker 

**Warnung**  
Aufgrund der erforderlichen Rechenkapazität ist Version 1.7-1 von SageMaker AI XGBoost zu Trainings- oder Inferenzzwecken nicht mit GPU-Instances aus der P2-Instanzfamilie kompatibel.

**Warnung**  
Netzwerkisolationsmodus: Führen Sie kein Upgrade von Pip über Version 25.2 hinaus durch. Neuere Versionen versuchen möglicherweise, während der Modulinstallation Setuptools von PyPI abzurufen.

**Wichtig**  
Wenn Sie den SageMaker AI XGBoost-Image-URI abrufen, verwenden Sie nicht `:latest` oder `:1` für das Image-URI-Tag. Sie müssen einen der folgenden angeben[Unterstützte Versionen](#xgboost-supported-versions), um den SageMaker AI-managed XGBoost-Container mit der nativen XGBoost-Paketversion auszuwählen, die Sie verwenden möchten. [Informationen zur Paketversion, die in die SageMaker AI XGBoost-Container migriert wurde, finden Sie unter Docker-Registrierungspfade und Beispielcode.](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html) Wählen Sie dann Ihre AWS-Region aus und navigieren Sie zum Abschnitt **XGBoost** (Algorithmus).

**Warnung**  
Die XGBoost-Versionen 0.90 sind veraltet. Der Support für Sicherheitsupdates oder Bugfixes für XGBoost 0.90 wird eingestellt. Wir empfehlen Ihnen dringend, die XGBoost-Version auf eine der neueren Versionen zu aktualisieren.

**Anmerkung**  
XGBoost v1.1 wird auf KI nicht unterstützt. SageMaker XGBoost 1.1 ist nicht mehr in der Lage, Vorhersagen auszuführen, wenn die Testeingabe weniger Features hat als die Trainingsdaten in den LIBSVM-Eingaben. Diese Funktion wurde in XGBoost v1.2 wiederhergestellt. Erwägen Sie die Verwendung von SageMaker AI XGBoost 1.2-2 oder höher.

**Anmerkung**  
Sie können XGBoost v1.0-1 verwenden, diese Version wird jedoch nicht offiziell unterstützt.

## EC2-Instance-Empfehlung für den XGBoost-Algorithmus
<a name="Instance-XGBoost"></a>

SageMaker AI XGBoost unterstützt CPU- und GPU-Training und Inferenz. Die Instance-Empfehlungen hängen von den Trainings- und Inferenzanforderungen sowie von der Version des XGBoost-Algorithmus ab. Wählen Sie eine der folgenden Optionen aus, um mehr Informationen zu erhalten:
+ [CPU-Training](#Instance-XGBoost-training-cpu)
+ [GPU-Training](#Instance-XGBoost-training-gpu)
+ [Verteilte GPU-Training](#Instance-XGBoost-distributed-training-cpu)
+ [Verteiltes GPU-Training](#Instance-XGBoost-distributed-training-gpu)
+ [Inferenz](#Instance-XGBoost-inference)

### Training
<a name="Instance-XGBoost-training"></a>

Der SageMaker AI XGBoost-Algorithmus unterstützt CPU- und GPU-Training.

#### CPU-Training
<a name="Instance-XGBoost-training-cpu"></a>

SageMaker AI XGBoost 1.0-1 oder früher trainiert nur mit CPUs. Es handelt sich um einen speichergebundenen Algorithmus (im Gegensatz zu einem rechnergebundenen). Daher ist eine Allzweck-Datenverarbeitungs-Instance (z. B. M5) die bessere Wahl gegenüber einer rechneroptimierten Instance (z. B. C4). Des Weiteren empfehlen wir, dass Sie in ausgewählten Instances genügend Gesamtspeicher zur Verfügung haben, um das Trainingsdaten aufzunehmen. Diese Version unterstützt die Verwendung von Festplattenspeicher zur Verarbeitung von Daten, die nicht in den Hauptspeicher passen. Dies ist ein Ergebnis des Feature Out-of-Core, das im libsvm-Eingabemodus verfügbar ist. Trotzdem verlangsamt das Schreiben von Cache-Dateien auf die Festplatte die Verarbeitungszeit des Algorithmus. 

#### GPU-Training
<a name="Instance-XGBoost-training-gpu"></a>

SageMaker AI XGBoost Version 1.2-2 oder höher unterstützt GPU-Training. Trotz höherer Kosten pro Instance trainieren GPUs schneller und sind damit kostengünstiger. 

SageMaker AI XGBoost Version 1.2-2 oder höher unterstützt die GPU-Instanzfamilien P2, P3, G4dn und G5.

SageMaker AI XGBoost Version 1.7-1 oder höher unterstützt die GPU-Instanzfamilien P3, G4dn und G5. Beachten Sie, dass Version 1.7-1 oder höher aufgrund von Rechenkapazitätsanforderungen die P2-Instance-Familie nicht unterstützt.

SageMaker AI XGBoost Version 3.0-5 oder höher unterstützt die G4dn- und G5-GPU-Instanzfamilien. Beachten Sie, dass Version 3.0-5 oder höher aufgrund von Rechenkapazitätsanforderungen die P3-Instanzfamilie nicht unterstützt.

So nutzen Sie die Vorteile des GPU-Trainings:
+ Geben Sie den Instanztyp als eine der GPU-Instanzen an (z. B. G4dn) 
+ Stellen Sie den Hyperparameter `tree_method` in Ihrem vorhandenen XGBoost-Skript auf `gpu_hist`

### Verteilte Trainings
<a name="Instance-XGBoost-distributed-training"></a>

SageMaker AI XGBoost unterstützt CPU- und GPU-Instanzen für verteiltes Training.

#### Verteilte GPU-Training
<a name="Instance-XGBoost-distributed-training-cpu"></a>

Um das CPU-Training auf mehreren Instances auszuführen, setzen Sie den `instance_count` Parameter für die Schätzfunktion auf einen Wert größer als eins. Die Eingabedaten müssen auf die Gesamtzahl der Instances aufgeteilt werden. 

##### Teilen Sie die Eingabedaten auf mehrere Instances auf
<a name="Instance-XGBoost-distributed-training-divide-data"></a>

Teilen Sie die Eingabedaten mithilfe der folgenden Schritte auf:

1. Teilen Sie die Eingabedaten in kleinere Dateien auf. Die Anzahl der Dateien sollte mindestens der Anzahl der Instances entsprechen, die für verteilte Trainings verwendet werden. Durch die Verwendung mehrerer kleinerer Dateien im Gegensatz zu einer großen Datei wird auch die Zeit für das Herunterladen von Daten für den Trainingsauftrag verringert.

1. Stellen Sie bei der Erstellung Ihres [TrainingInput](https://sagemaker.readthedocs.io/en/stable/api/utility/inputs.html)den Verteilungsparameter auf ein. `ShardedByS3Key` Damit erhält jede Instanz ungefähr die *1/n*Anzahl der Dateien in S3, wenn im Trainingsjob *n* Instanzen angegeben sind.

#### Verteiltes GPU-Training
<a name="Instance-XGBoost-distributed-training-gpu"></a>

Sie können verteilte Trainings entweder mit einer oder mehreren GPU-Instances verwenden.

**Verteiltes Training mit Einzel-GPU-Instances **

SageMaker Die AI XGBoost-Versionen 1.2-2 bis 1.3-1 unterstützen nur das Training mit einer GPU-Instanz. Das bedeutet, dass selbst wenn Sie eine Multi-GPU-Instance auswählen, nur eine GPU pro Instance verwendet wird.

In folgenden Fällen müssen Sie Ihre Eingabedaten auf die Gesamtzahl der Instances aufteilen: 
+ Sie verwenden die XGBoost-Versionen 1.2-2 bis 1.3-1.
+ Sie benötigen keine Multi-GPU-Instances.

 Weitere Informationen finden Sie unter [Teilen Sie die Eingabedaten auf mehrere Instances auf](#Instance-XGBoost-distributed-training-divide-data).

**Anmerkung**  
Die Versionen 1.2-2 bis 1.3-1 von SageMaker AI XGBoost verwenden nur eine GPU pro Instanz, selbst wenn Sie eine Multi-GPU-Instanz wählen.

**Verteilte Trainings mit Einzel-GPU-Instances **

[Ab Version 1.5-1 bietet SageMaker AI XGBoost verteiltes GPU-Training mit Dask an.](https://www.dask.org/) Mit Dask können Sie alle GPUs nutzen, wenn Sie eine oder mehrere Multi-GPU-Instances verwenden. Dask funktioniert auch bei der Verwendung von Single-GPU-Instances. 

Trainieren Sie mit Dask und gehen Sie dazu wie folgt vor:

1. Lassen Sie den `distribution` Parameter entweder in Ihrem weg oder setzen Sie ihn auf. [TrainingInput](https://sagemaker.readthedocs.io/en/stable/api/utility/inputs.html)`FullyReplicated`

1. Stellen Sie bei der Definition Ihrer Hyperparameter `use_dask_gpu_training` bis `"true"` ein.

**Wichtig**  
Das verteilte Training mit Dask unterstützt nur die Eingabeformate CSV und Parquet. Wenn Sie andere Datenformate wie LIBSVM oder PROTOBUF verwenden, schlägt der Trainingsauftrag fehl.   
Stellen Sie bei Parquet-Daten sicher, dass die Spaltennamen als Zeichenfolgen gespeichert werden. Spalten, die Namen anderer Datentypen haben, können nicht geladen werden.

**Wichtig**  
Das verteilte Training mit Dask unterstützt den Pipe-Modus nicht. Wenn der Pipe-Modus angegeben ist, schlägt der Trainingsauftrag fehl.

Beim Training von SageMaker AI XGBoost mit Dask sind einige Überlegungen zu beachten. Achten Sie darauf, Ihre Daten in kleinere Dateien aufzuteilen. Dask liest jede Parquet-Datei als Partition. Für jede GPU gibt es einen Dask-Worker. Daher sollte die Anzahl der Dateien größer sein als die Gesamtzahl der GPUs (Anzahl der Instances x Anzahl der GPUs pro Instance). Eine sehr große Anzahl von Dateien kann auch die Leistung beeinträchtigen. Weitere Informationen finden Sie unter [Bewährte Methoden für Dask](https://docs.dask.org/en/stable/best-practices.html).

#### Variationen in der Ausgabe
<a name="Instance-XGBoost-distributed-training-output"></a>

Der angegebene `tree_method` Hyperparameter bestimmt den Algorithmus, der für die XGBoost-Training verwendet wird. Bei den Baummethoden `approx`, `hist` und `gpu_hist` handelt es sich allesamt um Näherungsmethoden, bei denen das Skizzieren zur Quantilberechnung verwendet wird. Weitere Informationen finden Sie unter [Baummethoden](https://xgboost.readthedocs.io/en/stable/treemethod.html) in der MySQL-Dokumentation. Beim Skizzieren handelt es sich um einen Näherungsalgorithmus. Daher ist mit Abweichungen im Modell zu rechnen, die von Faktoren wie der Anzahl der Mitarbeiter abhängen, die für verteilte Trainings ausgewählt wurden. Die Signifikanz der Variation ist datenabhängig.

### Inferenz
<a name="Instance-XGBoost-inference"></a>

SageMaker AI XGBoost unterstützt CPU- und GPU-Instanzen für Inferenz. Informationen zu den Instance-Typen für Inferenz finden Sie unter [Amazon SageMaker AI ML Instance Types](https://aws.amazon.com/sagemaker/pricing/).