¿La ciencia de los datos se vuelve aburrida?
Cómo me enfrento a los aburridos días de implementar Machine Learning
TLDR : Muchas personas escogen las partes emocionantes de hacer Ciencia de Datos (o ML, Machine Learning) para motivarse a sí mismos y a otros. Pero debemos enfrentarnos a una realidad: el trabajo real es a menudo “aburrido” — aburrido como compararlo con lo que la gente romantiza. La sensación de aburrimiento crea tensión; en última instancia, conduce a una alta tasa de rotación en la ciencia de los datos. Quiero compartir lo que realmente hago y cómo me enfrento a la “aburrimiento en la ciencia de los datos”. Espero ayudarlos, los aspirantes a científicos de datos, a establecer las expectativas correctas. Por lo tanto, una vez que usted decide seguir una carrera de la ciencia de datos, usted está en ella para el juego largo. Disfrútalo.
Actualización: Hacia la Ciencia de los Datos y yo grabamos una entrevista sobre este blog. Vea el enlace de vídeo al final del artículo.
Descargo de responsabilidad : Este post no está avalado o patrocinado por ninguna de las empresas para las que trabajo. Uso el término Ciencia de datos y ML indistintamente.
Mi joven y guapo primo, Shawn, vino recientemente a Canadá. Él está aquí para seguir un máster en Ciencias de la Computación. Como muchos estudiantes, Shawn es muy apasionado por el aprendizaje automático. Quiere convertirse en un científico de datos (o cualquier cosa que tenga que ver con ML) cuando se gradúa en 2 años.
Como hermano mayor con un interés genuino en el éxito de Shawn, decidí compartir el aprendizaje más cauteloso de mi carrera en ciencias de datos — es no “el trabajo más sexy del siglo XXI” como HBR retratado; es aburrido; es drenante; es frustrante. Al igual que cualquier otra carrera .
Es mi obligación decirle a Shawn la verdad, incluso es decepcionante. Le ayudará a tomar una decisión informada sobre su elección de carrera ( más importante , evitaré las llamadas telefónicas de 3-AM de mi madre y mi tío, que definitivamente me darán lecciones sobre familia, responsabilidad, tutoría y honestidad).
Siendo un joven inteligente, impulsivo e inquisitivo, Shawn me pidió que explicara cómo se ve “aburrido”. De esto se trata este post.
Además, también abordamos las tendencias clave del ML y la manera de ser relevante y destacar. Compartiré esto en algunos puestos de seguimiento. Por favor. Sígueme. Medio si estás interesado.
Es importante reconocer que cómo llegué aquí (mi LinkedIn) para que puedas poner las cosas en perspectiva. Estoy ofreciendo mis observaciones y opiniones como gestor de la ciencia de los datos que lidera equipos para implementar sistemas de ML en empresas Fortune-100, gestiona relaciones con clientes y realiza algún trabajo técnico.
Algunas definiciones más importantes. Un Sistema ML es una solución que resuelve un problema de dominio de negocio, tiene un componente ML, y tiene todas las demás cosas del sistema no ML necesarias para trabajar con humanos o máquinas.
Desplegando significa conseguir la solución para impulsar operaciones de negocios reales. Por ejemplo, establecer experimentos para entrenar y validar un modelo de ML es no un despliegue; configurar un motor de recomendación que envía ofertas mensuales de productos por correo electrónico es un despliegue. El despliegue de sistemas ML se enfrenta a problemas muy diferentes que sólo la construcción de un buen modelo ML. Leer más aquí si estás interesado.
Dicho esto, no represento a las personas que se unieron, por ejemplo Google u otras empresas de alta tecnología, como desarrolladores junior y se convirtió en gerentes técnicos. Estas empresas hacen realmente un buen trabajo, pero argumento que representan sólo “el 1% superior” . Otras empresas del tipo Fortune-100 suelen estar rezagadas en sofisticación tecnológica, velocidad de adopción e inversión en herramientas y talentos de ingeniería.
En resumen, cuando digo que la ciencia de los datos es aburrida, quiero decir la sensación de desinflación cuando uno se da cuenta de la brecha entre la expectativa romántica y la realidad .
La mayoría de los jóvenes científicos de datos esperan pasar la mayor parte del tiempo jugando con y construyendo modelos de ML de lujo o presentando ideas innovadoras de negocios con visualizaciones coloridas. Claro, estos siguen siendo parte del trabajo.
Pero, a medida que las empresas reciben más educación, se centran más en los valores reales de la operación. Esto significa empresas quieren implementar más sistemas ML ; les importa menos cuántos modelos nuevos o tableros de mandos de lujo tienen. Como resultado, se pide a los científicos de datos que hagan los trabajos no relacionados con el ML. Esto conduce a la aburrimiento.
Califiquemos aún más lo que "aburrido" se ve como en la ciencia de los datos, será muy aburrido si les muestro mi típico día-de-lunes-a-viernes. Por lo tanto, voy a categorizar mi trabajo en grandes cubos de trabajo, destacar la realidad esperada vs., y compartir mis mecanismos de afrontamiento.
Usaré la narrativa. “nosotros” porque los ejemplos se extraen de una colección de experiencias y equipos. Puede que los ejemplos no sean exhaustivos, pero creo que expondrán los puntos.
3.1 Diseño (5-10% del tiempo)
Aquí es cuando colectivamente nos ponemos “altos” intelectualmente para resolver problemas y proponer ideas brillantes. Estas ideas pueden incluir nueva arquitectura de modelos, características de datos y diseño de sistemas, etc. Muy pronto, llegaríamos a un nivel bajo porque necesitamos ir con la solución más simple (y a menudo la más aburrida) debido a las limitaciones de tiempo y otras prioridades.
Previstas : Implementamos ideas que pueden aparecer en revistas ML famosas, como NIPS, Google blog de investigación de la inteligencia artificial, etc. Tal vez incluso ganar el próximo Premio Nobel.
Realidad : Implementamos cosas que hacen bien el trabajo. Tomamos fotos de unos bonitos dibujos de pizarra blanca para los que vale la pena enmarcar.
Mecanismo de Enfrentamiento: 1) Sigue hablando de las ideas locas sobre las bebidas con amigos fuera de mi dominio; pueden ser brutalmente honestos (y groseros) al cerrar las ideas locas, pero estúpidas, 2) hacer las ideas locas e inteligentes como proyectos paralelos, 3) resulta que la mayoría de las ideas locas no funcionan realmente o es sólo marginalmente mejor que las ideas simples. Así que validar y reforzar el principio KISS (Keep-It-Simple-Stupid) siempre me da comodidad y cierre.
3.2 Codificación (20–70% del tiempo depende del rol)
No hay mucho que decir aquí. Aquí es cuando nos ponemos auriculares, tomamos un poco de café, estiramos los dedos, nos fijamos en las pantallas, tecleamos hermosas líneas de códigos, y dejamos que la magia suceda.
Nuestros códigos generalmente encajan en cinco categorías (% del total de líneas de código): tubería de datos (50-70%), sistema e integración de cosas (10-20%), modelo ML (5-10%), análisis para soportar depuración y presentaciones (5-10%). Está aproximadamente en línea con las observaciones de otras personas. Aquí hay un panorama más amplio.
Como pueden ver, pasamos la mayor parte del tiempo trabajando en cosas aburridas no-ML. Aunque el componente ML es muy crítico, los marcos modernos y los lenguajes de codificación (por ejemplo: Keras, XGBoost, Sklearn de Python, etc) han abstraído mucho de la complejidad. Esto significa que lograr los resultados que necesitamos no requiere una base de código pesada; el flujo de trabajo ya está bien estandarizado y optimizado (hacer optimización de bajo nivel es diferente, pero probablemente sea el 1% de los casos).
Previstas : Pasas la mayor parte del tiempo desarrollando y refinando el componente ML; alguien más se encargará del resto.
Realidad : Nadie quiere 1) hacer cosas que no quieres hacer, 2) guardarte todas las cosas buenas para ti mismo, y 3) pasar una cantidad desproporcionada de tiempo en un flujo de trabajo ya bien optimizado.
Mecanismo de respuesta : Todos tomamos pistas para tomar decisiones de diseño basadas en nuestra experiencia de dominio y ser el desarrollador principal para nuestra parte mientras que juega un papel de apoyo en otros (por ejemplo. contribuir con ideas, haciendo algún desarrollo práctico, o QA). Hacerlo nos permite jugar a nuestras fortalezas mientras aprendemos de otros. Lo que es más importante, ayuda a evitar la tensión de luchar por el “trabajo sexy”.
3.3 QA, Debug, y la fijación Sh*t (al menos el 65% de las veces)
En mi opinión, esta es la parte más aburrida y dolorosa de cualquier trabajo de desarrollo técnico. El desarrollo de sistemas de ML no es una excepción.
En el contexto del ML, hay dos tipos de “bugs”: malos resultados y problemas de software tradicional. Malos resultados se refieren a las puntuaciones bajas del modelo (p. ej. precisión o precisión) o predicciones insensibles (por ejemplo: las probabilidades son muy sesgadas en base a la experiencia de negocio). Nada está mal con el código, es sólo que los resultados no tienen sentido o no lo suficientemente bueno. Cuestiones de software tradicionales incluir cosas como códigos rotos o problemas de configuración del sistema.
Previstas : Sólo tenemos que lidiar con los malos resultados y pensar en formas más inteligentes de construir mejores modelos. Esto es aún algo interesante intelectualmente; también es gratificante ver que el rendimiento aumenta debido a algunas buenas ideas.
Realidad : Fuera del tiempo que pasamos en soluciones de QA /debug/apply, ~70-90% están en problemas de software tradicionales. Por lo general, podemos lograr un resultado suficientemente bueno con bastante rapidez después de construir la tubería de formación y validación de modelos de extremo a extremo. Entonces a menudo despriorizamos el modelo para centrarnos en las cuestiones del sistema.
Mecanismo de respuesta : Yo gamify y mantengo una “Trophy Board” usando la función Problemas de Github. Tengo un apuro instantáneo de dopamina cuando cierro los tickets de emisión. Me siento orgulloso de ver los temas que “conquistamos”, más orgulloso. Por supuesto, estoy más orgulloso si todo funciona mágicamente cuando golpeo “go” — sólo sucedió una vez en una tarea de programación en la universidad. Recordaré ese sentimiento por el resto de mi vida. Si sucede de nuevo en la vida real, probablemente algo está mal.
3.4 Lucha contra los incendios (10-50% del tiempo)
Esto es una pesadilla para cualquier gerente de equipo de entrega y no específico para la ciencia de datos. No importa lo pensado que esté la línea de tiempo. Las cosas siempre salen y te sacan del camino. Para ser concretos, las sorpresas se pueden agrupar en tres categorías: a) cuestiones externas como el cambio de alcance, la dependencia del sistema ascendente, y el cliente se queja, b) Asuntos de equipo interno como molesto error que toma mucho más tiempo resolver de lo esperado, la gente consigue nuevos puestos de trabajo y no la transición correctamente, falta de personal, conflictos de personalidad, y c) mi propia ignorancia , que es un cubo diverso para “otros”.
Previstas : crucero desde el principio hasta el final. Choca esos cinco y abrazos de los clientes, tu jefe y tu equipo.
Realidad : cosas inesperadas suceden generalmente en el tiempo más inconveniente. Hay patrones generales, pero no hay fórmula general, lo que lo hace frustrante.
Mecanismo de respuesta : 1) multiplicar la línea de tiempo por 2-2.5x para dejar suficiente espacio de amortiguación si se relaciona con cosas técnicas profundas o actividades entre equipos, 2) ser agresivo al establecer hitos internamente, 3) juro en voz alta en mi mente, bueno, algunas veces verbalmente cuando sea apropiado, 4) respirar, sonreír y escuchar, 5) explorar todas las opciones posibles con el equipo y priorizar por viabilidad, esfuerzo y resistencia, 6) si ninguno de estos trabajos, no espere, pedir ayuda! 7) sólo ejecutar. Muchos de ellos no son mecanismos de supervivencia propiamente dichos, pero son buenas prácticas y han funcionado bien.
Todo esto quiere decir que la ciencia de datos del mundo real es difícil. Las personas con aspiraciones a seguir una carrera en ML deben reconocer el hecho de que hay mucho más que sólo construir modelos. Eventualmente te aburrirás y frustrarás, al igual que lo harías con cualquier carrera. Está bien y es normal. Lo más importante, usted debe desarrollar un mecanismo de afrontamiento para que pueda permanecer en el juego a largo plazo, y disfrutar de la pequeña recompensa a lo largo del camino y la victoria final .
Esto es sólo una parte de mi conversación con Shawn. En dos posts de seguimiento, compartiré mis pensamientos sobre cómo puede ser el campo en 2 años y cómo seguir siendo relevante y destacado . ¡Manténganse atentos!
Artículos Relacionados: