¿Qué tamaño de las redes neuronales se pueden entrenar en las GPU actuales de grado de consumidor? (1060,1070,1080)


9

¿Es posible dar una estimación general sobre el tamaño de las redes neuronales que se pueden entrenar en GPU de grado de consumo común ? Por ejemplo:

El papel de Aparición de locomoción (refuerzo) entrena una red utilizando la activación en tándem de las neuronas. Tienen un NN de 3 capas con 300,200,100 unidades para el Caminante Planar . Pero no informan el hardware y el tiempo ...

¿Pero podría desarrollarse una regla general? También solo se basa en los resultados empíricos actuales, por ejemplo:

Las unidades X que utilizan la activación sigmoidea pueden ejecutar iteraciones de aprendizaje Y por hora en un 1060.

O el uso de la función de activación a en lugar de b provoca una disminución del rendimiento en veces.

Si un estudiante / investigador / mente curiosa va a comprar una GPU para jugar con estas redes, ¿cómo decides qué obtienes? Aparentemente, un 1060 es la opción de presupuesto de nivel de entrada, pero ¿cómo puede evaluar si no es más inteligente obtener un netbook malo en lugar de construir un escritorio de alta potencia y gastar los $ ahorrados en infraestructura de nube a pedido?

Motivación para la pregunta: acabo de comprar un 1060 y (inteligente, para hacer la pregunta después, eh) me pregunto si debería haberme quedado con el $ y haber creado una cuenta de Google Cloud. Y si puedo ejecutar mi simulación de tesis de maestría en la GPU.

Respuestas:


5

Por lo general, el problema es ajustar el modelo a la RAM de video. Si no lo hace, no puede entrenar su modelo en absoluto sin grandes esfuerzos (como entrenar partes del modelo por separado). Si es así, el tiempo es tu único problema. Pero la diferencia en el tiempo de entrenamiento entre las GPU de consumo como la Nvidia 1080 y los aceleradores de GPU mucho más caros como la Nvidia K80 no es muy grande. En realidad, las mejores tarjetas de consumo son más rápidas que los aceleradores de GPU, pero carecen de otras propiedades como VRAM. Comparaciones aleatorias y puntos de referencia: http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/ , https://medium.com/@alexbaldo/a-comparison-between-nvidias-geforce -gtx-1080-and-tesla-p100-for-deep-learning-81a918d5b2c7

Para calcular si sus modelos se ajustan a VRAM, solo debe aproximar cuántos datos y qué hiperparámetros tiene (entradas, salidas, pesos, capas, tamaño de lote, qué tipo de datos, etc.).


1
Buena respuesta, pero ¿qué tipo de modelo no cabe en una memoria de 6 / 8GB? Digamos cada lote de datos de entrenamiento + el modelo. No tengo idea de cómo calcular el tamaño del modelo, pero no puedo imaginar unos pocos miles de neuronas y sus pesos pueden llenar Gigabytes de memoria. El modelo de reconocimiento de imágenes Pretrained de Google es unos pocos cientos de Megs tensorflow.org/tutorials/image_recognition y eso puede reconocer más que la mayoría de los demás. Apple lo maneja en chip en el iPhone, por lo que el modelo en sí debe ser mucho más pequeño que el T-data. Y eso no necesita estar todo en RAM, ¿verdad?
pascalwhoop

A menudo estoy trabajando con modelos de PNL, en su mayoría RNN multicapa, y si el tamaño del vocabulario es grande, incluso 8 GB podrían no ser suficientes. Recuerde que la capacitación generalmente necesita más espacio que la predicción (los gradientes también ocupan espacio).
C. Yduqoli

3

Como advertencia, sugeriría que a menos que esté presionando contra los límites tecnológicos fundamentales, la velocidad de cómputo y los recursos deberían ser secundarios a la lógica del diseño al desarrollar una arquitectura de red neuronal.

Dicho esto, a principios de este año terminé mi tesis de maestría que involucraba tuberías de análisis bioinformático con datos de secuenciación del genoma completo; ese proyecto tomó más de 100,000 horas de tiempo de cálculo para desarrollarse de acuerdo con nuestro administrador de trabajo de clústeres. Cuando estás en una fecha límite, los recursos pueden ser una limitación real y la velocidad puede ser crítica.

Entonces, para responder a sus preguntas como las entiendo:

¿Habría sido mejor usar el dinero para ganar tiempo en la nube?

Probablemente. Los pocos cientos de dólares que gastaste en el 1060 te llevarían lejos entrenando a tus modelos en la nube. Además, por lo que puedo decir, no requiere que la GPU arranque el 100% del tiempo (lo haría si, por ejemplo, extrajera criptomonedas). Finalmente, con las instancias en la nube puede escalar, entrenando múltiples modelos a la vez, lo que puede acelerar la exploración y validación de cualquier arquitectura en la que se establezca.

¿Hay alguna manera de medir el tiempo de cálculo de una red neuronal en una GPU dada

Bueno, Big O es un estimador, pero parece que quieres un método más preciso. Estoy seguro de que existen, pero respondería que puede hacer su estimación con cálculos simples de la parte posterior del sobre que tienen en cuenta los hilos, la memoria, las iteraciones de código, etc. ¿Realmente desea profundizar en la tubería de procesamiento de GPU en el 1060? Es posible que pueda obtener una muy buena estimación al comprender todo lo que sucede entre su código y el metal, pero en última instancia, probablemente no valga la pena el tiempo y el esfuerzo; Es probable que confirme que la notación Big O (el modelo simple, si lo desea) captura la mayor parte de la variación en el tiempo de cálculo. Una cosa que puede hacer si nota cuellos de botella es la creación de perfiles de rendimiento.


2

Depende de lo que necesites. Puede entrenar cualquier tamaño de red en cualquier recurso. El problema es el tiempo de entrenamiento. Si desea entrenar Inception en una CPU promedio, tardará meses en converger. Por lo tanto, todo depende de cuánto tiempo puede esperar para ver sus resultados en función de su red. Al igual que en las redes neuronales, no tenemos una sola operación, sino muchas (como concatenación, agrupación máxima, relleno, etc.), es imposible hacer una estimación mientras está buscando. Simplemente comience a entrenar algunas redes infames y mida el tiempo. Luego, puede interpolar cuánto tiempo llevará entrenar las redes que está buscando.


¿Conoce un recurso que recopila información para diferentes trabajos de NN? Entonces, ¿una lista de: tipo NN, recuento de unidades, hiperparámetros, tamaño del conjunto de datos, hardware utilizado, tiempo empleado? Eso ayudaría a desarrollar una regla de intuición práctica
Pascalwhoop
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.