What is Batch Size?
El número de ejemplos de entrenamiento procesados simultáneamente en un pase hacia adelante y hacia atrás durante el entrenamiento del modelo, afectando el uso de memoria, la velocidad de entrenamiento y el comportamiento de convergencia.
Definition
El batch size es un hiperparámetro de entrenamiento fundamental que determina cuántos ejemplos del dataset de entrenamiento se procesan juntos en una sola iteración del bucle de entrenamiento. Después de que el modelo procesa un batch, calcula la pérdida promedio a través de todos los ejemplos del batch y usa esto para calcular gradientes para actualizar los pesos del modelo. Batch sizes más grandes proporcionan estimaciones de gradiente más estables (porque el promedio se calcula sobre más ejemplos) pero requieren proporcionalmente más memoria GPU.
En el fine-tuning de LLM, el batch size está particularmente limitado por la memoria GPU. Un solo ejemplo de entrenamiento para un modelo de 7B puede consumir varios gigabytes de VRAM para activaciones, gradientes y estados del optimizador. Como resultado, los batch sizes prácticos para fine-tuning suelen ser pequeños — típicamente de 1 a 8 ejemplos por GPU. Para lograr los beneficios de estabilidad de batch sizes efectivos más grandes sin exceder los límites de memoria, los profesionales usan acumulación de gradientes: procesando varios batches pequeños secuencialmente y acumulando sus gradientes antes de realizar una sola actualización de pesos. Un batch size efectivo de 32 se puede lograr procesando 4 batches de 8 con acumulación de gradientes.
La relación entre batch size y tasa de aprendizaje está bien establecida: batch sizes efectivos más grandes generalmente requieren tasas de aprendizaje más altas para mantener la dinámica de entrenamiento, siguiendo la regla de escalado lineal. Esto significa que al ajustar el batch size, la tasa de aprendizaje a menudo necesita ajustarse proporcionalmente para mantener una convergencia estable. La interacción entre estos dos hiperparámetros es una de las consideraciones clave en la configuración de fine-tuning.
Why It Matters
El batch size afecta directamente tres aspectos críticos del entrenamiento: consumo de memoria (batches más grandes necesitan más VRAM), velocidad de entrenamiento (batches más grandes aprovechan el paralelismo de la GPU más eficientemente) y comportamiento de convergencia (batches más grandes dan estimaciones de gradiente más suaves pero pueden converger a mínimos más agudos que generalizan peor). Para equipos que trabajan con recursos GPU limitados — lo que incluye a la mayoría de los profesionales de fine-tuning — entender los equilibrios del batch size es esencial para maximizar la calidad de los resultados dentro de las restricciones de hardware. Elegir mal el batch size puede llevar a errores de falta de memoria, tiempo de entrenamiento desperdiciado o calidad de modelo subóptima.
How It Works
En cada paso de entrenamiento, el cargador de datos selecciona batch_size ejemplos del dataset de entrenamiento. Estos ejemplos se tokenizan, se rellenan a la misma longitud y se apilan en un tensor. El modelo realiza un pase hacia adelante en todo el batch simultáneamente (aprovechando el paralelismo de la GPU), calculando predicciones para todos los ejemplos a la vez. La función de pérdida calcula el error para cada ejemplo y los promedia. El pase hacia atrás calcula gradientes de esta pérdida promediada con respecto a todos los parámetros entrenables. Cuando se usa acumulación de gradientes, estos gradientes se suman a un buffer acumulativo durante N pasos antes de que el optimizador aplique los gradientes acumulados para actualizar los pesos. El batch size efectivo es entonces batch_size por gradient_accumulation_steps.
Example Use Case
Un equipo que ajusta un modelo de 13B en una GPU NVIDIA A100 de 40GB descubre que un batch size de 4 causa errores de falta de memoria. Reducen el batch size por dispositivo a 1 y establecen los pasos de acumulación de gradientes en 8, logrando un batch size efectivo de 8 manteniéndose dentro de los límites de VRAM. Ajustan la tasa de aprendizaje de 2e-5 a 1e-5 para compensar el batch size efectivo más pequeño comparado con su plan original. El entrenamiento se completa exitosamente y el modelo alcanza su precisión objetivo en validación después de 3 épocas.
Key Takeaways
- El batch size determina cuántos ejemplos se procesan por paso de entrenamiento.
- Batches más grandes dan gradientes más estables pero requieren más memoria GPU.
- La acumulación de gradientes simula batches más grandes dentro de las restricciones de memoria.
- El batch size y la tasa de aprendizaje deben ajustarse juntos (regla de escalado lineal).
- Los batch sizes prácticos de fine-tuning son típicamente de 1 a 8 por GPU, con acumulación de gradientes para tamaños efectivos más grandes.
How Ertas Helps
Ertas Studio configura automáticamente el batch size y la acumulación de gradientes según el tamaño del modelo seleccionado y los recursos GPU disponibles en Ertas Cloud. Los usuarios que deseen control manual pueden ajustar ambos parámetros en el panel avanzado de hiperparámetros. La plataforma previene errores de falta de memoria al estimar los requisitos de VRAM antes de que comience el entrenamiento y sugerir configuraciones de batch size apropiadas, haciendo seguro para usuarios sin conocimiento profundo de hardware entrenar modelos de forma confiable.
Related Resources
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.