¿Cómo funciona nebullvm ?
Toma su modelo de IA como entrada y genera una versión optimizada que se ejecuta de 5 a 20 veces más rápido en su hardware. En otras palabras, nebullvm prueba múltiples compiladores de aprendizaje profundo para identificar la mejor manera posible de ejecutar su modelo en su máquina específica, sin afectar la precisión de su modelo.
Y eso es. En tan solo unas pocas líneas de código.
¡Y muchas gracias a todos por apoyar este proyecto de código abierto! La biblioteca recibió más de 250 estrellas de Github⭐ el día del lanzamiento, y eso es increíble 🚀
Aprendamos más sobre nebullvm y la optimización de IA. ¿Por dónde deberíamos empezar? De...
O saltemos directamente a la biblioteca → nebullvm
Finalmente, la adopción de la Inteligencia Artificial (IA) está creciendo rápidamente, aunque todavía estamos lejos de explotar todo el potencial de esta tecnología.
De hecho, lo que suele suceder es que los desarrolladores de IA dedican la mayor parte de su tiempo al análisis de datos, la limpieza de datos y la prueba/capacitación de modelos con el objetivo de crear modelos de IA muy precisos.
Sin embargo... pocos modelos llegan a la producción. Si lo hacen, se dan dos situaciones:
Los modelos de IA son desarrollados por científicos de datos calificados y excelentes ingenieros de IA, que a menudo tienen una experiencia limitada con la nube, los compiladores, el hardware y todos los asuntos de bajo nivel. Cuando sus modelos están listos para implementarse, seleccionan la primera GPU o CPU que se les ocurre en la nube o en el servidor de su empresa/universidad, sin darse cuenta del grave impacto en el rendimiento del modelo (es decir, una computación mucho más lenta y costosa) causado por la falta de información. selección de hardware, mala configuración de la infraestructura de la nube y falta de optimización posterior al entrenamiento del modelo/hardware.
Otras empresas han desarrollado modelos de IA internos que funcionan de manera sólida. La inferencia de IA es fundamental para estas empresas, por lo que a menudo crean un equipo de ingenieros de hardware/nube que pasan horas buscando métodos listos para usar para optimizar la implementación del modelo.
¿Perteneces a uno de estos dos grupos? Entonces podría estar interesado en la biblioteca nebullvm, y a continuación le explicamos por qué.
¿Cómo funciona nebullvm?
Importa la biblioteca, nebullvm hace algo de magia y su modelo de IA se ejecutará de 5 a 20 veces más rápido.
Y eso es. En tan solo unas pocas líneas de código.
El objetivo de la biblioteca nebullvm es permitir que cualquier desarrollador se beneficie de los compiladores de aprendizaje profundo sin tener que perder toneladas de horas entendiendo, instalando, probando y depurando esta poderosa tecnología.
Nebullvm se está volviendo popular rápidamente, con más de 250 estrellas de GitHub el día del lanzamiento y cientos de usuarios activos tanto de nuevas empresas como de grandes empresas tecnológicas. La biblioteca pretende ser:
💻 Modelo de aprendizaje profundo agnóstico. nebullvm es compatible con todas las arquitecturas más populares, como transformadores, LSTM, CNN y FCN.
🤖 Hardware agnóstico . La biblioteca ahora funciona en la mayoría de las CPU y GPU y pronto admitirá TPU y otros ASIC específicos de aprendizaje profundo.
🔥 Marco agnóstico . nebullvm admite los marcos más utilizados (PyTorch, TensorFlow y Hugging Face) y pronto admitirá muchos más.
🔑 Seguro. Todo se ejecuta localmente en su máquina.
☘️ Fácil de usar . Se necesitan unas pocas líneas de código para instalar la biblioteca y optimizar sus modelos.
✨ Aprovechando los mejores compiladores de aprendizaje profundo . Hay toneladas de compiladores DL que optimizan la forma en que sus modelos de IA se ejecutan en su hardware. Un desarrollador tardaría toneladas de horas en instalarlos y probarlos en cada implementación de modelo. ¡La biblioteca lo hace por ti!
¿Por qué es tan valioso acelerar la computación de 5 a 20 veces?
Para ahorrar tiempo → Acelere sus servicios de IA y hágalos en tiempo real.
Para ahorrar dinero → Reducir los costos de computación en la nube.
Para ahorrar energía → Reduzca el consumo de electricidad y la huella de carbono de sus servicios de IA.
Probablemente pueda comprender fácilmente cómo la computación acelerada puede beneficiar su caso de uso específico. También le proporcionaremos algunos casos de uso sobre cómo nebullvm está ayudando a muchos miembros de la comunidad en diferentes sectores:
La informática rápida hace que los motores de búsqueda y recomendación sean más rápidos, lo que conduce a una experiencia de usuario más agradable en sitios web y plataformas. Además, la IA casi en tiempo real es un requisito estricto para muchas empresas de tecnología de la salud y para la conducción autónoma, cuando un tiempo de respuesta lento puede poner en peligro la vida de las personas. El metaverso y la industria de los juegos también requieren una latencia cercana a cero para permitir que las personas interactúen sin problemas. La velocidad también puede proporcionar una ventaja en sectores como el comercio criptográfico/NFT/rápido.
Reducir los costos con el mínimo esfuerzo nunca le hace daño a nadie. Hay poco que explicar sobre esto.
Green AI es un tema que se está volviendo más popular con el tiempo. Todo el mundo es muy consciente de los riesgos y las implicaciones del cambio climático y es importante reducir el consumo de energía en la medida de lo posible. La conciencia generalizada sobre el problema se refleja en cómo el comportamiento de compra en todos los sectores se está moviendo hacia una mayor sostenibilidad. Además, el bajo consumo de energía es un requisito del sistema en algunos casos, especialmente en dispositivos IoT/edge que pueden no estar conectados a fuentes de energía continua.
Sugerimos probar la biblioteca en su modelo de IA de inmediato siguiendo las instrucciones de instalación en Github . Si, en cambio, desea obtener una idea práctica de las capacidades de la biblioteca, consulte los cuadernos en este enlace donde puede probar nebullvm en modelos populares de aprendizaje profundo. Tenga en cuenta que las computadoras portátiles aún requerirán que instale la biblioteca, ya que probará nebullvm en sus modelos, lo que llevará varios minutos. Una vez instalado, nebullvm optimizará sus modelos en poco tiempo.
También hemos probado nebullvm en modelos populares de IA y hardware de proveedores líderes.
A primera vista, podemos observar que la aceleración varía mucho entre los acoplamientos de modelo de hardware. En general, la biblioteca brinda excelentes resultados positivos, la mayoría de los cuales van de 2 a 30 veces más acelerados.
A modo de resumen, los resultados son:
Nebullvm proporciona una aceleración positiva a los modelos de IA no optimizados
La siguiente tabla muestra el tiempo de respuesta en milisegundos (ms) del modelo no optimizado y el modelo optimizado para los diversos acoplamientos modelo-hardware como valor promedio de 100 experimentos. También muestra la aceleración proporcionada por nebullvm, donde la aceleración se define como el tiempo de respuesta del modelo optimizado sobre el tiempo de respuesta del modelo no optimizado.
El hardware utilizado para el experimento es el siguiente:
Nebullvm aprovecha los mejores compiladores de aprendizaje profundo para acelerar los modelos de IA en la inferencia.
Entonces, ¿qué son exactamente los compiladores de aprendizaje profundo?
Un compilador de aprendizaje profundo toma su modelo como entrada y produce una versión eficiente del mismo que ejecuta el gráfico de cálculo del modelo más rápido en un hardware específico.
¿Cómo?
Existen varios métodos que, en principio, intentan reorganizar los cálculos de las redes neuronales para hacer un mejor uso del diseño de la memoria del hardware y optimizar la utilización del hardware.
En términos muy simples, la optimización del aprendizaje profundo se puede lograr mediante la optimización de todo el gráfico de cálculo de extremo a extremo, así como mediante la reestructuración de operadores (principalmente para bucles relacionados con multiplicaciones de matrices) dentro del gráfico [ 1 , 2 ]. Estos son algunos ejemplos de técnicas de optimización:
La optimización del aprendizaje profundo depende en gran medida del acoplamiento específico de hardware y software, y los compiladores específicos funcionan mejor en acoplamientos específicos. Por lo tanto, es difícil saber a priori el rendimiento de los muchos compiladores de aprendizaje profundo en el mercado para cada caso de uso específico y es necesario realizar pruebas. Esto es exactamente lo que hace nebullvm , ahorrando a los programadores incontables horas.
El equipo detrás de nebullvm es un grupo de antiguos miembros del MIT, ETH y EPFL que se unieron y lanzaron Nebuly . Desarrollaron esta biblioteca de código abierto junto con muchas otras excelentes tecnologías para hacer que la IA sea más eficiente. Puede obtener más información sobre Nebuly en su sitio web , LinkedIn , Twitter o Instagram .
Muchas felicitaciones para Diego Fiori , el principal colaborador de la biblioteca. Diego es una persona curiosa y siempre sedienta de conocimiento, que le gusta consumir tanto como la buena mesa y el buen vino. Es un programador versátil, muy celoso de su código y nunca deja que su código parezca menos que magnífico. En definitiva, Diego es el CTO de Nebuly .
Muchas gracias también a la comunidad de código abierto que ha desarrollado numerosos compiladores DL que permiten acelerar los modelos de IA.
Y finalmente, muchas gracias a todos aquellos que están apoyando a la comunidad de código abierto de nebullvm , encontrando errores y corrigiéndolos, y permitiendo la creación de este acelerador de IA superpoderoso de última generación.
Documentos y artículos sobre compiladores de aprendizaje profundo.
Documentación de compiladores de aprendizaje profundo utilizados por nebullvm.