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 experto
Un modelo de mezcla de expertos (MoE) es un tipo de modelo de transformador que emplea un enfoque disperso, lo que facilita el entrenamiento en comparación con los tradicionales modelos densos de entrenamiento. En esta arquitectura de red neuronal de MoE, solo se utiliza para cada entrada un subconjunto de los componentes del modelo, denominados expertos. Este enfoque ofrece varias ventajas, como un entrenamiento más eficiente y una inferencia más rápida, incluso con un tamaño de modelo mayor. Es decir, con el mismo presupuesto de computación para entrenar un modelo denso completo, puede adaptarse a un modelo o conjunto de datos mayor al utilizar MoE.
Un modelo MoE consta de varios expertos, cada uno de los cuales consiste en una red neuronal, normalmente una red de retroalimentación (). FFN Una red de puertas llamada router determina qué tokens se envían a cada experto. Estos expertos se especializan en procesar aspectos específicos de los datos de entrada, lo que permite que el modelo se entrene más rápido, se reduzcan los costos de cómputo y, al mismo tiempo, se logre la misma calidad de rendimiento que su modelo denso homólogo. Para obtener más información sobre Mixture of Experts en general, consulte el blog Applying Mixture of Experts in LLM Architectures en
El paralelismo experto es un tipo de paralelismo que permite dividir a los expertos de un modelo MoE entre dispositivos. GPU
SMPLa v2 se integra con NVIDIAMegatron
Los modelos Hugging Face Transformer son compatibles SMP con el paralelismo experto
SMPActualmente, v2 ofrece soporte experto de paralelismo para los siguientes modelos de transformadores Hugging Face.
Configuración de paralelismo experto
Para expert_parallel_degree
, seleccione un valor de grado de paralelismo experto. El valor debe dividir en partes iguales el número de unidades del GPUs clúster. Por ejemplo, para fragmentar el modelo mientras usas una instancia con 8GPUs, elige 2, 4 u 8. Te recomendamos que comiences con un número pequeño y lo aumentes gradualmente hasta que el modelo quepa en la GPU memoria.
En los siguientes fragmentos de código se muestra cómo añadir el módulo de SMP inicialización torch.sagemaker.init()
a su script de formación y cómo configurar el diccionario de SMP configuración con el JSON formato adecuado para el lanzador de tareas de formación, siguiendo el proceso de dos pasos introducido 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 FSDPexpert_parallel_degree
, consulte SMPv2: parámetros de configuración de las funciones principales.
nota
Puede utilizar el paralelismo experto con Paralelismo híbrido de datos particionados. Tenga en cuenta que el paralelismo experto no es compatible actualmente con el paralelismo de tensores.
nota
Esta función de entrenamiento experto en paralelismo está disponible en la siguiente combinación de bibliotecas de SageMaker y la biblioteca: PyTorch
-
SMPv2.3.0 y versiones posteriores
-
SageMaker Python SDK v2.214.4 y versiones posteriores
-
PyTorch v2.2.0 y versiones posteriores
En el script de entrenamiento
Como parte del paso 1, inicialice el script con torch.sagemaker.init()
para activar la SMP v2 y empaquetar el modelo con el torch.sagemaker.transformAPI, añadiendo el config
parámetro al MoE para activar el API MoE. En el siguiente fragmento de código se muestra cómo activar el SMP MoE para la clase AutoModelForCausalLM
de modelo genérico mediante la configuración de un modelo de transformador de MoE mediante el from_config
método de entrenamiento desde cero o el from_pretrained
método de ajuste. Para obtener más información sobre la clase, consulte. SMP MoEConfig
torch.sagemaker.moe.moe_config.MoEConfig
# Import the torch.sagemaker.transform API and initialize. import torch.sagemaker as tsm tsm.init() # Import transformers AutoModelForCausalLM class. from transformers import AutoModelForCausalLM # Import the SMP-implementation of MoE configuration class. from torch.sagemaker.moe.moe_config import MoEConfig # Define a transformer model with an MoE model configuration model = AutoModelForCausalLM.from_config(
MoEModelConfig
) # Wrap it by torch.sagemaker.transform with the SMP MoE configuration. model = tsm.transform( model, config=MoEConfig( smp_moe=True
, random_seed=12345
, moe_load_balancing="sinkhorn
", global_token_shuffle=False
, moe_all_to_all_dispatcher=True
, moe_aux_loss_coeff=0.001
, moe_z_loss_coeff=0.001
) )
Configuración de la SMP
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 "expert_parallel_degree":
8
}