Apilando tus Transformers: Un análisis detallado del crecimiento de modelos para el preentrenamiento eficiente de LLM
Stacking Your Transformers: A Closer Look at Model Growth for Efficient LLM Pre-Training
May 24, 2024
Autores: Wenyu Du, Tongxu Luo, Zihan Qiu, Zeyu Huang, Yikang Shen, Reynold Cheng, Yike Guo, Jie Fu
cs.AI
Resumen
Los LLM (Modelos de Lenguaje de Gran Escala) son computacionalmente costosos de preentrenar debido a su gran escala. El crecimiento de modelos surge como un enfoque prometedor al aprovechar modelos más pequeños para acelerar el entrenamiento de otros más grandes. Sin embargo, la viabilidad de estos métodos de crecimiento de modelos en el preentrenamiento eficiente de LLM sigue siendo poco explorada. Este trabajo identifica tres obstáculos críticos: (O1) la falta de evaluación integral, (O2) la viabilidad no probada para escalar y (O3) la ausencia de pautas empíricas. Para abordar O1, resumimos los enfoques existentes en cuatro operadores de crecimiento atómicos y los evaluamos sistemáticamente en un entorno estandarizado de preentrenamiento de LLM. Nuestros hallazgos revelan que un operador de apilamiento en profundidad, llamado G_{stack}, muestra una aceleración notable en el entrenamiento, lo que lleva a una disminución de la pérdida y un mejor rendimiento general en ocho benchmarks estándar de PLN en comparación con líneas base sólidas. Motivados por estos resultados prometedores, realizamos experimentos extensos para profundizar en G_{stack} y abordar O2 y O3. Para O2 (escalabilidad no probada), nuestro estudio muestra que G_{stack} es escalable y funciona consistentemente bien, con experimentos que llegan hasta LLM de 7B después del crecimiento y preentrenamiento de LLM con 750B tokens. Por ejemplo, en comparación con un modelo de 7B entrenado convencionalmente usando 300B tokens, nuestro modelo G_{stack} converge al mismo nivel de pérdida con 194B tokens, lo que resulta en una aceleración del 54.6%. Además, abordamos O3 (falta de pautas empíricas) formalizando directrices para determinar el momento de crecimiento y el factor de crecimiento para G_{stack}, haciéndolo práctico en el preentrenamiento general de LLM. También proporcionamos discusiones detalladas y estudios de ablación exhaustivos de G_{stack}. Nuestro código y modelo preentrenado están disponibles en https://llm-stacking.github.io/{https://llm-stacking.github.io/}.
English
LLMs are computationally expensive to pre-train due to their large scale.
Model growth emerges as a promising approach by leveraging smaller models to
accelerate the training of larger ones. However, the viability of these model
growth methods in efficient LLM pre-training remains underexplored. This work
identifies three critical textit{O}bstacles: (O1)
lack of comprehensive evaluation, (O2) untested viability for
scaling, and (O3) lack of empirical guidelines. To tackle
O1, we summarize existing approaches into four atomic growth
operators and systematically evaluate them in a standardized LLM pre-training
setting. Our findings reveal that a depthwise stacking operator, called
G_{stack}, exhibits remarkable acceleration in training, leading to
decreased loss and improved overall performance on eight standard NLP
benchmarks compared to strong baselines. Motivated by these promising results,
we conduct extensive experiments to delve deeper into G_{stack} to
address O2 and O3. For O2 (untested
scalability), our study shows that G_{stack} is scalable and
consistently performs well, with experiments up to 7B LLMs after growth and
pre-training LLMs with 750B tokens. For example, compared to a conventionally
trained 7B model using 300B tokens, our G_{stack} model converges to
the same loss with 194B tokens, resulting in a 54.6\% speedup. We further
address O3 (lack of empirical guidelines) by formalizing guidelines
to determine growth timing and growth factor for G_{stack}, making it
practical in general LLM pre-training. We also provide in-depth discussions and
comprehensive ablation studies of G_{stack}. Our code and pre-trained
model are available at
https://llm-stacking.github.io/{https://llm-stacking.github.io/}.