Puntos de referencia de aprendizaje profundo en GPU

Estamos constantemente entrenando modelos lingüísticos para nuestro trabajo. Nuestro equipo utiliza docenas de tarjetas de vídeo diferentes elegidas para diferentes tareas: en algún caso, necesitamos una potente estación DGX, y en otro, una tarjeta de juegos antigua como RTX 2080Ti es suficiente. Elegir la configuración de GPU óptima le ahorrará no solo tiempo de entrenamiento, sino también dinero.

Lo interesante es que hay muy pocos artículos en Internet con pruebas de GPU específicas para la velocidad de entrenamiento de modelos lingüísticos. En su mayoría, sólo se encuentran pruebas de inferencia. Cuando se lanzó el nuevo chip H100, el informe de NVidia afirmaba que era hasta nueve veces más rápido que el A100 en el entrenamiento, pero para nuestras tareas, la nueva tarjeta sólo era un 90% más rápida que la antigua. En comparación, nuestros proveedores de la nube tenían una diferencia de precio 2x entre estas GPUs, así que no tenía sentido cambiar a la nueva H100 para ahorrar dinero.

Además de eso, tomamos para una prueba una estación DGX, que consta de 8 tarjetas gráficas A100 80GB y cuesta 10 mil dólares al mes. Después de la prueba, se hizo evidente que la relación precio/rendimiento de esta estación no nos conviene en absoluto y por este dinero, podemos tomar 66 x RTX 3090, que en total será mucho más útil.

Nuestros modelos lingüísticos de traducción tienen hasta 500 millones de parámetros (entre 100 y 300 millones de media). Es posible que si aumentamos significativamente el número de parámetros, la relación precio/rendimiento de DGX sea mejor. Actualmente, no entrenamos grandes modelos lingüísticos que puedan traducir entre todos los idiomas en todas las variantes a la vez, sino que utilizamos modelos lingüísticos independientes para cada par de idiomas, por ejemplo inglés-alemán. Cada uno de estos modelos ocupa entre 120 y 300 Mb.

Hay que tener en cuenta que cada lengua tiene una cantidad diferente de datos en Internet, y mientras que, por ejemplo, para el español se pueden encontrar 500 millones de frases con traducción, para el tibetano no hay más de un millón. Por eso, los modelos para distintos idiomas se entrenan con un número diferente de parámetros y el resultado tiene una calidad de traducción distinta. Para crear un modelo de traducción del inglés al español, utilizamos un servidor con 4 x RTX 4500 y 256 GB de RAM. Al mismo tiempo, el idioma tibetano se puede entrenar en una RTX 2080 Ti con 16 GB de RAM, ya que no tiene sentido aumentar la complejidad de la red neuronal y, en consecuencia, ocupar un servidor más potente con una cantidad de datos pequeña.

Selección de procesadores gráficos y cifras teóricas

La formación del modelo lingüístico se llevó a cabo en nuestra plataforma interna Data Studio utilizando el marco OpenNMT-tf. Esta fase incluyó la preparación de los datos, el entrenamiento del modelo y la comparación del modelo con una traducción de referencia. El uso de FP16 en lugar de FP32 durante el entrenamiento nos permitió reducir considerablemente el tiempo de entrenamiento de los modelos lingüísticos sin degradar la calidad de la traducción, pero no todas nuestras GPU lo admitían.

Lo interesante es que hay muy pocos artículos en Internet con pruebas de GPU específicas para la velocidad de entrenamiento de modelos lingüísticos. En su mayoría, sólo se encuentran pruebas de inferencia. Cuando se lanzó el nuevo chip H100, el informe de NVidia afirmaba que era hasta nueve veces más rápido que el A100 en el entrenamiento, pero para nuestras tareas, la nueva tarjeta sólo era un 90% más rápida que la antigua. En comparación, nuestros proveedores de la nube tenían una diferencia de precio 2x entre estas GPUs, así que no tenía sentido cambiar a la nueva H100 para ahorrar dinero.

