

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.

# Parallelität hybrider fragmentierter Daten
<a name="model-parallel-core-features-v2-sharded-data-parallelism"></a>

*Parallelität fragmentierter Daten* ist eine verteilte Trainingstechnik, die Speicher spart und den Zustand eines Modells (Modellparameter, Steigungen und Optimierer-Zustände) auf mehrere Geräte aufteilt. Auf diese Weise können Sie mithilfe des freigewordenen GPU-Speichers ein größeres Modell aufnehmen oder die Batchgröße erhöhen. Die SMP-Bibliothek bietet die Möglichkeit, Sharded Data Parallelität mit Fully Sharded Data Parallel (FSDP) auszuführen. PyTorch PyTorch FSDP verteilt standardmäßig alle verwendeten GPUs. In SMP v2 bietet die Bibliothek diese Shard-Datenparallelität zusätzlich zu FSDP, indem sie PyTorch Hybrid Sharding (`HYBRID_SHARD`) erweitert, was eine der von PyTorch FSDP bereitgestellten [Sharding-Strategien](https://pytorch.org/docs/stable/fsdp.html#torch.distributed.fsdp.ShardingStrategy) ist:,,,. PyTorch `FULL_SHARD` `SHARD_GRAD_OP` `HYBRID_SHARD` `_HYBRID_SHARD_ZERO2` [Die Erweiterung des Hybrid-Shardings auf diese Weise hilft bei der Implementierung von Scale-Aware-Sharding, wie im Blog Skalierung von gigantischen Modellen auf FSDP beschrieben. Near-linear AWS](https://www.amazon.science/blog/near-linear-scaling-of-gigantic-model-training-on-aws) PyTorch

Die SMP-Bibliothek macht die Verwendung einfach `HYBRID_SHARD` und ermöglicht eine beliebige konfigurierbare Anzahl von GPUs`_HYBRID_SHARD_ZERO2`. Sie erweitert das native PyTorch FSDP, das Sharding für einen einzelnen Knoten () oder für alle GPUs () unterstützt. `HYBRID_SHARD` `FULL_SHARD` PyTorch FSDP-Aufrufe können unverändert bleiben, und Sie müssen nur das `hybrid_shard_degree` Argument zur SMP-Konfiguration hinzufügen, wie im folgenden Codebeispiel gezeigt. Sie müssen den Wert des `sharding_strategy` Arguments im PyTorch FSDP-Wrapper, der Ihr Modell umgibt, nicht ändern. PyTorch Sie können `ShardingStrategy.HYBRID_SHARD` als Wert übergeben. Alternativ überschreibt die SMP-Bibliothek die Strategie im Skript und setzt sie auf `ShardingStrategy.HYBRID_SHARD`, wenn Sie für den `hybrid_shard_degree`-Parameter einen Wert gleich oder größer als 2 angeben.

Die folgenden Codefragmente zeigen, wie Sie das SMP-Initialisierungsmodul `torch.sagemaker.init()` zu Ihrem Trainingsskript hinzufügen und das SMP-Konfigurationswörterbuch im JSON-Format für den Trainingsjob-Launcher einrichten. Dabei folgen Sie dem in [Verwenden Sie die SageMaker Modellparallelitätsbibliothek v2](model-parallel-use-api-v2.md) beschriebenen zweistufigen Prozess. Sie müssen keine Änderungen an Ihrem PyTorch Modell oder Ihrer [PyTorch FSDP-Konfiguration](https://pytorch.org/docs/stable/fsdp.html#module-torch.distributed.fsdp) vornehmen. Weitere Informationen zum Parameter `hybrid_shard_degree` erhalten Sie unter [Konfigurationsparameter für die Kernfunktionen von SMP v2](distributed-model-parallel-v2-reference.md#distributed-model-parallel-v2-reference-init-config).

**SMP-Konfigurationswörterbuch**

```
{ "hybrid_shard_degree": 16 }
```

**Im Trainingsskript**

```
import torch.sagemaker as tsm
tsm.init()

# Set up a PyTorch model
model = ...

# Wrap the PyTorch model using the PyTorch FSDP module
model = FSDP(
    model,
    ...
)

# Optimizer needs to be created after FSDP wrapper
optimizer = ...
```