Esta publicación fue revisada por:  Luiz Felix, Fernando Santos, Hellen Lima

Los procesos de selección siempre son un tema muy debatido en cualquier área, ya que pueden ser largos e intensos. En Nu, siempre discutimos cómo hacerlos más enfocados en las habilidades esenciales para cada función. Nuestras entrevistas tienen como objetivo recopilar la mayor cantidad de información sobre las personas candidatas para tomar las mejores decisiones de contratación. Aun así, sabemos que es imposible resumir todas las experiencias y habilidades de una persona en solo unas pocas preguntas, respuestas y ejercicios durante una cantidad limitada de entrevistas.

Como Nubank es una empresa que ha utilizado la ciencia de datos desde su fundación en 2013, eso significa que ya hemos entrevistado a muchas personas para diferentes roles, como Científicos de Datos, Ingenieros de Machine Learning y Managers de Ciencia de Datos.

Si deseas conocer más sobre las etapas de los procesos de selección para posiciones de Ciencia de Datos e Ingeniería de Machine Learning, este es el artículo indicado!

Aquí van nuestros consejos:

1. Entiende el problema primero

En muchas situaciones, las personas candidatas pueden ser cuestionadas sobre cómo resolver un problema específico utilizando machine learning. En los procesos de selección de Nu, es común que las preguntas aborden problemas reales de negocio, exigiendo que la persona candidata considere diferentes posibilidades, sus ventajas y desventajas, así como las implicaciones de esas decisiones para el negocio en general.

Muchas veces, comprender el problema es más importante que la propia solución. Cuando el problema está claramente definido, identificar y validar las posibles soluciones se vuelve considerablemente más fácil.  

El punto principal aquí es asegurar que la persona candidata haga preguntas y entienda el problema y las posibilidades involucradas antes de comenzar a trabajar en la solución. En algún momento, por ejemplo, puede ser pertinente utilizar técnicas de exploración de datos para entender algunos patrones en eventos pasados y, a partir de eso, proponer el desarrollo de un modelo de machine learning. En resumen, la persona candidata debe explorar estas decisiones y sopesarlas.

Descubre las oportunidades

2. Reconoce cuándo no usar soluciones de Ciencia de Datos o Machine Learning

Estos son algunos ejemplos de cuánEs esencial preocuparse más por los resultados del negocio que por cómo se logran estos resultados. La ciencia de datos no es un fin en sí misma. Aquí hay algunos ejemplos de cuándo las soluciones basadas en machine learning pueden no ser apropiadas:

  • Cuando el costo de implementar una solución basada en machine learning es mayor que el beneficio de resolver el problema, haciendo que este enfoque sea inviable.
  • Cuando el negocio necesita una solución rápida para resolver un problema urgente, mientras que las tareas de modelado y entrenamiento del modelo tardarían demasiado.
  • Cuando no hay suficientes datos disponibles. En este caso, una heurística creada manualmente puede ser suficiente hasta que se recopile un volumen adecuado de datos.

3. Comprender cómo y dónde las aplicaciones que utilizan machine learning difieren del software tradicional  

Los sistemas que utilizan machine learning comparten muchas características con el software tradicional, pero también presentan desafíos únicos. Además de ser aspectos importantes en la decisión de usar o no machine learning, es importante estar atento a estos desafíos.

Los sistemas de producción con machine learning necesitan estar conectados a la infraestructura subyacente de alguna manera. El código debe ser reproducible, tener control de versiones y pasar por rigurosas pruebas unitarias y de integración. Además, debe ser extraído para otras bibliotecas y compartido entre el equipo. La complejidad del código debe mantenerse bajo control para que sea fácil analizarlo y refactorizarlo más tarde.

Resumiendo, todo lo que has aprendido sobre ingeniería de software básica también se aplica al código de machine learning.

Entre las principales diferencias entre los sistemas de machine learning y el software común se encuentran:

Seguimiento de datos: si deseas reproducir el comportamiento de un sistema de machine learning, necesitas no solo el código exacto que se utilizó, sino también los datos empleados en los momentos de entrenamiento y predicción. Si deseas saber más sobre este tema, este post presenta una introducción al tema.

Fallas silenciosas: un sistema que utiliza machine learning puede producir resultados inesperados sin una alerta clara. Por ejemplo, si un recurso importante para tu modelo falla debido a problemas con los datos, el sistema continuará haciendo predicciones sin saber que está recibiendo datos inadecuados.

4. Reconocer el equilibrio entre rendimiento y complejidad del modelo

Los modelos más complejos generalmente ofrecen un rendimiento superior, pero requieren más recursos de hardware y demandan un entorno de implementación más sofisticado. En la práctica, esto se refleja en mayores costos de ejecución, mayor necesidad de mantenimiento, monitoreo más desafiante y una mayor dificultad para entender cómo los datos presentados al modelo influyen en sus predicciones.

