PyTorch AutoSP: compiler-bazirani alat automatski pretvara training kod u sequence-parallel za 100k+ token kontekste
PyTorch je 29. travnja 2026. objavio AutoSP — compiler-bazirani alat unutar DeepSpeed/DeepCompile koji automatski pretvara standardni single-GPU transformer training kod u sequence-parallel varijantu. Eliminira potrebu za ručnim implementiranjem token partitioninga i komunikacijskih collective operacija za treniranje LLM-ova s 100k+ token kontekstom. Razvili ga UIUC SSAIL Lab, Anyscale i Snowflake.
Ovaj članak generiran je uz pomoć umjetne inteligencije na temelju primarnih izvora.
PyTorch tim je 29. travnja 2026. zajedno s istraživačima iz UIUC SSAIL Laba, Anyscalea i Snowflakea objavio AutoSP — compiler-bazirani alat unutar DeepSpeed/DeepCompile ekosustava koji automatski pretvara standardni single-GPU transformer training kod u sequence-parallel varijantu. Cilj: omogućiti treniranje LLM-ova s ekstremno dugim kontekstom (100k+ tokena) bez ručnog implementiranja distribuiranog koda.
Problem koji AutoSP rješava
Treniranje LLM-ova s dugim kontekstom zahtijeva podjelu sekvence preko više GPU-a (sequence parallelism, SP), jer aktivacije transformera skaliraju kvadratno s duljinom konteksta i lako uzrokuju out-of-memory greške. Postojeća rješenja (RingFlashAttention, DeepSpeed-Ulysses) zahtijevaju ručno prepisivanje training koda — token partitioning, communication collectives, komplicirana attention masking.
AutoSP automatizira sve to: korisnik piše standardni transformer kod, a compiler ga pretvara u SP-aware varijantu.
Kako se uključuje?
Tri linije konfiguracije u DeepSpeed configu:
config = {
"compile": {
"deepcompile": True,
"passes": ["autosp"]
},
"sequence_parallel_size": 4,
"zero_optimization": {"stage": 1}, # AutoSP kompozira sa ZeRO 0/1
...
}
Plus utility prepare_auto_sp_inputs() za pripremu ulaza. Strategija ispod haube koristi DeepSpeed-Ulysses arhitekturu — konstantni komunikacijski overhead s rastom broja GPU-a na NVLink/fat-tree mrežama, skalira do broja attention heads (npr. 32 heads u 7-8B modelima).
Sequence-Aware Activation Checkpointing
AutoSP donosi i SAC — custom checkpointing strategiju optimiziranu za long-context training. Za razliku od konzervativne PyTorch 2.0 max-flow min-cut formulacije, SAC iskorištava specifičnu FLOP dinamiku dugih konteksta — oslobađa intermediate aktivacije iz cheap-to-compute operatora i rekompozira ih u backward passu. Trade-off: marginalno smanjuje throughput, ali čini još duži kontekst feasible.
Rezultati
Testirano na 8× A100-80GB SXM nodes (PyTorch 2.7, CUDA 12.8) s Llama 3.1 modelima različitih veličina:
- Maksimalna trainable sequence length raste značajno pri istim resursima
- Runtime overhead minimalan u odnosu na ručno pisane RingFlashAttention i DeepSpeed-Ulysses baselineove
End-to-end primjeri (uključujući Llama 3.1 8B) dostupni su u github.com/deepspeedai/DeepSpeedExamples/tree/master/benchmarks/autosp.
Ograničenja
Trenutno AutoSP zahtijeva single compilable artifact (cijeli transformer mora biti compilan kao jedan blok) i ne dopušta graph break-ove unutar modela. Tim navodi proširenje za graph-break otpornost kao slijedeći korak.
Česta pitanja
- Što AutoSP radi?
- Automatski pretvara standardni single-GPU transformer training kod u sequence-parallel (SP) kod koji omogućuje treniranje LLM-ova s kontekstom 100k+ tokena preko više GPU-a. Eliminira ručni token partitioning i komunikacijske collective operacije, integriran je s DeepSpeed/DeepCompile.
- Kako se uključuje?
- U DeepSpeed config postavite `'deepcompile': True`, dodajte `'passes': ['autosp']`, koristite `prepare_auto_sp_inputs()` utility i postavite `'sequence_parallel_size'`. Kompozira se s ZeRO stage 0/1.
- Kakva je performansa u odnosu na ručno pisani SP?
- Na 8× A100-80GB s Llama 3.1 modelima, AutoSP postiže usporediv throughput s ručno pisanim RingFlashAttention i DeepSpeed-Ulysses implementacijama, uz minimalan runtime overhead. Maksimalna trainable sequence length značajno raste pri istim resursima.
Izvori
📬 AI vijesti u tvoj inbox
Dnevni digest po tvojoj mjeri — biraš teme, izvore i ritam. Odjava jednim klikom.