Programa para residentes de Yandex, o Cómo convertirse en un ingeniero de ML para un back-end experimentado



Yandex abre un programa de aprendizaje automático para desarrolladores experimentados de backend. Si ha escrito mucho en C ++ / Python y desea aplicar este conocimiento en ML, le enseñaremos cómo hacer investigación práctica y seleccionar curadores experimentados. Trabajará en servicios clave de Yandex y obtendrá habilidades en áreas tales como modelos lineales y aumento de gradiente, sistemas de recomendación, redes neuronales para analizar imágenes, texto y sonido. También aprenderá cómo evaluar adecuadamente sus modelos utilizando métricas fuera de línea y en línea.

La duración del programa es de un año, durante el cual los participantes trabajarán en el Departamento de Inteligencia de Máquinas y Estudios Yandex, además de asistir a conferencias y seminarios. La participación se paga y asume el pleno empleo: 40 horas a la semana, a partir del 1 de julio de este año. Las aplicaciones ya están abiertas y durarán hasta el 1 de mayo.

Y ahora con más detalle: sobre qué tipo de audiencia estamos esperando, cuál será el flujo de trabajo y, en general, cómo un especialista de backend cambiará a una carrera en ML.

Directividad


Muchas empresas tienen programas de residencia, incluidos, por ejemplo, Google y Facebook. Están dirigidos principalmente a especialistas de nivel junior e intermedio que intentan avanzar hacia la investigación de ML. Nuestro programa es para un público diferente. Invitamos a los desarrolladores de back-end que ya han adquirido suficiente experiencia y saben con certeza que en sus competencias deben avanzar hacia el aprendizaje automático, adquirir habilidades prácticas, y no habilidades científicas, para resolver problemas industriales de aprendizaje automático. Esto no significa que no apoyamos a los investigadores jóvenes. Para ellos, organizamos un programa separado: el Premio Ilya Segalovich, que también le permite trabajar en Yandex.

Donde el residente tiene que trabajar


Nosotros, en la gestión de la inteligencia y la investigación de máquinas, desarrollamos ideas de proyectos. La principal fuente de inspiración es la literatura científica, artículos y tendencias en la comunidad de investigación. Mis colegas y yo analizamos lo que leemos, vemos cómo es posible mejorar o ampliar los métodos propuestos por los científicos. Al mismo tiempo, cada uno de nosotros tiene en cuenta nuestra área de conocimiento e intereses, formula el problema en función de áreas que consideramos importantes. En la unión de los resultados de la investigación externa y sus propias competencias, generalmente nace la idea de un proyecto.

Tal sistema es bueno porque resuelve en gran medida los problemas tecnológicos de los servicios de Yandex incluso antes de que surjan. Cuando surge un problema antes de un servicio, sus representantes acuden a nosotros para tomar las tecnologías ya preparadas por nosotros, que solo pueden aplicarse correctamente en el producto. Si algo no está listo, recordaremos al menos rápidamente dónde puede "comenzar a cavar", en qué artículos buscar una solución. Como saben, el enfoque científico es pararse sobre los hombros de los gigantes.

Que hacer


En Yandex, e incluso específicamente en nuestra gestión, se están desarrollando todas las direcciones actuales de ML. Nuestra tarea es mejorar la calidad de una amplia variedad de productos, y esto sirve como un incentivo para probar todo lo nuevo. Además, regularmente aparecen nuevos servicios. Entonces, en el programa de conferencias hay todas las áreas clave (bien establecidas) del aprendizaje automático en el desarrollo industrial. Al compilar mi parte del curso, utilicé la experiencia docente en la Escuela de Análisis de Datos, así como los materiales y desarrollos de otros maestros de SHAD. Sé que mis colegas hicieron lo mismo.

