¿Cuándo debo comprar hardware en lugar de depender de servicios en la nube como AWS para el aprendizaje profundo?

Descargo de responsabilidad: trabajo en FloydHub, una empresa de infraestructura de nube de aprendizaje profundo.

Existen diferentes escenarios en los que elegirá entre servicios en la nube y su propio equipo de aprendizaje profundo.

  1. Elección de GPU : cuando obtiene su propia GPU, tiene una opción mucho más amplia de GPUS para comprar. En todos los servicios en la nube, la GPU más rápida que puede obtener es una Tesla K80. De hecho, las nuevas GPU de grado de consumo como GTX 1080 son aproximadamente 4 veces más rápidas que K80. Puede obtener más información sobre las GPU en este artículo [1].
  2. GPU más nuevas : por otro lado, el campo del aprendizaje profundo está cambiando a un ritmo rápido. Habrá GPU más nuevas que saldrán específicamente para el aprendizaje profundo muy pronto, por ejemplo, Pascal P100 y V100. Los proveedores de la nube estarán disponibles en los próximos 12 meses. Cuando compra su propio hardware, corre el riesgo de que el hardware se vuelva obsoleto pronto.
  3. Paralelismo : los marcos de aprendizaje profundo están comenzando a admitir la capacitación distribuida [2]. Esto puede ayudar a acelerar su entrenamiento. También puede ejecutar múltiples experimentos por separado en paralelo para realizar el barrido de parámetros. El aprendizaje profundo es una caja negra cuando se trata de comprender sus modelos, por lo que el tiempo de entrenamiento rápido ayuda a iterar más rápido y llegar al modelo final antes.
  4. Cargas de trabajo en ráfagas : algunos usuarios pueden no requerir una GPU 24 × 7. Puede usar una instancia de CPU (como su computadora portátil) para construir su implementación y probar en un pequeño conjunto de datos. Luego puede usar una instancia de GPU solo cuando necesite la potencia de cálculo cuando entrene en un gran conjunto de datos.

Notas al pie

[1] Qué GPU (s) obtener para el aprendizaje profundo

[2] TensorFlow distribuido | TensorFlow

Simplemente cuando le da una ventaja comercial para lidiar con la complejidad adicional de ejecutar su propia infraestructura.

Si está en el negocio de hacer widgets, entonces ejecutar infraestructura técnica no es parte de su negocio que genera dinero directamente, es un costo de hacer negocios.

Normalmente busca minimizar estos costos.

Sin embargo, si puede utilizar la infraestructura técnica para ofrecer algo que sus competidores no pueden ofrecerle una ventaja sobre la competencia.

La diferencia entre estos dos tipos de servicios es generalmente la singularidad. Por lo general, ejecutar sus propios servidores de correo electrónico en el mundo moderno es una mala elección … puede encontrar alojamiento de correo electrónico por mucho más barato que hacerlo usted mismo y realmente no gana nada desde una perspectiva comercial al hacerlo.

Sin embargo, si tiene algo como el aprendizaje automático o la minería de datos que le permite vender un 50% más a sus clientes, puede optar por hacerlo usted mismo.

Cuando te das cuenta de que estás en esto a largo plazo.

Comencé con AWS, pagué $ 500 / mes en proyectos académicos que deberían haber sido financiados por mi grupo. Otra opción era enviar trabajos al HPC de mi escuela con las GPU Tesla K20. Sin embargo, ninguno de ellos me proporcionó la flexibilidad y el poder que necesito como lo hizo AWS. Le alquilan hasta $ 25k en hardware a pedido sin compromiso.

Esto fue genial para mi primer par de proyectos. Ahora, obtengo descuentos para empleados de GPU y he estado planeando construir una plataforma por un tiempo, así que obtendré 4 GTX1080TI para mis experimentos.

Puede que esta no sea una decisión fácil para muchos, pero lo es para mí. Sé que muchas noches me impedí lanzar una instancia en AWS porque sabía que me gustaría seguir ejecutándola durante la noche e incurrir en tarifas que no son lógicas para mí.

La respuesta simple es cuando es más barato. Las técnicas comunes de aprendizaje profundo usan gpus. Entonces, compare el uso de los modelos p de aws que tienen gpus (o azure / google) equivalentes frente al costo de su hardware. Si está ejecutando su entrenamiento 24 × 7 o solo necesita el uso de unos pocos gpus, entonces podría ser más fácil hacerlo usted mismo.

Aspectos a considerar:

  1. Es posible que no desee sus datos en la nube. Los datos del gobierno, los registros médicos y otros pueden no estar permitidos debido a razones legales o de seguridad.
  2. Si está haciendo un entrenamiento en ráfaga, puede obtener mucha capacidad en la nube cuando realiza su entrenamiento y luego volcar las máquinas cuando no las necesite.
  3. si procesa en la nube, necesita configurar su entrenamiento en la nube. Esto podría ser muy tedioso y lento.
  4. es fácil realizar su formación inicial en un pequeño conjunto en la nube y luego expandirse cuando esté satisfecho con el modelo.

En general, en este momento recomendaría el método en la nube hasta que vaya a entrenar sobre una gran cantidad de datos y luego resuelva los números.