Paralelismo de contexto - Amazon SageMaker

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 contexto

O paralelismo de contexto é um tipo de paralelismo de modelo que divide as ativações do modelo ao longo da dimensão da sequência. Ao contrário de outras técnicas de paralelismo de sequência, que apenas particionam o LayerNorm eRMSNorm, o paralelismo de contexto particiona as entradas da rede e todas as ativações intermediárias ao longo da dimensão da sequência.

SMPA v2 se integra ao Transformer Engine para paralelismo de contexto e pode ser usada em conjunto com e. PyTorch FSDP SMP Paralelismo de tensores Você pode ativar os três paralelismos simultaneamente para o treinamento do modelo. O paralelismo de contexto é benéfico para modelos de treinamento com grandes tamanhos de ativação e longos comprimentos de sequência. Ele acelera o cálculo das pontuações e saídas de atenção, permitindo que cada dispositivo calcule apenas uma parte das pontuações e saídas ao longo da dimensão da sequência. Embora o paralelismo de tensores também acelere a computação por meio do particionamento ao longo da dimensão oculta, a vantagem do paralelismo de contexto é mais substancial, pois os requisitos computacionais aumentam quadraticamente com a dimensão da sequência.

Modelos Hugging Face Transformer compatíveis com paralelismo especializado SMP

SMPAtualmente, a v2 oferece suporte ao paralelismo de contexto para os seguintes modelos de transformadores Hugging Face.

  • GPT-NeoX

  • Llama 2 e Llama 3

Configure o paralelismo especializado

context_parallel_degree parameterDefina o como um valor que divida uniformemente o número de GPUs em seu cluster. Por exemplo, se você tiver uma GPU instância 8, use 2, 4 ou 8 paracontext_parallel_degree. Recomendamos começar com um context_parallel_degree valor pequeno e aumentá-lo gradualmente até que o modelo caiba na GPU memória com o comprimento de sequência de entrada necessário.

Os trechos de código a seguir mostram como adicionar o módulo de SMP inicialização torch.sagemaker.init() ao seu script de treinamento e configurar o dicionário de SMP configuração no JSON formato para o lançador de tarefas de treinamento, seguindo o processo de duas etapas apresentado em. Comece com a biblioteca de paralelismo de SageMaker modelos v2 Você não precisa fazer nenhuma alteração em seu PyTorch modelo ou PyTorch FSDPconfiguração. Para obter mais informações sobre o parâmetro context_parallel_degree, consulte SMPparâmetros de configuração do recurso principal v2.

Em seu roteiro de treinamento

Como parte da Etapa 1, inicialize seu script com torch.sagemaker.init() para ativar a SMP v2 e encapsular seu modelo com o. torch.sagemaker.transform API

import torch.sagemaker as tsm tsm.init() from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_config(..) model = tsm.transform(model)

SMPconfiguração

Como parte da Etapa 2, adicione o seguinte parâmetro ao dicionário SMP de configuração do SageMaker PyTorch estimador.

{ ..., # other SMP config parameters "context_parallel_degree": 2 }