Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

SageMaker Bewährte Methoden und Überlegungen zum Training Compiler

Fokusmodus
SageMaker Bewährte Methoden und Überlegungen zum Training Compiler - 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.

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.

Wichtig

Amazon Web Services (AWS) gibt bekannt, dass es keine neuen Releases oder Versionen von SageMaker Training Compiler geben wird. Sie können SageMaker Training Compiler weiterhin über die vorhandenen AWS Deep Learning Containers (DLCs) für SageMaker Schulungen verwenden. Es ist wichtig zu beachten, dass auf die vorhandenen DLCs Dateien zwar weiterhin zugegriffen werden kann, sie jedoch gemäß der Support-Richtlinie für AWS Deep Learning Containers Framework keine Patches oder Updates mehr erhalten. AWS

Lesen Sie die folgenden bewährten Methoden und Überlegungen zur Verwendung von SageMaker Training Compiler.

Bewährte Methoden

Verwenden Sie die folgenden Richtlinien, um die besten Ergebnisse zu erzielen, wenn Sie Trainingsjobs mit SageMaker Training Compiler ausführen.

Allgemeine bewährte Methoden
  • Achten Sie darauf, dass Sie Unterstützte Instance-Typen bzw. Getestete Modelle verwenden.

  • Wenn Sie in Ihrem Trainingsskript einen Tokenizer für ein NLP-Modell mithilfe der Hugging Face Transformers-Bibliothek erstellen, achten Sie darauf, eine statische Eingangstensorform zu verwenden, indem Sie padding='max_length' angeben. Verwenden Sie nicht padding='longest', da das Padding bis zur längsten Sequenz im Stapel die Tensorform für jede Trainings-Batch verändern kann. Die dynamische Eingabeform kann eine Neukompilierung des Modells einleiten und die Gesamttrainingsdauer verlängern. Weitere Informationen zu den Padding-Optionen der Transformers-Tokenizer finden Sie unter Padding und Abkürzen in der Dokumentation zu Hugging Face Transformers.

  • Messen Sie die GPU-Speicherauslastung, damit Sie die maximale Batch-Größe verwenden, die der GPU-Speicher aufnehmen kann. Amazon SageMaker Training Compiler reduziert den Speicherbedarf Ihres Modells während des Trainings, sodass Sie in der Regel einen größeren Speicherplatz batch_size in den GPU-Speicher aufnehmen können. Die Verwendung eines größeren batch_size führt zu einer besseren GPU-Auslastung und reduziert die Gesamttrainingsdauer.

    Wenn Sie die Batch-Größe anpassen, müssen Sie auch die learning_rate entsprechend anpassen. Wenn Sie z. B. die Batch-Größe um den Faktor k erhöhen, müssen Sie sie learning_rate linear anpassen (einfache Multiplikation mit k) oder Multiplikation mit der Quadratwurzel von k. Dies dient dazu, in weniger Trainingszeit dasselbe oder ein ähnliches Konvergenzverhalten zu erreichen. Weitere Informationen zu den für gängige Modelle getesteten batch_size finden Sie unter Getestete Modelle.

  • Um den mit Hilfe des Compilers beschleunigten Trainingsauftrag zu debuggen, aktivieren Sie die Markierung debug im Parameter compiler_config. Auf diese Weise kann SageMaker KI die Debugging-Protokolle in die Protokolle der SageMaker Trainingsjobs aufnehmen.

    huggingface_estimator=HuggingFace( ... compiler_config=TrainingCompilerConfig(debug=True) )

    Beachten Sie, dass es zu zusätzlichem Arbeitsaufwand führen kann, wenn Sie das vollständige Debuggen des Trainingsauftrags mit dem Compiler aktivieren.

Bewährte Methoden für PyTorch
  • Wenn Sie ein PyTorch Modell mitbringen und es überprüfen möchten, stellen Sie sicher, dass Sie die Modellspeicherfunktion von PyTorch /XLA verwenden, um Ihr Modell ordnungsgemäß zu überprüfen. Weitere Informationen zu dieser Funktion finden Sie torch_xla.core.xla_model.savein der Dokumentation zu XLA PyTorch Devices.

    Informationen zum Hinzufügen der Änderungen zu Ihrem PyTorch Skript finden Sie unter PyTorch Direkte Verwendung großer Sprachmodelle (ohne die Hugging Face Transformers Trainer-API).

    Weitere Informationen zur tatsächlichen Anwendung der Modellspeicherfunktion finden Sie im Trainingsblog Checkpoint Writing and Loading in the Hugging Face on PyTorch /XLA TPUs: Schneller und billiger.

  • Beachten Sie Folgendes, um die optimale Trainingszeit für das verteilte Training zu erreichen.

    • Verwenden Sie Instanzen mit mehreren GPUs statt Einzel-GPU-Instanzen. Eine einzelne ml.p3dn.24xlarge Instance hat z. B. eine kürzere Trainingszeit als 8 ml.p3.2xlarge Instances.

    • Verwenden Sie Instances mit EFA-Unterstützung wie ml.p3dn.24xlarge und ml.p4d.24xlarge. Diese Instance-Typen verfügen über eine höhere Netzwerkgeschwindigkeit und verringern die Trainingsdauer.

    • Passen Sie die preprocessing_num_workers Parameter für Datensätze so an, dass das Modelltraining nicht durch eine langsame Vorverarbeitung verzögert wird.

