Tarjeta de título creada por el autor. Soy ingeniero principal de aprendizaje automático (ML) en una empresa de Fortune 50, y una de las preguntas que me hacen con más frecuencia es la misma que se plantea en el título de esta publicación: “¿Qué es un ingeniero de ML? ?” La verdad es que no parece haber una respuesta única para todos. Si bien definitivamente no estoy buscando activamente un nuevo puesto, en realidad disfruto mirando las ofertas de trabajo de otras compañías solo para tener una idea de lo que otras compañías están buscando en términos de conjuntos de habilidades para ingenieros de ML. La realidad es que cuando se trata de roles como científicos de datos, ingenieros de ML e incluso algunos tipos de ingenieros de software, hay mucha superposición en términos de lo que se espera de los conjuntos de habilidades. La empresa A podría definir el rol de un ingeniero de ML exactamente de la misma manera que la empresa B define un rol de científico de datos, con cada uno de estos roles realizando exactamente las mismas actividades a pesar de las diferencias en el título. ¡Estas definiciones realmente varían bastante! Dicho esto, no voy a tratar de definir una definición muy precisa de un ingeniero de ML. (¡Porque estoy seguro de que haría enojar a alguien si intentara hacer eso!) En cambio, creo que un examen más útil sería una comprensión del conjuntos de habilidades generalmente asociado a ingenieros de ML. Después de analizar esos conjuntos de habilidades, yuxtapondremos específicamente los conjuntos de habilidades de un ingeniero de ML general con un científico de datos general, específicamente porque una de las preguntas que escucho con más frecuencia es: “¿Cuál es la diferencia entre un científico de datos y un ingeniero de ML?” Finalmente, concluiremos con un análisis sobre la dirección que espero que tome la industria para que pueda prepararse mejor para el futuro. Aunque es difícil precisar una definición precisa de un ingeniero de ML, al menos vemos suficientes puntos en común en los conjuntos de habilidades que podemos agruparlos en términos generales en tres categorías colectivas: aprendizaje automático / aprendizaje profundo, Ingeniería de softwarey arquitectura técnica. A continuación analizaremos más de cerca en qué consiste cada una de estas tres categorías. Antes de seguir adelante, quiero abordar un conjunto de habilidades que puede notar curiosamente que falta en la lista: ingeniería de datos. Omití intencionalmente la ingeniería de datos de esta lista porque, en realidad, la mayoría de las veces encuentro que este conjunto de habilidades a menudo requiere su propio rol, por lo que si bien definitivamente no es imposible que un ingeniero de ML realice la ingeniería de datos en su rol, con mayor frecuencia está relegado a un rol. como un analista de datos o un ingeniero de datos.
Este es el pan comido; esta justo en el titulo! Esto implica que un individuo construya un modelo predictivo para resolver algún tipo de problema comercial utilizando algoritmos de aprendizaje automático y aprendizaje profundo. Hablaremos un poco más de esto en la siguiente sección, pero en realidad parece que los ingenieros de ML se enfocan más en problemas más complejos desde el punto de vista computacional que terminan integrándose en sistemas en tiempo real. En otras palabras, escucho a muchos más ingenieros de ML que se enfocan en problemas de aprendizaje más profundos, como la visión por computadora o el procesamiento del lenguaje natural (NLP), que los escucho resolviendo problemas que involucran datos tabulares estructurados. Nuevamente, esto no quiere decir que un ingeniero de ML nunca construya modelos predictivos para datos tabulares. Parte de la razón por la que creo que un ingeniero de ML a menudo pasa más tiempo enfocándose en construir modelos computacionalmente más complejos es porque requiere nuestro próximo conjunto de habilidades…
Cuando se trata de aprendizaje profundo en particular, es absolutamente “imprescindible” que un ingeniero de ML tenga un conjunto de habilidades de ingeniería de software. Independientemente de si elige trabajar con TensorFlow, PyTorch o incluso otras bibliotecas algorítmicas menos complejas desde el punto de vista computacional, casi todo el aprendizaje automático se manifiesta en forma de código diseñado por software. Se requiere que la mayoría de los ingenieros de ML comprendan específicamente el lenguaje de codificación de Python, pero no es raro solicitar a un ingeniero de ML que comprenda un lenguaje secundario como Swift si crea aplicaciones de iOS o Java si crea aplicaciones de Android. Además, debido a que el aprendizaje automático aplicado se manifiesta como un producto de software, a menudo se requiere que los ingenieros de ML comprendan las cosas básicas que acompañan a cualquier otro rol general de ingeniero de software: pruebas unitarias, escaneo de seguridad, canalización de CI/CD y más.
Debido a que el aprendizaje automático aplicado/aprendizaje profundo se manifiesta como un producto de software, es muy común que un ingeniero de ML tenga un conjunto de habilidades de arquitectura técnica. Esta es la idea general de construir un “modelo” que demuestre cómo un sistema completo funciona en conjunto y funciona de manera apropiada. Este tipo de trabajo a menudo no se completa en el vacío. En mi propio papel como ingeniero de ML, me asocio con otros ingenieros de tecnología/software más generales para comprender cómo mis API de aprendizaje automático y las soluciones de inferencia por lotes desempeñan un papel en el sistema general global. Debido a que muchas empresas se están mudando a la nube, es común que una empresa solicite que un ingeniero de ML comprenda los servicios en la nube como Amazon Web Services (AWS), Google Cloud Platform (GCP) o Microsoft Azure en un nivel bastante complejo. A menudo se requiere que un ingeniero de ML sepa cómo se combinan varios servicios dentro de una de estas plataformas en la nube para implementar adecuadamente una solución de aprendizaje automático. Antes de pasar a la siguiente sección, permítame reiterar una vez más que las empresas definen estos roles de manera bastante ambigua, así que no se sorprenda si estas definiciones no coinciden con su propia experiencia. Una pregunta que escucho con frecuencia es “¿Cuál es la diferencia entre un científico de datos y un ingeniero de ML?” O incluso más sucintamente, “¿Hay alguna diferencia entre un científico de datos y un ingeniero de ML?” Creo que la respuesta a la última pregunta es sí, pero “trazar esa línea en la arena” es una tarea difícil. Demos un paso atrás para comprender qué es la ciencia de datos en general. La ciencia de datos se conoce como tal porque refleja la método científico. Sí, este es el mismo método científico que probablemente aprendiste en tu clase de biología en la escuela secundaria. Esencialmente, la ciencia de datos busca patrones entre los datos estableciendo un grupo experimental y un grupo de control y analizando la diferencia probabilística (valor p) entre ellos para comprender si existe algún significado estadístico. Si podemos encontrar una significación estadística, entonces podemos construir modelos predictivos que pueden extraer inferencias sobre datos futuros. De esta forma, la ciencia de datos no tiene una correlación directa de 1 a 1 con el aprendizaje automático. En otras palabras, no siempre tenemos que usar el aprendizaje automático para construir modelos predictivos. La industria de seguros en particular ha utilizado algoritmos matemáticos como modelos lineales generalizados (GLM) durante más de un siglo con gran efecto sin necesidad de aprendizaje automático. De hecho, muchos analistas actuariales y estadísticos han sido rebautizados recientemente como “científicos de datos” por este motivo, y estoy de acuerdo en que esta es una acción muy justa. (Justo, pero me parece más una herramienta de marketing/contratación más que nada. 😂) Con esta comprensión de la ciencia de datos, puede comenzar a ver una dicotomía entre los conjuntos de habilidades de un científico de datos y un ingeniero de ML. A menudo, se requiere que un científico de datos tenga una formación matemática más sólida, pero menos experiencia en ingeniería de software, ya que puede confiar en herramientas de “código bajo” como la herramienta SAS favorita de la industria para completar su trabajo. Tengo el placer de asesorar a muchos estudiantes de pregrado y posgrado en muchas de las universidades de renombre que se especializan en ciencia de datos, y le dirán que este es definitivamente el enfoque. Curiosamente, lo que NO es el enfoque de ninguno de los estudiantes con los que he hablado es ningún énfasis en la ingeniería de software ni en la arquitectura técnica. Cuando se trata de aprendizaje automático, los estudiantes a menudo pasan la mayor parte de su tiempo codificando un algoritmo de aprendizaje automático (por ejemplo, máquina de vectores de soporte, bayes ingenuos, árboles potenciados por gradientes) desde cero en el lenguaje de programación C++. Quiero tener mucho cuidado para que no sonaba como si estuviera minimizando el valor de un rol de científico de datos tradicional. Los científicos de datos siguen siendo extremadamente valiosos, ya que han demostrado su valía una y otra vez al construir estos excelentes modelos predictivos que brindan mucho valor a una empresa. Al final del día, no importa si se trata de aprendizaje automático o no: el valor comercial es el valor comercial. (Y para ser claros, muchos científicos de datos usan el aprendizaje automático para obtener ese valor comercial). Dicho esto, ya estamos viendo el surgimiento de nuevas tecnologías que requerirán conjuntos de habilidades adicionales de ingeniería de software y arquitectura técnica que tradicionalmente no encontrado en el rol de científico de datos. En mi análisis de las ofertas de trabajo en todas las empresas importantes, veo más énfasis en estos conjuntos de habilidades de ingeniería adicionales y, por lo tanto, una mayor necesidad de ingenieros de ML en general. Claro, es posible que no tengan necesariamente el título de “ingeniero de ML”, pero definitivamente puede esperar ver un interés continuo en las personas con una combinación de los tres conjuntos de habilidades mencionados anteriormente. La buena noticia es que si usted es un científico de datos hoy con una sólida formación matemática, personalmente creo que es el conjunto de habilidades más difícil de adquirir. Sí, no es fácil pasar a un nuevo conjunto de habilidades, pero me imagino que es más fácil para alguien con una sólida formación en ciencia de datos obtener un conjunto de habilidades de ingeniería de software que viceversa. ¡Espero que hayas disfrutado esta publicación! Reiterando por última vez: su experiencia con la definición del rol de ingeniero de ML variará. ¡Personalmente he disfrutado mucho mi tiempo en este papel! Proporciona este gran término medio de la creatividad del cerebro derecho al construir modelos que resuelven problemas realmente interesantes con la ingeniería del cerebro izquierdo para implementar esos modelos. ¡Estoy muy emocionado de ver hacia dónde va el futuro de nuestra industria! 😃
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…