Mini-loteMini-Batch

Procesar los datos en tandas, dando un paso por cada una

Puntos clave
  • El mini-lote es la forma de entrenar dividiendo los datos en tandas de un tamaño razonable, corrigiendo los valores un paso por cada tanda.
  • Ver los datos de a uno hace que el rumbo se sacuda demasiado; verlos todos juntos hace que dar un solo paso tarde una eternidad. El mini-lote está en el medio.
  • Los resultados de los datos dentro de una tanda se promedian para armar una sola dirección. Así un dato raro no arrastra todo el movimiento.
  • El tamaño de la tanda tiene como techo lo que entra en la memoria de la tarjeta gráfica. Agrandar el tamaño hace crecer la memoria junto con él.
  • Cambiar el tamaño mueve, junto con él, la tasa de aprendizaje adecuada. Los dos van pegados, no se pueden pensar por separado.
Contenido

1La analogía

El día de hacer chucrut en casa no hay ninguna tina lo bastante grande para las cien cabezas de repollo. Pero tampoco se puede salar cabeza por cabeza, porque se haría de noche. Por eso se llena una batea grande con diez cabezas, se les echa la sal justa, y cuando esa batea está lista se la vacía y se llena la siguiente.

Al terminar cada batea se prueba el punto de sal a mano. Si esta tanda quedó un poco salada, en la siguiente se le pone menos sal. Aunque una de las diez cabezas salga particularmente dura, las otras nueve están ahí, así que el criterio no se descontrola.

Esa batea es el mini-lote. Cuando se vacían todas las bateas, se completó una vuelta a las cien cabezas, y como se ajustó la sal una vez por batea, en esa vuelta se hicieron diez ajustes.

2En detalle

Ni de a una, ni las cien juntas

Si se corrige el valor con cada dato, el paso se da muy seguido, pero el rumbo se sacude fuerte cada vez, porque un solo dato raro puede terminar decidiendo toda la dirección. La eficiencia del cálculo también sale perdiendo: procesar de a uno casi no aprovecha los dispositivos que hacen muchas cuentas de una sola vez.

Al revés, si se ve todo el conjunto y se corrige una sola vez, el rumbo sale muy preciso. Pero si hay millones de datos, dar un solo paso tarda muchísimo, y ni siquiera entran todos juntos en la memoria.

Dividir en tandas da las dos cosas a la vez. Como se promedia dentro de la tanda, el rumbo no se sacude tanto, y como se da un paso al terminar cada tanda, el avance es rápido. Prácticamente todo el entrenamiento de hoy funciona así.

Qué decide el tamaño de la tanda

El primer criterio es la memoria. Para calcular de una vez los datos de la tanda hay que tener cargados tanto los datos como los resultados intermedios. Si se duplica el tamaño de la tanda, la memoria necesaria también se duplica, más o menos. Cuando el entrenamiento se corta por falta de memoria, lo primero que se achica es el tamaño de la tanda.

El segundo criterio es el vaivén. Con tandas chicas, el rumbo cambia un poco cada vez, y ese vaivén no siempre es malo: ayuda a salir de un punto a medias, y a veces hasta da mejor puntaje frente a datos nuevos. Con tandas muy grandes, el paso se vuelve más parejo, pero cada paso sale más caro para lo poco que aporta.

Se mueve junto con la tasa de aprendizaje

Al agrandar la tanda, la dirección de cada paso se vuelve más confiable. Por eso lo habitual es agrandar también, un poco, el tramo del paso. Si se agranda la tanda y se deja igual la tasa de aprendizaje, el entrenamiento se hace más lento porque bajan los pasos que caben en cada vuelta.

Al entrenar un modelo grande repartido en varios dispositivos, cada dispositivo procesa su propia tanda y después se suman los resultados. Ahí el tamaño real de la tanda crece tanto como dispositivos haya, así que si no se ajustan juntos la tasa de aprendizaje y un tramo inicial de calentamiento, el entrenamiento se rompe fácil al principio.

Los datos que sobran y el mezclado

Si la cantidad de datos no se divide justo por el tamaño de la tanda, la última tanda queda más chica. Ese sobrante a veces se usa igual, y a veces se descarta para mantener parejo el tamaño de cálculo. Al terminar cada vuelta se vuelven a mezclar los datos y se arman tandas nuevas, así que los datos que quedaron afuera esta vez entran en la próxima.

También importa que ninguna tanda quede llena de un solo tipo. Si una batea sale entera del mismo tipo, ese paso se inclina todo hacia un solo lado. Con solo mezclar bien los datos, esto casi siempre se resuelve.

Cuando se agrupan frases de largo distinto o fotos de tamaño distinto, hace falta además un ajuste aparte para emparejar el tamaño dentro de una misma tanda: se rellenan con espacios el final de las frases cortas, o se recortan las fotos a un mismo tamaño. Solo después de este ajuste se puede calcular la tanda entera de una vez.

3Con más precisión

Entrenar con mini-lotes es actualizar una sola vez usando el promedio de los gradientes de los datos dentro de la tanda. Está entre corregir con cada dato y corregir una sola vez con todo el conjunto, y lo que hoy se llama descenso de gradiente estocástico casi siempre se refiere a esta forma por tandas. Por cómo están construidos los dispositivos de cálculo, es habitual fijar el tamaño de la tanda como una potencia de dos. Cuando falta memoria pero igual hace falta el efecto de una tanda grande, también se usa la técnica de acumular los resultados de varias tandas chicas antes de aplicar la actualización.

La analogía también tiene sus costuras. En la batea del chucrut, el repollo se reparte de verdad en partes físicas, pero el mini-lote no copia los datos en partes: es más bien leerlos en orden, uno tras otro. Además, una batea de repollo salado no afecta a la siguiente, mientras que en el entrenamiento el valor corregido en una tanda influye directamente en el cálculo de la tanda siguiente. Que el orden de las tandas afecte al resultado es el punto donde más se aparta de la analogía del chucrut.

4Pruébalo

5Malentendidos comunes

  • Es fácil pensar que cuanto más grande la tanda, mejor sale el entrenamiento, pero en realidad se gasta más memoria a cambio de menos pasos, y a veces el puntaje frente a datos nuevos hasta empeora.

  • Es fácil pensar que los datos de una tanda se calculan uno por uno en orden, pero en realidad se calculan todos juntos y se promedian; ahí está la clave de la velocidad.

  • Es fácil pensar que el tamaño de la tanda puede ser cualquier número, pero en realidad está atado al límite de memoria y a la tasa de aprendizaje, así que cambiar solo uno sacude todo el entrenamiento.

7Resumen en una línea

En resumenEl mini-lote divide los datos en tandas del tamaño de una batea y corrige los valores un paso por cada tanda, y ese tamaño decide juntas la velocidad y el vaivén.

¿Has visto un error o tienes una analogía mejor? Sugerir una corrección · Última actualización2026-09-02