🟡 🤖 Modelle Donnerstag, 30. April 2026 · 2 Min. Lesezeit ·

PyTorch AutoSP: compilierbasiertes Tool konvertiert Training-Code automatisch in Sequence-Parallel-Variante für 100k+-Token-Kontexte

Redaktionelle Illustration: Token-Verteilung über mehrere GPU-Kerne mit einem Compiler-Symbol

Am 29. April 2026 veröffentlichte PyTorch AutoSP — ein compilierbasiertes Tool im DeepSpeed/DeepCompile-Ökosystem, das Standard-Single-GPU-Transformer-Training-Code automatisch in eine Sequence-Parallel-Variante umwandelt. Es eliminiert die Notwendigkeit, Token-Partitionierung und kommunikative Collective-Operationen für das Training von LLMs mit 100k+-Token-Kontexten manuell zu implementieren. Entwickelt von UIUC SSAIL Lab, Anyscale und Snowflake.

Am 29. April 2026 veröffentlichte das PyTorch-Team gemeinsam mit Forschenden aus dem UIUC SSAIL Lab, Anyscale und Snowflake AutoSP — ein compilierbasiertes Tool im DeepSpeed/DeepCompile-Ökosystem, das Standard-Single-GPU-Transformer-Training-Code automatisch in eine Sequence-Parallel-Variante umwandelt. Ziel: das Training von LLMs mit extrem langen Kontexten (100k+ Token) ohne manuelle Implementierung von verteiltem Code zu ermöglichen.

Das Problem, das AutoSP löst

Das Training von LLMs mit langen Kontexten erfordert die Aufteilung von Sequenzen über mehrere GPUs (Sequence Parallelism, SP), da die Aktivierungen von Transformern quadratisch mit der Kontextlänge skalieren und leicht zu Out-of-Memory-Fehlern führen. Bestehende Lösungen (RingFlashAttention, DeepSpeed-Ulysses) erfordern das manuelle Umschreiben von Training-Code — Token-Partitionierung, Kommunikations-Collectives, komplexes Attention-Masking.

AutoSP automatisiert all das: Der Nutzer schreibt Standard-Transformer-Code, und der Compiler wandelt ihn in eine SP-aware Variante um.

Aktivierung

Drei Konfigurationszeilen in der DeepSpeed-Konfiguration:

config = {
    "compile": {
        "deepcompile": True,
        "passes": ["autosp"]
    },
    "sequence_parallel_size": 4,
    "zero_optimization": {"stage": 1},  # AutoSP kombiniert sich mit ZeRO 0/1
    ...
}

Dazu das Utility prepare_auto_sp_inputs() zur Vorbereitung der Eingaben. Die zugrundeliegende Strategie verwendet die DeepSpeed-Ulysses-Architektur — konstanter Kommunikations-Overhead beim Wachstum der GPU-Anzahl auf NVLink/Fat-Tree-Netzwerken, skalierbar bis zur Anzahl der Attention-Heads (z. B. 32 Heads in 7–8B-Modellen).

Sequence-Aware Activation Checkpointing

AutoSP bringt auch SAC — eine benutzerdefinierte Checkpointing-Strategie, die für Long-Context-Training optimiert ist. Im Gegensatz zur konservativen PyTorch-2.0-Max-Flow-Min-Cut-Formulierung nutzt SAC die spezifische FLOP-Dynamik langer Kontexte — es gibt Zwischenaktivierungen aus kostengünstigen Operatoren frei und rekompiliert sie im Backward-Pass. Kompromiss: marginale Reduktion des Durchsatzes, ermöglicht aber noch längere Kontexte.

Ergebnisse

Getestet auf 8× A100-80GB-SXM-Knoten (PyTorch 2.7, CUDA 12.8) mit Llama-3.1-Modellen verschiedener Größen:

  • Maximale trainierbare Sequenzlänge steigt deutlich bei gleichen Ressourcen
  • Runtime-Overhead minimal gegenüber handgeschriebenen RingFlashAttention- und DeepSpeed-Ulysses-Baselines

End-to-End-Beispiele (einschließlich Llama 3.1 8B) sind unter github.com/deepspeedai/DeepSpeedExamples/tree/master/benchmarks/autosp verfügbar.

Einschränkungen

Aktuell erfordert AutoSP ein einzelnes compilierbares Artefakt (der gesamte Transformer muss als ein Block kompiliert werden) und lässt keine Graph-Breaks innerhalb des Modells zu. Das Team nennt die Erweiterung der Graph-Break-Resilienz als nächsten Schritt.

Häufig gestellte Fragen

Was macht AutoSP?
Es konvertiert automatisch Standard-Single-GPU-Transformer-Training-Code in Sequence-Parallel-(SP-)Code, der das Training von LLMs mit 100k+-Token-Kontexten über mehrere GPUs ermöglicht. Eliminiert manuelles Token-Partitioning und kommunikative Collective-Operationen; in DeepSpeed/DeepCompile integriert.
Wie wird es aktiviert?
In der DeepSpeed-Konfiguration `'deepcompile': True` setzen, `'passes': ['autosp']` hinzufügen, das Utility `prepare_auto_sp_inputs()` verwenden und `'sequence_parallel_size'` setzen. Wird mit ZeRO Stage 0/1 kombiniert.
Wie ist die Leistung im Vergleich zu handgeschriebenem SP?
Auf 8× A100-80GB mit Llama-3.1-Modellen erreicht AutoSP einen mit handgeschriebenem RingFlashAttention und DeepSpeed-Ulysses vergleichbaren Durchsatz bei minimalem Runtime-Overhead. Die maximale trainierbare Sequenzlänge steigt bei gleichen Ressourcen deutlich.
🤖

Dieser Artikel wurde mithilfe von künstlicher Intelligenz aus Primärquellen erstellt.