A la hora de elegir un procesador gráfico, lo normal es tener en cuenta parámetros como la potencia de procesamiento (TFLOPS), la memoria de vídeo (VRAM), la compatibilidad con bibliotecas y marcos de trabajo, el presupuesto y otros factores (tamaño y factor de forma de la tarjeta gráfica, requisitos de potencia, refrigeración y compatibilidad con el sistema). A la hora de entrenar los modelos de generación de texto, también hay que tener en cuenta que cada idioma consume una cantidad diferente de recursos. Por ejemplo, en las lenguas latinas se utiliza 1 byte para codificar un carácter, 2 bytes en las cirílicas y 3 bytes en las que contienen jeroglíficos. Saber qué características tendrá su tarjeta gráfica influye mucho en la velocidad del proceso de aprendizaje.

A la hora de entrenar los modelos en función de las GPU utilizadas, las tarjetas de vídeo se dividieron en dos grupos según el periodo de uso: las primeras tarjetas de vídeo, que se utilizaron para realizar las primeras mediciones de la velocidad de aprendizaje, y las tarjetas actualmente en uso. Las principales características de estas tarjetas gráficas pueden consultarse en la Tabla 1 y la Tabla 2, respectivamente.

Table 1 - Procesadores gráficos utilizados anteriormente y sus parámetros técnicos
 

Number of GPUsGPUVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Tesla V100-SXM2HBM2, 167.031.3316.31
2Tesla V100-SXM2HBM2, 327.031.3315.67
1RTX 4060 TiGDDR6, 88.922.0622.06
1Nvidia A40GDDR6, 488.637.4237.42
2Nvidia A40GDDR6, 968.637.4237.42
1Nvidia A100HBM2, 408.077.9719.49
1Nvidia A100HBM2, 808.077.9719.49
1Nvidia RTX A6000GDDR6, 488.638.7138.71
1Nvidia A10GDDR6, 248.631.2431.24
8Nvidia A10GDDR6, 1928.631.2431.24
1Nvidia H100HBM3, 809.0204.951.22


Notas
1. Con CUDA superior a 7.0, el uso de FP16 supondrá un aumento de la velocidad de entrenamiento, dependiendo de la versión de CUDA y de las características de la propia tarjeta gráfica.
2. Si la especificación de la tarjeta gráfica indica que la relación de rendimiento entre FP16 y FP32 es superior a 1:1, se garantizará que el uso de la precisión mixta aumente la velocidad de entrenamiento en la cantidad especificada en la especificación. Por ejemplo, para Quadro RTX 6000 el valor FP16 TFLOPS de 32,62 (2:1) acelerará el entrenamiento al menos dos veces (2,4 veces en la práctica).

Table 2 - Modelos de GPU utilizados actualmente y sus principales características
 

Number of GPUs in useGPUVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Quadro RTX 6000GDDR6, 247.532.6216.31
2Quadro RTX 6000GDDR6, 487.532.6216.31
4Quadro RTX 6000GDDR6, 967.532.6216.31
2Nvidia TITAN RTXGDDR6, 487.532.6216.31
4Nvidia RTX A4500GDDR6, 968.623.6523.65
1Nvidia GeForce RTX 3090GDDR6X, 248.635.5835.58
1Nvidia GeForce RTX 3070GDDR6, 88.620.3120.31

* - los valores para FP16,TFLOPS y FP32,TFLOPS se han tomado de las especificaciones por GPU

Proceso de formación y prueba de la GPU

Los modelos se entrenaron utilizando un conjunto de 18 GPU. En el proceso de entrenamiento de las redes neuronales, utilizamos numerosos pares de idiomas (más de cien idiomas). Durante el entrenamiento de nuestros pares de idiomas, se tomaron como base los siguientes parámetros de red neuronal:;

  • tamaño del vocabulario = 30 000
  • número de unidades = 768
  • capas = 6
  • cabezas = 16
  • dimensión interior = 4 096


En primer lugar, vamos a caracterizar las GPU pertenecientes al primer grupo basándonos en la Tabla 1. El tiempo en minutos y segundos empleado en entrenar el modelo a una velocidad aproximada de 1.000 pasos y un tamaño de lote múltiplo de 100.000 unidades se tomará como base para comparar los indicadores.

Destacamos que para el primer grupo, las mediciones de velocidad se realizaron con el uso del mecanismo de alineación y sólo utilizando FP32. Sin utilizar este mecanismo, la velocidad de aprendizaje en algunos servidores puede ser mucho mayor.

