Recientemente realicé un fine-tuning del modelo FLUX 1-dev (12B) para crear modelos de personajes que se usarán en el servicio. Aquí comparto los datos y las pruebas obtenidas entrenando este enorme modelo de 12 mil millones de parámetros en el DGX Spark, que está basado en ARM con bajo consumo de energía.
1. Entorno y configuración de aprendizaje
-
Hardware: DGX Spark (120GB de memoria unificada)
-
Modelo: FLUX 1-dev (12B Parámetros)
-
Conjunto de datos: 40 imágenes de personajes (resolución 1024px)
-
Configuración de aprendizaje:
-
Tamaño de lote: 1
-
Acumulación de gradientes: 4
-
Épocas: 100
-
Total de pasos: 1000
-
2. Expectativa vs Realidad: Fracaso en la gestión del tiempo
La referencia de NVIDIA mencionaba que "el entrenamiento de 13 imágenes toma aproximadamente 90 minutos en 1000 pasos". Con base en esto, esperaba que con 40 imágenes podría terminar en un tiempo de 4 a 5 horas como máximo, y si todo iba bien, tal vez en 2 a 3 horas.
Sin embargo, el tiempo real transcurrido fue de aproximadamente 8 horas.
Análisis: > Número de imágenes y resolución: El conjunto de datos de 40 imágenes y la configuración de alta resolución de 1024px aumentaron la carga.
- Tiempo por paso: Se requerían un promedio de 28 segundos para procesar 1 Época (10 pasos). Es decir, cada imagen tomó aproximadamente 7 segundos para ser entrenada.
3. OOM (Out Of Memory) y gestión de memoria
Confiar en la memoria unificada de 120GB fue mi primer error.
Los servicios existentes en el servidor fueron problemáticos.
-
GPT-OSS (20B): 32GB reservados
-
ComfyUI: 16GB asignados
Cuando comencé el entrenamiento en este estado, el núcleo de Linux terminó el proceso (Kill). Con solo unos 66GB de espacio libre, fue insuficiente para llevar a cabo el entrenamiento del modelo de 12B (cálculo de gradientes, etc.). Finalmente, solo después de cerrar todos los servicios en segundo plano pudo llevarse a cabo un entrenamiento estable.
- Uso real de memoria durante el entrenamiento: aproximadamente 71.4GB (mantenimiento constante)

4. La sorprendente eficiencia energética de la arquitectura ARM
Si estuviera usando una GPU de alto rendimiento basada en x86, el consumo de energía hubiera sido considerable, pero la eficiencia del DGX Spark fue sorprendente.
-
Pico de energía: 89-90W
-
Temperatura: 84-86°C (después de usar un mini ventilador estabilizó en 81-83°C)
Que el modelo de 12B consuma solo 90W de energía mientras se entrena a carga completa es una cifra alentadora que muestra su potencial como servidor de IA en el borde o en el dispositivo.
5. Detección de cuellos de botella: la desviación de la CPU del codificador de texto (TE)
Descubrí una de las causas decisivas por las que el tiempo de entrenamiento se alargó más de lo esperado.
El modelo FLUX utiliza dos codificadores de texto, CLIP-L y T5-XXL, y los resultados del monitoreo mostraron que uno de ellos estaba asignado a la CPU en lugar de a CUDA.
-
Fenómeno: 1 TE asignado a CUDA, 1 TE asignado a CPU
-
Impacto: Cuello de botella provocado por la diferencia de velocidad en la transferencia y procesamiento de datos entre CPU y GPU
A pesar de que no había una situación de falta de memoria (OOM), es necesario analizar la causa en la configuración por la cual se realizó el offloading a la CPU. En el próximo entrenamiento, planeo forzar la asignación de ambos codificadores a CUDA para intentar mejorar la velocidad.
6. Conclusión y planes futuros
A través de esta prueba, me di cuenta de que 100 Épocas / 1000 Pasos son unas configuraciones excesivas.
-
Dirección de mejora: Reducir el número de imágenes a aproximadamente 30, o mantener la cantidad pero ajustar la carga de entrenamiento a 300-400 Pasos parece ser más eficiente.
-
Hardware: La posibilidad de hacer fine-tuning de un gran modelo con solo 90W es muy atractiva, aunque la solución de refrigeración (mini ventiladores, etc.) es esencial. Después de todo, correr durante 8 horas a 86-87 grados fue un poco aterrador.
Próximo paso: Actualmente, quedan aproximadamente 2 horas y 30 minutos hasta la finalización del entrenamiento. Una vez finalizado, compartiré los resultados de la prueba de rendimiento real al instalar el adaptador LoRA generado en FLUX. Estén atentos para la próxima publicación.
No hay comentarios.