Por eso, vale la pena considerar los siguientes aspectos al evaluar si un modelo más simple o más complejo es adecuado para resolver un determinado problema:

  • ¿Cuál es la ganancia práctica de sustituir un modelo simple, como un árbol de decisión, por una red neuronal, por ejemplo?
  • ¿Cómo ponderar la cantidad de variables explicativas a añadir en el modelo?
  • ¿Cuál es el costo-beneficio de esta optimización en el rendimiento del modelo?

La respuesta a estas preguntas suele ser “depende de la demanda del negocio”. El trabajo del Científico de Datos es ayudar a las partes interesadas a entender dónde trazar la línea y cuándo comenzamos a ver rendimientos decrecientes.

5. Considera cómo los modelos generan resultados de negocio

Cuanto mayor sea tu nivel de experiencia, mayor será la expectativa de que puedas identificar cómo los modelos de machine learning ayudan a resolver problemas de negocio. Por lo tanto, es importante saber explicar cómo el uso de un modelo más complejo puede traducirse en satisfacción del cliente, menor tiempo de espera o mayor tasa de satisfacción, y cómo estos aspectos pueden ser evaluados.

La contextualización del papel de un modelo de machine learning dentro del flujo de negocios puede depender de tu rol. Aquí hay algunas preguntas que pueden ayudarte durante este proceso:

Ciencia de datos:

  • “¿Cómo medirías el impacto de negocio de este modelo?”.
  • “Si te digo que personas no familiarizadas con técnicas de machine learning usarán los resultados de este modelo, ¿cómo cambiaría tu elección de modelo?”.

Ingeniería de machine learning:

  • “¿Cómo utilizaría una aplicación las predicciones producidas por este modelo?”.
  • “Pensando en el escenario X, ¿cuáles son las ventajas y desventajas de ejecutar este modelo como un servicio en tiempo real en lugar de una tarea diaria?”.

6. No tengas miedo de responder “no lo sé”

Es casi seguro que una persona candidata será preguntada sobre temas con los que no tiene experiencia, así que no tengas miedo de ser honesto en estas situaciones. Nadie espera que sepas todo, sino que seas capaz de aprender lo que sea necesario como parte de tu trabajo diario.

Pretender conocimiento sobre algo que no sabes es mucho peor que expresar desconocimiento. Es probable que el entrevistador haga preguntas más detalladas sobre los temas y note tu falta de conocimiento. No hay ningún problema en admitir la falta de experiencia en un determinado tema y tratar de aprender más sobre él con el entrevistador.

Aun así, es posible tener algún conocimiento correlato que ayude a arriesgar una suposición informada, dejando claro que se trata de una especulación. Cuando te pregunten sobre un tema desconocido, es posible responder algo como: “No sé exactamente a qué te refieres con X, pero basándome en el contexto y mi experiencia anterior, creo que es algo como… ¿Es correcto?.

7. Espera recibir preguntas sobre temas en los que afirmas tener experiencia

Es interesante destacar las experiencias en ciertas áreas relacionadas con la ciencia de datos/machine learning, especialmente cuando se conectan con el puesto al que estás postulando. Si estás entrevistándote para una empresa de visión computacional, por ejemplo, vale la pena mencionar que tienes experiencia trabajando con redes neuronales convolucionales y procesamiento de imágenes en tu trabajo anterior.

Naturalmente, esto atraerá preguntas específicas sobre esas áreas. Por lo tanto, es importante mantener tu currículum actualizado y asegurarte de que puedes responder preguntas sobre esos temas.

8.Considera la vida útil de una aplicación que utiliza machine learning  

Es importante entender cómo un sistema con machine learning evoluciona de una idea a un sistema de producción real. Hablemos brevemente sobre las tres principales etapas del ciclo de vida de un sistema así. Nuestro blog cuenta con textos dedicados a los problemas pertinentes a cada uno de estos momentos.

  • Antes: antes de tener un modelo funcional, es necesario entender el problema a resolver y asegurarse de que DS/ML es el camino a seguir. En este punto, probablemente hablarás con varias partes interesadas, como gerentes de producto, analistas de negocios e ingenieros de software. Asegúrate de que todas las partes involucradas comprendan los límites y cómo se utilizará el modelo.
  • Durante: durante el análisis y modelado de los datos, se prueban muchas suposiciones y, una vez más, habrá mucha comunicación para validar suposiciones y actualizar a las partes interesadas a medida que el proyecto avanza. En este punto, generalmente necesitas pensar en una capa de reglas de negocio que transformará la salida del modelo en decisiones finales para la aplicación. La primera implementación es un paso crucial del proyecto, en el que muchas cosas pueden salir mal. Es en este momento cuando el modelo se integra a la infraestructura de la que formará parte. Será necesario hacer pruebas y ajustes antes de estar completamente preparado para ser utilizado en el entorno de producción.
  • Después: después de la implementación del modelo, es imprescindible monitorear las rutinas para asegurarse de que las entradas y salidas estén funcionando como se espera. Por último, debes considerar si y cuándo debes entrenar el modelo nuevamente, y si el propio modelo afectará los próximos conjuntos de entrenamiento.

Descubre las oportunidades