El mecanismo de alineación permite hacer coincidir las subcadenas del texto base y del traducido. Es necesario para traducir texto formateado, como páginas web, cuando una subcadena de una frase puede estar resaltada en un tipo de letra diferente y debe traducirse con el resaltado.

Teniendo en cuenta los parámetros mencionados de la red neuronal, el mejor tiempo de la primera tabla lo mostró la GPU Nvidia H100 con un tiempo de aprendizaje de 22 minutos, el tiempo intermedio lo mostró la GPU de la misma marca GeForce RTX 4060 Ti con un tiempo de aprendizaje de 72 minutos y el último lugar lo ocupó la GPU Tesla V100-SXM 2 con un tiempo de aprendizaje de 140 minutos.

También hubo ocho tarjetas Nvidia A10 en la prueba de GPU con una curva de aprendizaje de 20 minutos y 28 segundos, dos tarjetas Nvidia A40 con un tiempo de 56 minutos y dos tarjetas Tesla V100-SXM que registraron un tiempo de 86 minutos. La aplicación simultánea de varias tarjetas de la misma serie de GPU puede acelerar el proceso de entrenamiento de los modelos y mostrar casi el mismo tiempo con GPU de mayor capacidad, pero esta técnica puede no ser lo suficientemente racional desde el punto de vista financiero y de procedimiento. Los resultados de las mediciones de la velocidad de aprendizaje pueden observarse en la Tabla número 3.

Table 3 - Mediciones del tiempo de formación en los mapas gráficos utilizados anteriormente
 

Using the alignment mechanism
Effective batch size = 100 000
FP 32
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
8Nvidia A1020,286 250
1Nvidia H1002225 000
1A100 (80 Gb)4025 000
1A100 (40 Gb)5615 000
2Nvidia A405612 500
1RTX A600068,2512 500
1GeForce RTX 4060 Ti724 167
1Nvidia A4082,0812 500
2Tesla V100-SXM864 167
1Nvidia A10104,505 000
1Tesla V100-SXM21404 167


A continuación, vamos a realizar un análisis comparativo de los aceleradores gráficos actualmente en uso (Tabla 2). Para este grupo de procesadores gráficos, se realizaron mediciones de velocidad utilizando el mecanismo de alineación, así como utilizando FP16 y FP32. Las mediciones de velocidad incluyendo este mecanismo y la precisión mixta se presentarán a continuación en las Tablas 4 y 5 respectivamente.

Así, habiendo medido la velocidad de las GPUs a partir de esta tabla, podemos decir que el primer puesto se lo ha llevado la GPU de la serie RTX A4500 con un tiempo de entrenamiento de 31 minutos, pero hay que destacar que tal velocidad de entrenamiento de modelos se ha obtenido aumentando hasta 4 el número de unidades de la GPU utilizada. Sin tener en cuenta este hecho, la velocidad de entrenamiento de la GPU mencionada será mucho mayor, lo que la situará en el penúltimo lugar de la tabla final.

La GPU de la serie Quadro RTX 6000, con un tiempo de aprendizaje de 47 minutos, ocupa el segundo lugar. Cabe señalar que dicha velocidad de entrenamiento está inversamente condicionada por el número de unidades del procesador utilizado, que es igual a cuatro. El uso de una sola GPU de este tipo daría una pérdida de velocidad de unas 3,2 veces y, en consecuencia, sería de aproximadamente 153 minutos y la situaría en último lugar.

La tercera línea la ocupó la GPU de la serie TITAN RTX con un tiempo de 75 minutos y 85 segundos. Esta puntuación de velocidad de aprendizaje se debe al uso de 2 procesadores, lo que redujo el tiempo de entrenamiento del modelo.

El líder indiscutible en términos de velocidad de entrenamiento en el número de una unidad será sin duda la GPU GeForce RTX serie 3090, con un tiempo de 78 minutos y 26 segundos. El aumento del número de unidades de esta GPU acelerará la velocidad de entrenamiento del modelo, que superará claramente a todas las GPU mencionadas anteriormente. Los datos sobre las mediciones del tiempo de entrenamiento del modelo pueden verse en la Tabla 4.

Table 4 - Análisis comparativo de la velocidad de entrenamiento de modelos lingüísticos en GPU utilizadas anteriormente
 