Überlegungen

Beachten Sie bei der Verwendung von SageMaker Training Compiler Folgendes.

Leistungseinbußen aufgrund von Protokollierung, Prüfpunkte und Profiling

  • Vermeiden Sie Protokollierung, Prüfpunkte und Profilerstellung von Modelltensoren, die zu expliziten Bewertungen führen. Sehen Sie sich das folgende Beispiel zur Codekompilierung an, um zu verstehen, was eine explizite Bewertung ist.

    a = b+c e = a+d

    Ein Compiler interpretiert den Code wie folgt und reduziert den Speicherbedarf für die Variable a:

    e = b+c+d

    Stellen Sie sich nun den folgenden Fall vor, wo der Code so verändert wird, dass eine Druckfunktion für die Variable a hinzugefügt wird.

    a = b+c e = a+d print(a)

    Der Compiler bewertet die Variable a wie folgt explizit.

    e = b+c+d a = b+c # Explicit evaluation print(a)

    Vermeiden Sie PyTorch beispielsweise die Verwendung von torch.tensor.items (), da dies zu expliziten Auswertungen führen könnte. Beim Deep Learning können solche expliziten Bewertungen zu Mehraufwand führen, da sie verschmolzene Operationen in einem Kompilierungsgraphen eines Modells unterbrechen und zu einer Neuberechnung der Tensoren führen.

    Wenn Sie das Modell während des Trainings mit SageMaker Training Compiler dennoch regelmäßig evaluieren möchten, empfehlen wir, die Protokollierung und das Checkpointen mit einer geringeren Frequenz durchzuführen, um den durch explizite Evaluierungen verursachten Mehraufwand zu reduzieren. Protokollieren Sie z. B. nur alle 10 Epochen anstatt bei jeder Epoche.

  • Die Kompilierung des Grafen erfolgt in den ersten Trainingsschritten. Daher ist davon auszugehen, dass die ersten Schritte außergewöhnlich langsam erfolgen. Dies sind jedoch einmalige Kompilierungskosten, die sich bei längerem Training ggf. wieder amortisieren, da die Kompilierung zukünftige Schritte erheblich beschleunigt. Der anfängliche Kompilierungsaufwand hängt von der Größe des Modells, der Größe der Eingangstensoren und der Verteilung der Eingangstensorformen ab.

Falsche Verwendung von PyTorch APIs /XLA bei direkter Verwendung PyTorch

PyTorch/XLA definiert einen Satz von, der einige der APIs vorhandenen Schulungen ersetzen soll. PyTorch APIs Wenn sie nicht richtig verwendet werden, schlägt das PyTorch Training fehl.

  • Einer der häufigsten Fehler beim Kompilieren eines PyTorch Modells ist auf einen falschen Gerätetyp für Operatoren und Tensoren zurückzuführen. Um ein PyTorch Modell korrekt zu kompilieren, stellen Sie sicher, dass Sie XLA-Geräte (xm.xla_device()) verwenden, anstatt CUDA zu verwenden oder CUDA-Geräte und XLA-Geräte zu mischen.

  • mark_step() ist ein Hindernis nur für XLA. Falsch eingestellt, stürzt der Trainingsauftrag ab.

  • PyTorch/XLA bietet zusätzliche verteilte Schulungen. APIs Wenn das nicht APIs richtig programmiert wird, werden Gradienten falsch erfasst, was zu einem Fehler bei der Trainingskonvergenz führt.

Informationen zur korrekten Einrichtung Ihres PyTorch Skripts und zur Vermeidung der oben genannten falschen API-Verwendungen finden Sie unter PyTorch Direkte Verwendung großer Sprachmodelle (ohne die Hugging Face Transformers Trainer-API).

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.