noticias

Los costos de investigación de DeepMind son tan altos que un artículo ICML costó 12,9 millones de dólares

2024-08-03

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Nuevo informe de sabiduría

Editor: Qiao Yang

[Introducción a la Nueva Sabiduría] Un artículo aceptado recientemente por DeepMind en ICML 2024 expuso completamente su "tiranía" respaldada por Google. Un artículo estima que la potencia informática y el costo necesarios para esta investigación son aproximadamente el 15% del entrenamiento previo de Llama 3, y el costo puede alcanzar los 12,9 millones de dólares estadounidenses.

¿Cuánto presupuesto experimental se necesita para publicar un artículo de conferencia?

Recientemente, DeepMind publicó un estudio que llevó a cabo una extensa investigación empírica de varios detalles algorítmicos y arquitectónicos, como la selección de parámetros y optimizadores, cuando LLM se amplía.

Este documento ha sido aceptado por ICML 2024.


Dirección del artículo: https://arxiv.org/abs/2407.05872

El artículo de 63 páginas cubre decenas de miles de modelos y las alternativas incluyen tres optimizadores, cuatro esquemas de parametrización, varias suposiciones de alineación, más de una docena de tasas de aprendizaje y 14 tamaños de parámetros de hasta 26,8 mil millones.


4 esquemas de parametrización que requieren experimentación

Con solo escuchar estos números, no es difícil saber que esta investigación debe involucrar una gran cantidad de experimentos de ejecución de modelos.

Un lector leal, para comprobar su comprensión del contenido del artículo, contó todos los experimentos realizados en él y estimó el coste de replicar el artículo.


Sumando toda la potencia informática necesaria, en realidad alcanzó la asombrosa cifra de 12,9 millones de dólares.

Ha llegado el momento de poner a prueba sus habilidades básicas. Si es el líder de un equipo de investigación, estimar la potencia informática requerida y los costos basándose en el plan experimental es una habilidad esencial.

Entonces sigamos este artículo del blog para descubrir dónde exactamente se quemaron estos más de 10 millones de dólares estadounidenses.

Información sobre la arquitectura del transformador.

El Apéndice C del documento proporciona varias configuraciones detalladas sobre el algoritmo y la arquitectura del modelo, como el uso de arquitectura de solo decodificador, normalización de capas, función de activación GeLU, sin abandono, tokenizador T5, tamaño de lote de 256, uso de paralelismo FSDP, etc.


Estadísticas de escala de parámetros de modelos experimentales.

A través de información arquitectónica, podemos estimar aproximadamente los FLOPS necesarios para cada token en entrenamiento, denominado M.

Dado que el artículo no describe ningún mecanismo GQA/MQA, se supone que Rkv=1, además de lseq=512, Dhead=128, L=8 (profundidad), V=32101 (vocabulario del segmentador de palabras).

Los parámetros totales del modelo se pueden expresar como:

Por tanto, podemos obtener la fórmula de cálculo de M:

De forma predeterminada, la cantidad de tokens procesados ​​por experimento (TPE) es 5k (cantidad de pasos de entrenamiento) × 256 (tamaño de lote) × 512 (lseq), que es aproximadamente 6,5536e9.

def M(d: int, L=8, l_seq=512, V=32101) -> int:     return 6*d * (L*(12*d + l_seq) + V) TPE = 50000 * 256 * 512

experimento de alineación

En el experimento de alineación de hipótesis, el resultado óptimo obtenido del escaneo de la tasa de aprendizaje posterior se usó directamente en lugar de un escaneo de la tasa de aprendizaje por separado, por lo que el cálculo del costo en este paso es relativamente simple:


def alignment() -> int:     return 4 * TPE * sum(M(d) for d in [1024,2048,4096]) # >>> f'{alignment():.3E}' # '3.733E+20' # >>> cost_of_run(alignment())[0] # 888.81395400704

Si el H100 cuesta $3 por hora de operación, el costo del experimento de alineación es aproximadamente $888.

tasa de aprendizaje

Subproblema: experimento de pérdida de evaluación óptima (pérdida de evaluación)

La Tabla E1 del artículo registra todas las combinaciones posibles de optimizador × esquema de parametrización × tamaño del modelo × configuraciones experimentales en 6 tamaños de modelo, y realiza escaneos de tasa de aprendizaje básicos respectivamente para obtener la mejor pérdida de evaluación.

En total, incluye las siguientes variables experimentales:

- Dimensión del modelo D∈3072,4096,6144,8192,12288,16384

- 4 opciones de parametrización

