

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Paralelismo de dados híbridos compartilhados
<a name="model-parallel-core-features-v2-sharded-data-parallelism"></a>

O *paralelismo de dados fragmentados* é uma técnica de treinamento distribuído que economiza memória e divide o estado de um modelo (parâmetros do modelo, gradientes e estados do otimizador) em dispositivos. Isso ajuda você a ajustar um modelo maior ou a aumentar o tamanho do lote usando a memória liberada da GPU. A biblioteca SMP oferece a capacidade de executar paralelismo de dados fragmentados com o PyTorch Fully Sharded Data Parallel (FSDP). PyTorch FSDP, por padrão, fragmentos em todo o conjunto de fragmentos que estão sendo usados. GPUs [No SMP v2, a biblioteca oferece esse paralelismo de dados fragmentados além do PyTorch FSDP, estendendo a fragmentação PyTorch híbrida (`HYBRID_SHARD`), que é uma das estratégias de fragmentação fornecidas pelo FSDP:,,,. PyTorch ](https://pytorch.org/docs/stable/fsdp.html#torch.distributed.fsdp.ShardingStrategy) `FULL_SHARD` `SHARD_GRAD_OP` `HYBRID_SHARD` `_HYBRID_SHARD_ZERO2` Estender a fragmentação híbrida dessa maneira ajuda a implementar, scale-aware-sharding conforme descrito no blog [Escalonamento quase linear do treinamento de modelos gigantes para FSDP](https://www.amazon.science/blog/near-linear-scaling-of-gigantic-model-training-on-aws). AWS PyTorch

A biblioteca SMP facilita o uso `HYBRID_SHARD` e `_HYBRID_SHARD_ZERO2` abrange qualquer número configurável de GPUs, estendendo o PyTorch FSDP nativo que suporta fragmentação em um único nó () ou em todos ()`HYBRID_SHARD`. GPUs `FULL_SHARD` PyTorch As chamadas FSDP podem permanecer como estão, e você só precisa adicionar o `hybrid_shard_degree` argumento à configuração SMP, conforme mostrado no exemplo de código a seguir. Você não precisa alterar o valor do `sharding_strategy` argumento no invólucro do PyTorch FSDP em torno do seu modelo. PyTorch Você pode passar `ShardingStrategy.HYBRID_SHARD` como valor. De outro modo, a biblioteca de SMP substitui a estratégia no script e a define como `ShardingStrategy.HYBRID_SHARD`, se você especificar um valor igual ou maior que 2 para o parâmetro `hybrid_shard_degree`.

Os trechos de código a seguir mostram como adicionar o módulo de inicialização do SMP `torch.sagemaker.init()` ao seu script de treinamento e como configurar o dicionário de configuração do SMP no formato JSON para o inicializador de tarefas de treinamento, seguindo o processo de duas etapas apresentado em [Use a biblioteca de paralelismo de SageMaker modelos v2](model-parallel-use-api-v2.md). Você não precisa fazer nenhuma alteração no PyTorch modelo ou na configuração do [PyTorch FSDP.](https://pytorch.org/docs/stable/fsdp.html#module-torch.distributed.fsdp) Para obter mais informações sobre o parâmetro `hybrid_shard_degree`, consulte [Parâmetros de configuração do atributo principal do SMP v2](distributed-model-parallel-v2-reference.md#distributed-model-parallel-v2-reference-init-config).

**Dicionário de configurações do SMP**

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

**No script de treinamento**

```
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 = ...
```