Using the alignment mechanism
Effective batch size = 100 000
FP 32
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
4Nvidia RTX A4500315 000
4Quadro RTX 6000476 250
2Nvidia TITAN RTX75,856 250
1GeForce RTX 309078,266 250
2Quadro RTX 6000886 250
1GeForce RTX 3070104,172 000
1Quadro RTX 60001536 250


Las siguientes mediciones de velocidad de entrenamiento se realizaron utilizando FP16. En comparación con FP32, la semiprecisión permite reducir la cantidad de memoria consumida durante el entrenamiento del modelo y acelerar el cálculo en la GPU. La precisión de la representación será menor que con el uso de FP32.

Midiendo el tiempo de entrenamiento de los modelos utilizando FP32 de la tabla anterior, podemos decir que el tiempo de entrenamiento de la red neuronal se redujo casi dos veces. Basándonos en los resultados de la medición del rendimiento, podemos observar que las posiciones de las GPU en la Tabla 4 se mantuvieron sin grandes cambios. La tarjeta de la serie Quadro RTX 6000 pasó de la quinta posición a la sexta, superando a la GPU GeForce RTX 3090 en 96 segundos. Los números finales se muestran en la Tabla 5.

Table 5 - Análisis comparativo de la velocidad de entrenamiento de modelos lingüísticos en GPU utilizadas anteriormente
 

Using the alignment mechanism
Effective batch size = 100 000
FP 16
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
4Nvidia RTX A450015,8110 000
4Quadro RTX 600020,3412 500
2Nvidia TITAN RTX32,686 250
2Quadro RTX 600037,9310 000
1GeForce RTX 309038,8910 000
1GeForce RTX 307048,512 500
1Quadro RTX 600052,5610 000

Preguntas más frecuentes

¿Qué significa la GPU?

La GPU (del inglés graphics processing unit), o Unidad de Procesamiento Gráfico, es un componente especializado en el procesamiento de imágenes y gráficos, diseñado para manejar tareas complejas de manera eficiente. Su arquitectura paralela la hace ideal para realizar cálculos intensivos, como los requeridos en el entrenamiento de modelos de inteligencia artificial y aprendizaje profundo.

¿Cuál es la diferencia entre CPU y GPU?

Esta diferencia en su arquitectura y enfoque de procesamiento determina su uso en distintas aplicaciones. La CPU (Unidad Central de Procesamiento) es el cerebro del ordenador, optimizada para realizar una variedad de tareas de manera secuencial y con gran flexibilidad. En contraste, la GPU (Unidad de Procesamiento Gráfico) está diseñada para procesar grandes volúmenes de datos en paralelo, lo que la hace más eficiente en tareas específicas.

¿Qué GPU para la formación LLM?

La elección de la GPU dependerá del tamaño del modelo y los recursos disponibles para el entrenamiento. Las GPUs más recomendadas son las de la serie NVIDIA A100 y H100, RTX 3090 y RTX 4090.

¿Cuántos tipos de GPU hay?

Existen varios tipos de GPU, principalmente clasificadas en 2 categorías: integradas y dedicadas. Las GPUs integradas están incorporadas en el procesador y son adecuadas para tareas básicas y gráficos ligeros, mientras que las GPUs dedicadas son tarjetas independientes que ofrecen un rendimiento superior, ideales para juegos, edición de video y tareas de inteligencia artificial.

Le esperan lecturas más fascinantes

Reconocimiento de voz local: ¿Qué es?

Reconocimiento de voz local: ¿Qué es?

September 27, 2024

Evaluación de la importancia estadística en el sistema de traducción

Evaluación de la importancia estadística en el sistema de traducción

September 10, 2024

Localización para empresas

Localización para empresas

September 09, 2024

Contáctenos

0/250
* Indica campo obligatorio

Su privacidad es de suma importancia para nosotros; sus datos serán utilizados únicamente para fines de contacto.

Correo electrónico

Terminado

Su solicitud ha sido enviada con éxito

× 
Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site.

We also use third-party cookies that help us analyze how you use this website, store your preferences, and provide the content and advertisements that are relevant to you. These cookies will only be stored in your browser with your prior consent.

You can choose to enable or disable some or all of these cookies but disabling some of them may affect your browsing experience.

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Always Active

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Always Active

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Always Active

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Always Active

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.