- 3 optimizadores, de los cuales SGD tiene solo 5 configuraciones experimentales, Adam y Adam+Param Scaling tienen 7 configuraciones experimentales

Supongamos que todos los experimentos aquí se realizan de forma independiente y que los resultados no se replican desde otros lugares. Por lo tanto, si todos se ejecutan una vez, existe una estimación del límite superior del costo:


H = [1,2,4,6,8,12,16,20,24,32,48,64,96,128] D = [h * 128 for h in H] def table_e1() -> int:   sets_x_optims = 5 + 7 + 7   return 4 * sets_x_optims * TPE * sum(M(d) for d in D[-6:]) # >>> f'{table_e1():.3E}';cost_of_run(table_e1()) # '1.634E+23' # (388955.9991064986, 16206.499962770775)

El coste de esta parte se acerca a los 400.000 dólares, lo que todavía está dentro del rango aceptable, pero ya resulta muy caro para la mayoría de los presupuestos académicos.

La Tabla E1 proporciona la mejor pérdida de evaluación, pero no describe la estrategia de escaneo de LR y la cantidad de puntos en cada imagen también es diferente.


Como no obtuvimos una respuesta del autor del artículo, no podemos determinar el mecanismo específico, por lo que asumimos que cada pérdida mejor evaluada ha pasado por 15 experimentos (la inspección visual encontró que el número de puntos en cada línea es aproximadamente 10 a 15).

parámetro β

Según la Sección 4.2 del artículo, la tasa de aprendizaje también implica la selección de dos hiperparámetros: β y γ.

Si solo hay parámetros β, se denomina configuración "LR+predeterminada":


Esta parte incluye un optimizador 3×, parametrización 4×, además de experimentos separados en capas globales y únicas (GlobalLR, Perlayer-fullalign) y un número desconocido de escaneos LR:


def beta_only() -> int:   return 3*4*2*PpL * TPE * sum(M(d) for d in D) # 7.988E+23 (1902022.3291813303, 79250.93038255542)

Como se puede ver en la fórmula, el costo es similar al del experimento épsilon a continuación, ambos de 2 millones de dólares estadounidenses.

parámetro γ

En comparación con el experimento del parámetro β, existen dos diferencias detalladas en esta parte.

En primer lugar, además de las configuraciones GlobalLR y Perlayer-fullalign, también es necesario agregar la configuración Perlayer-noalign.


En segundo lugar, se realiza una búsqueda de hiperparámetros 3D (γ_1, γ_h, γ_L+1) solo para d=1024=b, por lo que hay 800 ejecuciones adicionales.


La fórmula de cálculo después de combinar los dos es:


El coste estimado de esta parte se acerca al experimento del mapa de calor épsilon de Adam, alrededor de 3,2 millones de dólares.

def gamma_expts() -> int:   return 36*TPE * (800*M(1024) + PpL*sum(M(d) for d in D)) # gamma_expts 1.354E+24 (3224397.534237257, 134349.8972598857)

Parámetros Epsilon del optimizador Adam

El experimento del parámetro Epsilon descrito en la Sección 4.3 del artículo representa la mayor parte del cálculo.


De acuerdo con la inferencia anterior, se prueban 15 tasas de aprendizaje diferentes (puntos por línea) cada vez para encontrar la mejor pérdida de evaluación, luego la cantidad de cálculo del gráfico de cambio de parámetro épsilon que se muestra en la Figura 6 es:


Los cálculos revelaron una factura sucintamente costosa de 2 millones de dólares.

PpL = 15  # unprincipled estimate def eps_variants() -> int:   return 4 * 6 * PpL * TPE * sum(M(d) for d in D) ''' >>> f'{eps_variants():.3E}';cost_of_run(eps_variants()) '7.988E+23' (1902022.3291813303, 79250.93038255542) '''

Además del gráfico de líneas en el lado izquierdo de la Figura 6, también están los resultados del mapa de calor en el Apéndice F.


Suponiendo que cada valor de bloque es el resultado de 13 escaneos de tasa de aprendizaje, la cantidad de cálculo de esta parte es:


Se descubrió que el costo de obtener solo estos 8 mapas de calor era de 3,2 millones de dólares. Además, dado que modelamos el número de escaneos LR como una constante de 13, este número probablemente sea menor que el costo real.

def eps_heatmaps() -> int:    # eps-type * eps-val * parameterizations * LR range * ...   return 2 * 6 * 4 * 13 * TPE * sum(M(d) for d in D[-6:]) ''' >>> f'{eps_heatmaps():.3E}';cost_of_run(eps_heatmaps()) '1.341E+24' (3193533.466348094, 133063.89443117057) '''

