Paralelismo de tensores - 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 tensores

El paralelismo de tensores es un tipo de paralelismo de modelos en el que las ponderaciones, gradientes y estados del optimizador específicos del modelo se dividen entre los dispositivos. A diferencia del paralelismo por canalización, que mantiene intactos las ponderaciones individuales pero divide el conjunto de ponderaciones, el paralelismo de tensores divide las ponderaciones individuales. Por lo general, esto implica el cálculo distribuido de operaciones, módulos o capas específicos del modelo.

El paralelismo tensorial es necesario en los casos en los que un único parámetro consume la mayor parte de la GPU memoria (por ejemplo, tablas de incrustación grandes con un gran tamaño de vocabulario o una capa softmax grande con un gran número de clases). En este caso, tratar este gran tensor u operación como una unidad atómica es ineficiente e impide equilibrar la carga de memoria.

El paralelismo de tensores también es útil para modelos extremadamente grandes en los que una canalización pura simplemente no es suficiente. Por ejemplo, con los modelos GPT a escala -3 que requieren particionar en decenas de instancias, una canalización de microlotes pura es ineficiente porque la profundidad de la tubería es demasiado alta y la sobrecarga se vuelve prohibitivamente grande.

nota

El paralelismo tensorial está disponible en la biblioteca de paralelismo de modelos, versión 1.6.0 y versiones posteriores. PyTorch SageMaker