Artículos · arXiv 2203.15556
Training Compute-Optimal Large Language Models
Resumen en tres líneas
- 🎯 Determinar el equilibrio óptimo entre los parámetros del modelo y los tokens de entrenamiento bajo un presupuesto de cómputo fijo.
- 🔧 Ajustar empíricamente leyes de escala en >400 ejecuciones de transformers usando envolventes de pérdida mínima, cortes de IsoFLOP y modelado paramétrico de pérdidas.
- 📈 Los parámetros y los tokens deben escalarse por igual (, ). El modelo Chinchilla de 70B entrenado con 1.4T de tokens iguala el presupuesto de cómputo de Gopher y alcanza el 67.6% en MMLU.
Resumen
Investigamos el tamaño óptimo de modelo y el número de tokens para entrenar un modelo de lenguaje basado en transformer bajo un presupuesto de cómputo determinado. Encontramos que los modelos de lenguaje grandes actuales están significativamente subentrenados, una consecuencia del enfoque reciente en escalar los modelos de lenguaje manteniendo constante la cantidad de datos de entrenamiento. Al entrenar más de 400 modelos de lenguaje que van desde 70 millones hasta más de 16 mil millones de parámetros sobre 5 a 500 mil millones de tokens, hallamos que para un entrenamiento óptimo en cómputo, el tamaño del modelo y la cantidad de tokens de entrenamiento deben escalarse por igual: por cada duplicación del tamaño del modelo, la cantidad de tokens de entrenamiento también debe duplicarse. Ponemos a prueba esta hipótesis entrenando un modelo predicho como óptimo en cómputo, Chinchilla, que utiliza el mismo presupuesto de cómputo que Gopher pero con 70B de parámetros y 4 más datos. Chinchilla supera de manera uniforme y significativa a Gopher (280B), GPT-3 (175B), Jurassic-1 (178B) y Megatron-Turing NLG (530B) en una amplia gama de tareas de evaluación downstream. Esto también implica que Chinchilla utiliza sustancialmente menos cómputo para fine-tuning e inferencia, facilitando enormemente su uso posterior. Como punto destacado, Chinchilla alcanza una precisión media state-of-the-art del 67.5% en el benchmark MMLU, una mejora de más del 7% sobre Gopher.
Resumen original (inglés)
We investigate the optimal model size and number of tokens for training a transformer language model under a given compute budget. We find that current large language models are significantly undertrained, a consequence of the recent focus on scaling language models whilst keeping the amount of training data constant. By training over 400 language models ranging from 70 million to over 16 billion parameters on 5 to 500 billion tokens, we find that for compute-optimal training, the model size and the number of training tokens should be scaled equally: for every doubling of model size the number of training tokens should also be doubled. We test this hypothesis by training a predicted compute-optimal model, Chinchilla, that uses the same compute budget as Gopher but with 70B parameters and 4 more more data. Chinchilla uniformly and significantly outperforms Gopher (280B), GPT-3 (175B), Jurassic-1 (178B), and Megatron-Turing NLG (530B) on a large range of downstream evaluation tasks. This also means that Chinchilla uses substantially less compute for fine-tuning and inference, greatly facilitating downstream usage. As a highlight, Chinchilla reaches a state-of-the-art average accuracy of 67.5% on the MMLU benchmark, greater than a 7% improvement over Gopher.
Guía de lectura
Problema y motivación
El trabajo previo (notablemente Kaplan et al., 2020) sugirió que cuando el cómputo aumenta, los parámetros del modelo deben escalarse agresivamente () mientras que la cantidad de tokens aumenta de forma mucho más lenta (). En consecuencia, modelos grandes como GPT-3 (175B), Jurassic-1 (178B), Gopher (280B) y MT-NLG (530B) se entrenaron de manera consistente con alrededor de 300 mil millones de tokens. Sin embargo, esto dejó a los modelos grandes significativamente subentrenados en relación con sus inversiones computacionales. Este trabajo revisita dicho balance: para un presupuesto de cómputo fijo , ¿cómo deben distribuirse el recuento de parámetros y la cantidad de tokens para minimizar la pérdida de test?
Ideas clave
- Escalado equivalente: Por cada duplicación de los parámetros del modelo, los tokens de entrenamiento también deben duplicarse (, ).
- Alineación del schedule de coseno: Los schedules de tasa de aprendizaje deben coincidir con el horizonte de entrenamiento real. Usar puntos intermedios de una ejecución que decae sobre un horizonte largo fijo (p. ej., 130B de tokens) sobreestima la pérdida para recuentos de tokens menores y sesga las estimaciones empíricas de escala.
- Eficiencia downstream: Entrenar un modelo más pequeño con sustancialmente más tokens produce una precisión idéntica o superior a la paridad de cómputo de preentrenamiento, al tiempo que reduce drásticamente la huella de memoria, los costos de fine-tuning y la latencia de inferencia.
Método (con las ecuaciones clave)
Los autores evalúan más de 400 modelos (de 70M a 16B de parámetros, entrenados con entre 5B y 500B de tokens) mediante tres estrategias complementarias:
Mínimo sobre curvas de entrenamiento: Variar el horizonte a lo largo de 4 duraciones para arquitecturas de modelo fijas. Extraer la envolvente de pérdida mínima por FLOP y ajustar leyes de potencia: obteniendo , .
Perfiles IsoFLOP: Fijar el recuento total de FLOP a lo largo de 9 presupuestos discretos ( a ) con decaimiento de coseno alineado con el horizonte. Ajustar parábolas sobre los recuentos de parámetros para encontrar los mínimos de pérdida, obteniendo , .
Ajuste paramétrico de la pérdida: Modelar la pérdida suavizada usando una descomposición de riesgo: donde representa la entropía del texto natural, representa la suboptimatilidad de la representación y captura la suboptimatilidad por parada temprana/datos finitos. Minimizar la pérdida de Huber en los residuos logarítmicos da , , , , . Bajo la restricción :
Resultados (con los números más importantes)
- Chinchilla 70B: Entrenado con el mismo presupuesto de FLOP que Gopher ( FLOPs, o con contabilidad exacta) usando 70B de parámetros y 1.4 billones de tokens.
- Benchmark MMLU: Chinchilla alcanza un promedio de precisión 5-shot del 67.6%, superando a Gopher (60.0%), GPT-3 (43.9%) y superando el pronóstico de expertos humanos de junio de 2023 (63.4%). Logra una precisión en 4 tareas individuales de MMLU.
- Benchmarks downstream: Supera a Gopher en BIG-bench (65.1% frente a 54.4%), LAMBADA (77.4% frente a 74.5%) y Natural Questions closed-book (31.5% 5-shot frente a 24.5%).
- Sesgo y toxicidad: La toxicidad sin prompt se mantiene comparable entre Gopher y Chinchilla (mediana de 0.064 frente a 0.066), mientras que la precisión en Winogender mejora globalmente del 71.4% al 78.3%.
Limitaciones y preguntas abiertas
- Solo se verificaron directamente dos puntos frontera a gran escala en paridad (Gopher 280B frente a Chinchilla 70B) debido al costo de entrenamiento.
- El análisis asume un entrenamiento de una sola época sobre datasets web; el comportamiento al repetir datos a lo largo de múltiples épocas no fue explorado.
- Existe evidencia empírica de una ligera curvatura negativa (concavidad) en para presupuestos de cómputo elevados, lo que sugiere que las leyes de potencia aún podrían sobreestimar ligeramente el tamaño óptimo del modelo.
Términos clave
- Chinchilla
- Un modelo de lenguaje autorregresivo de 70 mil millones de parámetros entrenado con 1.4 billones de tokens utilizando el presupuesto de cómputo de Gopher.
- Gopher
- Un modelo de lenguaje transformer de 280 mil millones de parámetros entrenado con 300 mil millones de tokens que sirve como línea base equivalente en cómputo.
- IsoFLOP profiles
- Una metodología en la que se varía el recuento de parámetros del modelo mientras se mantienen constantes los FLOP totales de entrenamiento para localizar el tamaño de parámetros con pérdida mínima.
- Compute-optimal frontier
- La curva matemática que relaciona los FLOP de entrenamiento disponibles con la asignación óptima de recuento de parámetros y volumen de tokens de entrenamiento.
- Parametric loss function
- La descomposición estadística de la pérdida de un LM en entropía irreducible de Bayes, déficit de capacidad de parámetros y error de optimización por muestreo de tokens.
- Huber loss
- Una función de pérdida robusta utilizada en el Enfoque 3 para ajustar ejecuciones empíricas de LM atenuando el efecto de valores atípicos residuales en escalas de cómputo pequeñas.
- MassiveText
- El corpus de preentrenamiento multidominio que contiene páginas web, libros, noticias, código y Wikipedia, utilizado para entrenar tanto a Gopher como a Chinchilla.
- FLOPs calculation
- El presupuesto de operaciones de multiplicación y acumulación, calculado aproximadamente como a través de los pases forward y backward o mediante un desglose capa por capa.
Preguntas
¿Por qué concluyeron Kaplan et al. que los parámetros debían escalarse más rápido que los tokens?
Kaplan et al. utilizaron un schedule de coseno de tasa de aprendizaje fijo (p. ej., con decaimiento fijado a 130B de tokens) y emplearon evaluaciones intermedias sin converger para los puntos de menor cantidad de tokens. Dado que los schedules de tasa de aprendizaje de coseno pierden efectividad si la duración del ciclo supera significativamente el número total de pasos, esas pérdidas intermedias resultaron artificialmente altas, subestimando la eficacia de entrenar modelos más pequeños con menos tokens.
¿Cuál es la regla general para el escalado compute-optimal según Chinchilla?
Tanto el número de parámetros del modelo como el número de tokens de entrenamiento deben escalarse en proporciones aproximadamente iguales: por cada incremento de en el cómputo, el tamaño del modelo debe aumentar en y los tokens de entrenamiento deben aumentar en .
¿Cuántos tokens se recomiendan para entrenar un modelo compute-optimal de 175B?
Según las predicciones del artículo, un modelo de 175 mil millones de parámetros requiere aproximadamente de 3.7 a 4.3 billones de tokens y entre y FLOPs para ser óptimo en cómputo, superando con creces los 300 mil millones de tokens utilizados habitualmente para GPT-3.
¿Qué cambios arquitectónicos se realizaron entre Gopher y Chinchilla?
Más allá de reducir el número de capas y la dimensión oculta de 280B a 70B, Chinchilla reemplazó el optimizador Adam por AdamW, mantuvo pesos maestros en float32 en el estado del optimizador distribuido y eliminó la normalización NFKC del tokenizador SentencePiece.
La explicación de esta página la escribió una IA a partir del artículo y puede contener errores. Consulte el artículo para los detalles.