View a markdown version of this page

XGBoost-Algorithmus mit Amazon AI SageMaker - Amazon SageMaker KI

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

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:

Unterstützte Versionen

Weitere Informationen finden Sie in unseren Support-Richtlinien.

  • 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 angebenUnterstützte Versionen, 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. 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

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:

Training

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

CPU-Training

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

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

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

Verteilte GPU-Training

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

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.

  2. Stellen Sie bei der Erstellung Ihres TrainingInputden Verteilungsparameter auf ein. ShardedByS3Key Damit erhält jede Instanz ungefähr die 1/nAnzahl der Dateien in S3, wenn im Trainingsjob n Instanzen angegeben sind.

Verteiltes GPU-Training

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.

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

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

Variationen in der Ausgabe

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

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.