¿Puede el M1 de Apple ayudarte a entrenar a los modelos más rápido y más barato que el V100 de NVIDIA?
Analizando el tiempo de ejecución, el uso de la energía y el desempeño de Tensorflow entrenando sobre un M1 Mac Mini y sobre un Nvidia V100
Created on February 2|Last edited on February 17
Comment
TLDR
Corrimos un barrido de 8 configuraciones diferentes de nuestro script de entrenamiento y mostramos que el M1 de Apple ofrece un desempeño impresionante dentro del alcance de aceleradores mucho más costosos y menos eficientes respecto al consumo de energía, tales como el Nvidia V100 , para arquitecturas y conjuntos de datos más pequeños.
Run set
24
Metodología
Entrenamos un modelo de visión computacional utilizando la arquitectura de MobileNetV2 sobre Cifar 10. Entrenamos uno en este colab sobre un Nvidia V100, y un modelo idéntico utilizando la bifurcación tensorflow_macos sobre un M1 Mac Mini de 16GB. Variamos a los siguientes hiperparámetros utilizando los barridos de W&B:
batch_size:- 32- 64img_dim:- 96- 128trainable:- true- false
Cuando trainable es false, solamente entrenamos la capa final en la red. Cuando trainable es true, actualizamos todos los pesos en MobileNetV2.
Podemos ver mejores ganancias del desempeño con el m1 cuando hay menos pesos para entrenar, probablemente debido a la arquitectura de memoria superior del M1.
Trainable
8
Non-Trainable
8
Energía
El hardware utilizado de Apple fue un M1 Mac Mini con 16GB de RAM. Durante el entrenamiento, el ventilador no se escuchó nunca y el gabinete estaba frío al tacto. Es notable cuánta menos energía utilizó el M1 para conseguir la misma cantidad de computaciones que el V100. El V100 está usando un procesador de 12nm, mientras que el m1 está usando uno de 5nm, pero el V100 utilizó sistemáticamente alrededor de 6 veces más de energía.
Run set
16
Avisos
Establecer al Mac Mini para que ejecute al nuevo paquete acelerado de Tensorflow fue menos que trivial. Encontré que la forma más simple para obtener varios paquetes que requerían compilación era desde la rama arm64 de Miniconda. La biblioteca tensorflow se supone que, por defecto, elige la mejor ruta para la aceleración, sin embargo estuve notando constantes fallas de segmentación, a menos que le dijera explícitamente a la biblioteca que usara la gpu con el siguiente código:
from tensorflow.python.compiler.mlcompute import mlcomputemlcompute.set_mlc_device(device_name="gpu")
Elegí a MobileNetV2 para hacer la iteración más rápido. Cuando probé ResNet50, u otros modelos más grandes, la brecha entre M1 y Nvidia se hizo más amplia. También experimenté fallas de segmentación cuando mis entradas excedían las dimensiones de 196x196 en el M1.
En general, parece que estas Macs elementales por ahora sólo son convenientes para las arquitecturas más pequeñas.
También observé que las pruebas en el M1, que solo entrenaban la capa final de la red, fallaban en la convergencia. Este no fue el caso para el V100 de Nvidia. Después de hacer más experimentos, fui capaz de hacer que las ejecuciones de M1 convergieran, al reducir la tasa de aprendizaje. No queda claro por qué la tasa de aprendizaje fue más quisquillosa en el hardware de M1.
M1 de Apple
Run set
8
V100 de Nvidia
Run set
8
Conclusión
Se trata recién de los primeros días, pero estos results preliminares se ven muy prometedores. Cuando Apple lance al mercado hardware Pro, con más Núcleos y más RAM, el entrenamiento de los modelos de aprendizaje de máquinas en el hardware de Apple podría volverse algo común. En W&B, todo nuestro personal utiliza hardware de Mac para el desarrollo, y sé que muchos de nuestros equipos no pueden esperar a poner sus manos en la próxima generación de dicho hardware. Vamos a seguir mirando de cerca a la bifurcación tensorflow_macos y a su eventual incorporación en el repositorio principal de tensorflow. Tengo curiosidad por ver si el equipo de PyTorchdecide la integración con las bibliotecas ML Compute de Apple, aún hay una discusión en curso en Github.
Nuestro lanzamiento más reciente de la biblioteca wandb (0.10.13) captura automáticamente las métricas del hardware M1 de Apple, como lo ves en este reporte.
¡Estamos emocionados por que otros usuarios vanguardistas lo prueben! Por favor, déjanos comentarios o haz preguntas acerca de estos resultados desde aquí, en este reporte.
Add a comment
Tags: Intermediate, Domain Agnostic, Hardware, Keras, Experiment, MobileNet v2, Panels, Plots, CIFAR10
Iterate on AI agents and models faster. Try Weights & Biases today.