En los primeros meses, la capacitación en el programa del curso será aproximadamente el 30% de su tiempo de trabajo, luego aproximadamente el 10%. Sin embargo, es importante comprender que trabajar con los propios modelos de ML continuará tomando aproximadamente cuatro veces menos que todos los procesos asociados. Estos incluyen preparar un backend, recibir datos, escribir una tubería para su preprocesamiento, optimizar el código, adaptarse a un hardware específico, etc. Un ingeniero de ML es, si lo desea, un desarrollador fullstack (solo con un gran sesgo en el aprendizaje automático), capaz de resuelve el problema de principio a fin. Incluso con un modelo listo para usar, sin duda tendrá que realizar una serie de acciones: paralelizar su ejecución en varias máquinas, preparar una implementación en forma de bolígrafo, biblioteca o componente del servicio en sí.

Elección del estudiante
Si tiene la impresión de que es mejor ir a ingenieros de ML trabajando primero como desarrollador de backend, no es así. Ingresar al mismo SHAD sin experiencia real en el desarrollo de servicios, aprender y ser extremadamente popular en el mercado es una excelente opción. Muchos expertos de Yandex estaban en sus puestos actuales de esta manera. Si alguna compañía está lista para ofrecerle un trabajo en el campo de ML inmediatamente después de la graduación, probablemente valga la pena aceptar la oferta. Intenta formar un buen equipo con un mentor experimentado y prepárate para aprender mucho.

Lo que generalmente interfiere con ML


Si el backender quiere convertirse en un ingeniero de ML, él, sin tener en cuenta el programa de residentes, puede elegir entre dos direcciones de desarrollo.

En primer lugar, estudiar como parte de un curso educativo. Las lecciones en Coursera lo acercarán a comprender las técnicas básicas, pero para sumergirse lo suficiente en la profesión, debe dedicarle mucho más tiempo. Por ejemplo, termine el SHAD. En diferentes años, había un número diferente de cursos directamente en aprendizaje automático en ShAD, en promedio, alrededor de ocho. Cada uno de ellos es realmente importante y útil, incluso según los graduados.

En segundo lugar, puede participar en proyectos de combate donde se requiere implementar uno u otro algoritmo ML. Sin embargo, hay muy pocos proyectos de este tipo en el mercado de desarrollo de TI: el aprendizaje automático no se usa en la mayoría de las tareas. Incluso en los bancos que están explorando activamente las oportunidades relacionadas con el LD, pocos analizan los datos. Si no puede unirse a uno de estos equipos, debe comenzar su propio proyecto (donde, muy probablemente, establecerá los plazos usted mismo, y esto tiene poco que ver con las tareas de producción de combate), o comenzar a competir en Kaggle.

De hecho, asociarse con otros miembros de la comunidad y probarse en concursos es relativamente fácil , especialmente si refuerza sus habilidades con la capacitación y los cursos mencionados en Coursera. Cada competencia tiene una fecha límite: servirá como un incentivo para usted y se preparará para un sistema similar en las empresas de TI. Esta es una buena manera, que, sin embargo, también está un poco divorciada de los procesos reales. En Kaggle se le proporcionan datos preprocesados, aunque no siempre perfectos; No ofrezca pensar en la contribución al producto; y lo más importante, no requieren soluciones adecuadas para la producción. Es probable que sus algoritmos sean factibles y tengan una alta precisión, pero sus modelos y códigos se verán cosidos de diferentes partes de Frankenstein: en un proyecto de combate, toda esta construcción funcionará muy lentamente, será difícil de actualizar y expandir (por ejemplo, los algoritmos de lenguaje y voz siempre corresponde parcialmente con el desarrollo del lenguaje). Las empresas están interesadas en el hecho de que no solo usted puede hacer el trabajo anterior (está claro que usted, como autor de la solución, puede hacerlo), sino también cualquiera de sus colegas. Mucho se ha dicho acerca de la diferencia entre la programación deportiva e industrial, y Kaggle educa precisamente a los "atletas", incluso si lo hace muy bien, lo que le permite ganar algo de experiencia.

Describí dos posibles líneas de desarrollo: entrenamiento a través de programas educativos y entrenamiento "en batalla", por ejemplo en Kaggle. El programa de residentes es una combinación de estos dos métodos. Conferencias y seminarios del nivel SHAD te están esperando, así como verdaderos proyectos de combate.

Source: https://habr.com/ru/post/446554/


All Articles