caída de peso

El experimento de caída de peso (Apéndice G) es relativamente fácil de entender. Se realiza un escaneo LR básico en el esquema de parametrización 4 × y todos los parámetros:


Es mucho más barato que el experimento épsilon, que equivale al salario anual de un ingeniero del Área de la Bahía: 317.000 dólares.

def weight_decay() -> int:   return 4 * PpL * TPE * sum(M(d) for d in D) ''' >>> f'{weight_decay():.3E}'; cost_of_run(weight_decay()) '1.331E+23' (317003.7215302217, 13208.488397092571) '''

Optimizador de adaptadores

Esta parte del experimento se describe en detalle en el Apéndice C3 y tiene como objetivo probar si el escalado de parámetros Adafactor y Adam+ tienen mecanismos de escalado de ancho similares.


Hay gráficos de 2×4, donde cada optimizador recopila 11 puntos de datos, por lo que la fórmula de cálculo es:


Se agregaron otros $188.000 a la factura.

def adafactor() -> int:   return 2*2*4*PpL*TPE*sum(M(d) for d in D[:11]) ''' >>> f'{adafactor():.3E}'; cost_of_run(adafactor()) '7.918E+22' (188532.80765144504, 7855.533652143543) '''

Optimización del cálculo

El documento intenta cambiar el número de cabezas de atención H, con la esperanza de encontrar la configuración de cálculo óptima, pero implica cambios en el tamaño del paso y el conjunto de datos, por lo que esta parte no utiliza descripciones de fórmulas. El código de cálculo es el siguiente:

def P(d: int, L=8, V=32101) -> int:     return 2 * d * (6*L*d + V) def compute_optimal():   indices_50k = (14, 14, 12)   return 4*PpL*sum([     TPE * sum(sum( M(d) for d in D[:i] ) for i in indices_50k),         20  * sum(P(d)*M(d) for d in D[:11]) *3,   ]) # compute_optim 7.518E+23 (1790104.1799513847, 74587.67416464102)

Resumir

Resuma la potencia informática y los costos de los experimentos anteriores:

alignment       3.733E+20 (888.81395400704, 37.033914750293334) table_e1        1.634E+23 (388955.9991064986, 16206.499962770775) eps_variants    7.988E+23 (1902022.3291813303, 79250.93038255542) eps_heatmaps    1.341E+24 (3193533.466348094, 133063.89443117057) beta_only       7.988E+23 (1902022.3291813303, 79250.93038255542) gamma_expts     1.354E+24 (3224397.534237257, 134349.8972598857) weight_decay    1.331E+23 (317003.7215302217, 13208.488397092571) adafactor       7.918E+22 (188532.80765144504, 7855.533652143543) compute_optim   7.518E+23 (1790104.1799513847, 74587.67416464102)

Se descubrió que la complejidad computacional de todo el artículo era de 5,42e24 FLOPS.

Este número es solo el 15% de la cantidad de cálculo de entrenamiento de Llama 3. Si se ejecuta en un clúster H100 de 100.000 tarjetas, solo se necesitan 2 días para completar todos los experimentos.

total_flops=5.421E+24 rental price: US$12.9M h100 node months required: 746.9595590938408 (sanity check) D=[128, 256, 512, 768, 1024, 1536, 2048, 2560, 3072, 4096, 6144, 8192, 12288, 16384] (sanity check) model sizes: ['0.00979B', '0.0227B', '0.058B', '0.106B', '0.166B', '0.325B', '0.534B', '0.794B', '1.1B', '1.87B', '4.02B', '6.97B', '15.3B', '26.8B'] (sanity check) M/6P: ['63.4%', '68.5%', '75.3%', '79.7%', '82.8%', '86.8%', '89.3%', '91.0%', '92.2%', '93.9%', '95.7%', '96.7%', '97.7%', '98.3%']

Sin embargo, si no lo medimos a partir de los estándares de formación previa del LLM y solo consideramos este artículo de DeepMind como una investigación académica, esta cantidad de cálculo parece bastante extravagante.

Si el laboratorio sólo dispone de 10 H100, sería imposible realizar una investigación de esta magnitud.

Un laboratorio grande con 100 H100 podría completar todos los experimentos anteriores en unos pocos años.

Referencias:

https://152334h.github.io/blog/scaling-exponents/

https://news.ycombinator.com/item?id=41107721

https://arxiv.org/abs/2407.05872