6 mejores lenguajes de programación para el desarrollo de IA

¿Qué lenguaje de programación debe elegir para su proyecto de aprendizaje automático o aprendizaje profundo? Estas son sus mejores opciones

InfoWorld, publicación de la Consultora IDG, ha publicado recientemente un artículo sobre los mejores lenguajes para programar IA.

“La inteligencia artificial (IA) abre un mundo de posibilidades para los desarrolladores de aplicaciones. Al aprovechar el aprendizaje automático o el aprendizaje profundo, podemos producir mejores perfiles de usuario, personalización y recomendaciones, o incorporar una búsqueda más inteligente, una interfaz de voz o asistencia inteligente, o mejorar su aplicación de muchas otras maneras”.

La pregunta es, ¿Qué lenguaje de programación deberías aprender a sondear las profundidades de la IA?
InfoWorld presenta las herramientas que disponen de:

  • Un idioma con muchas buenas bibliotecas de aprendizaje automático y aprendizaje profundo
  • Un buen rendimiento en tiempo de ejecución
  • Un buen soporte de herramientas
  • Una gran comunidad de programadores
  • Un ecosistema saludable de paquetes de soporte

Aquí están las elecciones de Infoworld

Python

En el número uno, sigue siendo Python. Si bien hay cosas enloquecedoras acerca de Python, si está haciendo un trabajo de IA, es casi seguro que usará Python en algún momento. Y algunos de los puntos difíciles se han suavizado un poco.

A medida que avanzamos en 2020, el problema de Python 2.x frente a Python 3.x se está volviendo discutible ya que casi todas las bibliotecas principales admiten Python 3.xy deja de admitir Python 2.x tan pronto como sea posible. En otras palabras, finalmente puede aprovechar todas las nuevas características del lenguaje.

Y aunque las pesadillas de empaquetado de Python, donde cada solución diferente se rompe de una manera ligeramente diferente, todavía están presentes, puede usar Anaconda aproximadamente el 95% del tiempo y no preocuparse demasiado por las cosas.

Aún así, sería bueno si el mundo de Python solucionara este problema de big data.

No hay forma de evitarlo. Python es el lenguaje a la vanguardia de la investigación de IA, el que encontrará la mayor cantidad de marcos de aprendizaje automático y aprendizaje profundo, y el que casi todos en el mundo de la IA hablan.

Por estas razones, Python es el primero entre los lenguajes de programación de IA, a pesar de que su autor maldice los problemas de espacios en blanco al menos una vez al día.

C ++


Es poco probable que C ++ sea la primera opción al desarrollar una aplicación de IA, pero cuando sea necesario extraer hasta el último rendimiento del sistema, un escenario que se vuelve más común a medida que el aprendizaje profundo llega al límite y necesita ejecutar sus modelos en sistemas con recursos limitados: es hora de regresar a C++.

Afortunadamente, C ++ moderno puede ser agradable de programar. Tiene una variedad de enfoques. Puede sumergirse en la parte inferior de la pila, utilizando bibliotecas como CUDA de Nvidia para escribir su propio código que se ejecuta directamente en su GPU, o puede usar TensorFlow o PyTorch para obtener acceso a API flexibles de alto nivel.

Tanto PyTorch como TensorFlow le permiten cargar modelos generados en Python (o el subconjunto TorchScript de PyTorch de Python) y ejecutarlos directamente en un tiempo de ejecución de C ++, lo que lo acerca al metal desnudo para la producción mientras conserva la flexibilidad en el desarrollo.

En resumen, C ++ se convierte en una parte crítica del kit de herramientas a medida que las aplicaciones de AI proliferan en todos los dispositivos, desde el sistema embebido más pequeño hasta los grandes grupos.

La familia de lenguajes JVM continúa siendo una excelente opción para el desarrollo de aplicaciones de IA


Java y otros lenguajes JVM


La familia de lenguajes JVM (Java, Scala, Kotlin, Clojure, etc.) continúa siendo una excelente opción para el desarrollo de aplicaciones de IA.

Tiene una gran cantidad de bibliotecas disponibles, ya sea procesamiento de lenguaje natural (CoreNLP), operaciones de tensor (ND4J) o una pila completa de aprendizaje profundo acelerado por GPU (DL4J). Además, obtienes acceso fácil a plataformas de big data como Apache Spark y Apache Hadoop.

