A continuaciónSiguiente guía
Acumulación de gradiente
Técnico
GUÍA Técnica
El punto de control de gradiente (también llamado punto de control de activación) es un truco para ahorrar memoria que descarta la mayoría de las activaciones intermedias durante el pase hacia adelante y las recalcula sobre la marcha durante la propagación hacia atrás.
Le permite entrenar redes más grandes y profundas intercambiando computación adicional por un uso de memoria mucho menor.
El entrenamiento de redes neuronales normalmente almacena las activaciones de cada capa durante el paso hacia adelante porque la propagación hacia atrás las necesita para calcular los gradientes. Para los modelos profundos, estas activaciones dominan la memoria. En cambio, los puntos de control de gradiente guardan las activaciones solo en un conjunto disperso de capas de "puntos de control" y descartan el resto. Cuando backprop llega a una región cuyas activaciones se descartaron, vuelve a ejecutar el cálculo directo solo para ese segmento para regenerar lo que necesita y luego continúa. Con puntos de control ubicados aproximadamente en cada raíz cuadrada de N capas, la memoria para activaciones cae del orden N al orden de raíz cuadrada de N, mientras que el cómputo aumenta solo aproximadamente un paso hacia adelante adicional (aproximadamente un 20-30 % más lento). Esto hace posible instalar lotes de mayor tamaño o transformadores más profundos en la misma GPU.
Las decisiones de arquitectura impulsan el rendimiento y los costos operativos durante años.
La educación técnica ayuda a los equipos a elegir la pila adecuada, no sólo la más nueva.
Mejores opciones de ingeniería reducen los incidentes de confiabilidad en la producción.
Los puntos de control de gradiente ahora son estándar en el entrenamiento de modelos grandes y están cada vez más automatizados, con bibliotecas que seleccionan las ubicaciones óptimas de los puntos de control para usted. Se combina naturalmente con FSDP, precisión mixta y descarga para aumentar el tamaño de los modelos. Espere puntos de control 'selectivos' que recalculen solo operaciones baratas mientras mantienen en caché las costosas (como matrices de atención), además de enfoques impulsados por compiladores en herramientas como torch.compile de PyTorch que deciden automáticamente qué guardar versus recalcular para obtener el mejor equilibrio entre velocidad y memoria.
Entrenar un transformador profundo con un tamaño de lote mayor en una sola GPU descartando y recalculando las activaciones de capa.
Ajuste de modelos de visión en imágenes de alta resolución donde, de otro modo, los mapas de activación desbordarían la memoria de la GPU.
Hugging Face Transformers permite que gradient_checkpointing=True se ajuste a modelos de mil millones de parámetros durante el ajuste fino.
Combinar puntos de control con FSDP para que tanto los parámetros como las activaciones se mantengan pequeños, lo que permite el entrenamiento de modelos de lenguaje muy grandes.
La optimización de un punto de referencia puede ocultar debilidades más amplias del sistema.
Los costos de infraestructura y mantenimiento a menudo se subestiman.
Las brechas de seguridad y observabilidad pueden crecer a medida que los sistemas se vuelven más complejos.
Defina objetivos de latencia, calidad y costos antes de la implementación.
Comparación en condiciones realistas de carga y datos.
Monitoreo de instrumentos para detectar errores, deriva e impacto para el usuario.
Prepare rutas de reversión y respuesta a incidentes antes de escalar.
Free newsletter
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
El punto de control de gradiente (también llamado punto de control de activación) es un truco para ahorrar memoria que descarta la mayoría de las activaciones intermedias durante el pase hacia adelante y las recalcula sobre la marcha durante la propagación hacia atrás. Le permite entrenar redes más grandes y profundas intercambiando computación adicional por un uso de memoria mucho menor.
El punto de control de gradiente vuelve a calcular las activaciones descartadas durante el paso hacia atrás, gastando cómputo adicional a cambio de una memoria sustancialmente reducida.
Backprop calcula los gradientes utilizando las activaciones intermedias del pase hacia adelante, por lo que deben estar disponibles a menos que se vuelvan a calcular.
El espaciado de los puntos de control en cada raíz cuadrada de N capas reduce la memoria de activación almacenada desde el orden N hasta el orden sqrt(N).
Con una buena ubicación de los puntos de control, la sobrecarga es aproximadamente un paso adicional hacia adelante, a menudo alrededor de una desaceleración del 20-30%.
torch.utils.checkpoint envuelve un módulo para que sus activaciones internas se vuelvan a calcular hacia atrás en lugar de almacenarse.
sigue aprendiendo
Más guías seleccionadas para este tema.
A continuaciónSiguiente guía
Acumulación de gradiente
Técnico