Paralelismo de contexto - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paralelismo de contexto

El paralelismo de contexto es un tipo de paralelismo del modelo que divide las activaciones del modelo a lo largo de la dimensión de la secuencia. A diferencia de otras técnicas de paralelismo secuencial, que solo dividen la dimensión y, el paralelismo contextual divide las entradas de la red LayerNorm y todas las RMSNorm activaciones intermedias a lo largo de la dimensión secuencial.

SMPLa v2 se integra con Transformer Engine para lograr el paralelismo contextual y se puede usar junto con y. PyTorch FSDP SMP Paralelismo de tensores Puede activar los tres paralelismos simultáneamente para el entrenamiento de modelos. El paralelismo contextual es beneficioso para entrenar modelos con grandes tamaños de activación y longitudes de secuencia largas. Acelera el cálculo de las puntuaciones de atención y las salidas de atención, ya que permite que cada dispositivo calcule solo una parte de las puntuaciones y las salidas a lo largo de la dimensión secuencial. Si bien el paralelismo tensorial también acelera el cálculo mediante la partición a lo largo de la dimensión oculta, la ventaja del paralelismo contextual es más sustancial, ya que los requisitos computacionales aumentan cuadráticamente con la dimensión secuencial.

Modelos de Hugging Face Transformer compatibles SMP con el paralelismo contextual

SMPActualmente, v2 ofrece soporte de paralelismo de contexto para los siguientes modelos de transformadores Hugging Face.

  • GPT-NeoX

  • Llama 2 y Llama 3

Configure el paralelismo de contexto

context_parallel_degree parameterEstablézcalo en un valor que divida uniformemente el número de GPUs en el clúster. Por ejemplo, si tiene una GPU instancia de 8, utilice 2, 4 u 8 paracontext_parallel_degree. Recomendamos empezar con un context_parallel_degree valor pequeño y aumentarlo gradualmente hasta que el modelo quepa en la GPU memoria con la longitud de secuencia de entrada requerida.

En los siguientes fragmentos de código se muestra cómo añadir el módulo torch.sagemaker.init() de SMP inicialización al guion de formación y cómo configurar el diccionario de SMP configuración en el JSON formato adecuado para el lanzador de tareas de formación, siguiendo el proceso de dos pasos descrito en el presente documento. Utilice la biblioteca de paralelismo de SageMaker modelos v2 No es necesario realizar ningún cambio en el modelo o la configuración. PyTorch PyTorch FSDP Para obtener más información sobre el parámetro context_parallel_degree, consulte SMPv2: parámetros de configuración de las funciones principales.

En tu guion de entrenamiento

Como parte del paso 1, inicialice su script con torch.sagemaker.init() para activar la SMP v2 y empaquetar su modelo con la torch.sagemaker.transformAPI.

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

SMPconfiguración

Como parte del paso 2, añada el siguiente parámetro al diccionario SMP de configuración del SageMaker PyTorch estimador.

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