Java es la lengua franca de la mayoría de las empresas, y con las nuevas construcciones de lenguaje disponibles en Java 8 y versiones posteriores, escribir código Java no es la experiencia odiosa que muchos de nosotros recordamos. Escribir una aplicación de IA en Java puede parecer un poco aburrido, pero puede hacer el trabajo, y puede usar toda su infraestructura Java existente para el desarrollo, implementación y monitoreo.

JavaScript


Es poco probable que aprenda JavaScript únicamente para escribir aplicaciones de inteligencia artificial, pero TensorFlow.js de Google continúa mejorando y ofrece una forma intrigante de implementar sus modelos Keras y TensorFlow en su navegador o mediante Node.js utilizando WebGL para cálculos acelerados por GPU.

Sin embargo, una cosa que no hemos visto realmente desde el lanzamiento de TensorFlow.js es una gran afluencia de desarrolladores de JavaScript que inundan el espacio de AI.

Además, en el lado del servidor, la implementación de modelos con Node.js no es realmente una gran ventaja en comparación con una de las opciones de Python, por lo que podemos ver que las aplicaciones de IA basadas en JavaScript permanecen principalmente basadas en el navegador en el futuro cercano. Pero eso todavía crea muchas oportunidades interesantes para divertirse como Emoji Scavenger Hunt.

Swift


En la versión del año pasado de este artículo, mencioné que Swift era un idioma para vigilar. Este año, se encuentra entre mis seis primeros. ¿Que pasó? Swift para TensorFlow. Una encuadernación totalmente tipada y sin fallas de las últimas y mejores características de TensorFlow, y magia oscura que le permite importar bibliotecas de Python como si estuviera usando Python en primer lugar.

El equipo de Fastai está trabajando en una versión Swift de su biblioteca popular, y prometieron muchas optimizaciones adicionales en la generación y ejecución de modelos con el movimiento de una gran cantidad de inteligencia tensorial en el compilador LLVM.

¿Está lista la producción ahora? En realidad no, pero puede indicar el camino hacia la próxima generación de desarrollo de aprendizaje profundo, por lo que definitivamente debe investigar lo que está sucediendo con Swift.

Lenguaje R


R aparece al final de la lista de Infoworld, y tiende a la baja. R es el lenguaje que aman los científicos de datos. Sin embargo, otros programadores a menudo encuentran a R un poco confuso, debido a su enfoque centrado en el marco de datos.

Si tiene un grupo dedicado de desarrolladores de R, entonces puede tener sentido usar las integraciones con TensorFlow, Keras o H2O para investigación, creación de prototipos y experimentación, pero dudo en recomendar R para uso en producción o para desarrollo de campo nuevo, debido a Rendimiento y preocupaciones operativas.

Si bien puede escribir código R que se pueda implementar en servidores de producción, es casi seguro que sea más fácil tomar ese prototipo R y volver a codificarlo en Java o Python.

Otras opciones de programación de IA

Por supuesto, Python, C ++, Java, JavaScript, Swift y R no son los únicos lenguajes disponibles para la programación de IA. Aquí hay dos lenguajes de programación más que puede encontrar interesantes o útiles, aunque no los consideraría como las principales prioridades para el aprendizaje.

Lua


Hace unos años, Lua estaba en lo más alto del mundo de la inteligencia artificial debido al marco Torch, una de las bibliotecas de aprendizaje automático más populares para las necesidades de investigación y producción.

Si profundiza en la historia de los modelos de aprendizaje profundo, a menudo encontrará abundantes referencias a Torch y mucho código fuente de Lua en los antiguos repositorios de GitHub.

Con ese fin, puede ser útil tener un conocimiento práctico de la API de Torch, que no está muy lejos de la API básica de PyTorch. Sin embargo, si, como la mayoría de nosotros, realmente no necesita hacer mucha investigación histórica para sus aplicaciones, probablemente pueda sobrevivir sin tener que entender las pequeñas peculiaridades de Lua.

Julia


Julia es un lenguaje de programación de alto rendimiento que se centra en la computación numérica, lo que lo hace una buena opción en el mundo de la inteligencia artificial con muchas matemáticas.

Si bien no es tan popular como una opción de idioma en este momento, los envoltorios como TensorFlow.jl y Mocha (fuertemente influenciados por Caffe) brindan un buen soporte de aprendizaje profundo.

Inforworld concluye: «Si no le importa el ecosistema relativamente pequeño y desea beneficiarse del enfoque de Julia en hacer que los cálculos de alto rendimiento sean fáciles y rápidos, entonces probablemente valga la pena echarle un vistazo».

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

Relacionados

Tendencias

Más leídos

Se habla de..

0
Would love your thoughts, please comment.x
()
x