Yandex Resident Program oder Wie man aus einem erfahrenen Backend ein ML-Ingenieur wird



Yandex eröffnet ein residentes maschinelles Lernprogramm für erfahrene Backend-Entwickler. Wenn Sie viel in C ++ / Python geschrieben haben und dieses Wissen in ML anwenden möchten, werden wir Ihnen beibringen, wie Sie praktische Forschung betreiben und erfahrene Kuratoren auswählen. Sie arbeiten an wichtigen Yandex-Diensten und erwerben Kenntnisse in Bereichen wie linearen Modellen und Gradientenverstärkung, Empfehlungssystemen und neuronalen Netzen zur Analyse von Bildern, Text und Ton. Sie erfahren auch, wie Sie Ihre Modelle mithilfe von Metriken offline und online richtig bewerten.

Die Dauer des Programms beträgt ein Jahr. Während dieser Zeit werden die Teilnehmer in der Abteilung für Maschinenintelligenz und Yandex-Forschung arbeiten sowie Vorlesungen und Seminare besuchen. Die Teilnahme wird bezahlt und setzt Vollbeschäftigung voraus: 40 Stunden pro Woche ab dem 1. Juli dieses Jahres. Die Bewerbungen sind bereits geöffnet und dauern bis zum 1. Mai.

Und jetzt im Detail - darüber, auf welche Art von Publikum wir warten, wie der Workflow aussehen wird und wie ein Backend-Spezialist generell zu einer Karriere in ML wechseln kann.

Richtwirkung


Viele Unternehmen haben Residency-Programme, darunter beispielsweise Google und Facebook. Sie richten sich hauptsächlich an Junior- und Intermediate-Level-Spezialisten, die versuchen, einen Schritt in Richtung ML-Forschung zu machen. Unser Programm richtet sich an ein anderes Publikum. Wir laden Backend-Entwickler ein, die bereits genügend Erfahrung gesammelt haben und sicher wissen, dass sie in ihren Kompetenzen auf ML umsteigen müssen, um praktische Fähigkeiten - und nicht die Fähigkeiten des Wissenschaftlers - bei der Lösung industrieller Probleme des maschinellen Lernens zu erwerben. Dies bedeutet nicht, dass wir junge Forscher nicht unterstützen. Für sie haben wir ein separates Programm organisiert - den Ilya Segalovich- Preis , mit dem Sie auch in Yandex arbeiten können.

Wo der Bewohner arbeiten muss


Beim Management von Maschinenintelligenz und Forschung entwickeln wir selbst Projektideen. Die Hauptinspirationsquelle ist wissenschaftliche Literatur, Artikel und Trends in der Forschungsgemeinschaft. Meine Kollegen und ich analysieren, was wir lesen, und sehen, wie es möglich ist, die von Wissenschaftlern vorgeschlagenen Methoden zu verbessern oder zu erweitern. Gleichzeitig berücksichtigt jeder von uns seinen Wissens- und Interessenbereich und formuliert das Problem anhand von Bereichen, die wir für wichtig halten. An der Schnittstelle der Ergebnisse externer Forschung und ihrer eigenen Kompetenzen entsteht normalerweise die Idee eines Projekts.

Ein solches System ist insofern gut, als es die technologischen Probleme von Yandex-Diensten weitgehend löst, noch bevor sie auftreten. Wenn vor einem Service ein Problem auftritt, kommen seine Vertreter höchstwahrscheinlich zu uns, um bereits von uns vorbereitete Technologien zu nutzen, die nur im Produkt korrekt angewendet werden können. Wenn etwas nicht fertig ist, werden wir uns zumindest schnell daran erinnern, wo Sie „anfangen können zu graben“, in welchen Artikeln Sie nach einer Lösung suchen müssen. Wie Sie wissen, besteht der wissenschaftliche Ansatz darin, auf den Schultern von Riesen zu stehen.

Was tun?


In Yandex - und sogar speziell in unserem Management - entwickeln sich alle aktuellen ML-Richtungen. Unsere Aufgabe ist es, die Qualität einer Vielzahl von Produkten zu verbessern. Dies ist ein Anreiz, alles Neue zu testen. Außerdem erscheinen regelmäßig neue Dienste. Im Vorlesungsprogramm gibt es also alle wichtigen (gut etablierten) Bereiche des maschinellen Lernens in der industriellen Entwicklung. Bei der Zusammenstellung meines Teils des Kurses habe ich die Unterrichtserfahrung an der School of Data Analysis sowie die Materialien und Entwicklungen anderer SHAD-Lehrer verwendet. Ich weiß, dass meine Kollegen dasselbe getan haben.

In den ersten Monaten beträgt die Schulung für das Kursprogramm ungefähr 30% Ihrer Arbeitszeit, dann ungefähr 10%. Es ist jedoch wichtig zu verstehen, dass die Arbeit mit den ML-Modellen selbst weiterhin etwa viermal weniger Zeit in Anspruch nimmt als alle damit verbundenen Prozesse. Dazu gehören das Vorbereiten eines Backends, das Empfangen von Daten, das Schreiben einer Pipeline für deren Vorverarbeitung, das Optimieren von Code, das Anpassen an bestimmte Hardware usw. Ein ML-Ingenieur ist, wenn Sie so wollen, ein Fullstack-Entwickler (nur mit einer großen Neigung zum maschinellen Lernen) in der Lage Lösen Sie das Problem von Anfang bis Ende. Selbst mit einem vorgefertigten Modell müssen Sie sicherlich eine Reihe von Aktionen ausführen: Parallelisierung der Ausführung auf mehreren Computern, Vorbereitung einer Implementierung in Form eines Stifts, einer Bibliothek oder einer Komponente des Dienstes.

Wahl des Schülers
Wenn Sie den Eindruck haben, dass es besser ist, zu ML-Ingenieuren zu gehen, indem Sie zuerst als Backend-Entwickler arbeiten, ist dies nicht der Fall. Es ist eine ausgezeichnete Option, ohne echte Erfahrung in der Entwicklung von Diensten in den gleichen SHAD einzusteigen, zu lernen und auf dem Markt äußerst beliebt zu werden. Viele Experten bei Yandex waren auf diese Weise in ihren aktuellen Positionen. Wenn ein Unternehmen bereit ist, Ihnen unmittelbar nach dem Abschluss einen Job im Bereich ML anzubieten, lohnt es sich wahrscheinlich, das Angebot anzunehmen. Versuchen Sie, mit einem erfahrenen Mentor in ein gutes Team zu kommen und sich darauf vorzubereiten, viel zu lernen.

Was stört normalerweise ML


Wenn der Backender ML-Ingenieur werden möchte, kann er - ohne Berücksichtigung des Resident-Programms - aus zwei Entwicklungsrichtungen wählen.

Erstens, um im Rahmen eines Bildungskurses zu studieren. Der Unterricht bei Coursera bringt Sie dem Verständnis der grundlegenden Techniken näher, aber um ausreichend in den Beruf einzutauchen, müssen Sie viel mehr Zeit darauf verwenden. Beenden Sie zum Beispiel den SHAD. In verschiedenen Jahren gab es in ShAD eine unterschiedliche Anzahl von Kursen direkt zum maschinellen Lernen - durchschnittlich etwa acht. Jeder von ihnen ist wirklich wichtig und nützlich, auch laut Absolventen.

Zweitens können Sie an Kampfprojekten teilnehmen, bei denen der eine oder andere ML-Algorithmus implementiert werden muss. Es gibt jedoch nur sehr wenige solcher Projekte auf dem IT-Entwicklungsmarkt: Maschinelles Lernen wird in den meisten Aufgaben nicht verwendet. Selbst in Banken, die aktiv nach Möglichkeiten im Zusammenhang mit ML suchen, führen nur wenige Datenanalysen durch. Wenn Sie nicht in der Lage sind, einem dieser Teams beizutreten, müssen Sie entweder Ihr eigenes Projekt starten (wo Sie höchstwahrscheinlich die Fristen selbst festlegen und dies hat wenig mit Kampfproduktionsaufgaben zu tun) oder mit Kaggle konkurrieren.

In der Tat ist es relativ einfach , sich mit anderen Mitgliedern der Community zusammenzutun und sich an Wettbewerben zu versuchen - insbesondere, wenn Sie Ihre Fähigkeiten durch die auf Coursera genannten Schulungen und Kurse verbessern. Jeder Wettbewerb hat eine Frist - er dient Ihnen als Anreiz und bereitet sich auf ein ähnliches System in IT-Unternehmen vor. Dies ist ein guter Weg - der jedoch auch ein wenig von realen Prozessen getrennt ist. Bei Kaggle erhalten Sie vorverarbeitete, wenn auch nicht immer perfekte Daten. Schlagen Sie nicht vor, über den Beitrag zum Produkt nachzudenken. und vor allem benötigen sie keine für die Produktion geeigneten Lösungen. Ihre Algorithmen werden sich wahrscheinlich als funktionsfähig erweisen und eine hohe Genauigkeit aufweisen, aber Ihre Modelle und Ihr Code werden wie aus verschiedenen Teilen von Frankenstein genäht aussehen. In einem Kampfprojekt wird diese gesamte Konstruktion zu langsam funktionieren, schwer zu aktualisieren und zu erweitern sein (z. B. Sprach- und Sprachalgorithmen immer) teilweise mit der Entwicklung der Sprache korrespondieren). Unternehmen sind daran interessiert, dass nicht nur Sie die oben genannten Arbeiten ausführen können (es ist klar, dass Sie als Autor der Lösung dies tun können), sondern auch alle Ihre Kollegen. Es wurde viel über den Unterschied zwischen Sport- und Industrieprogrammierung gesagt, und Kaggle bildet genau „Sportler“ aus - auch wenn er es sehr gut macht, so dass er einen Teil der Erfahrung sammeln kann.

Ich habe zwei mögliche Entwicklungslinien beschrieben - Training durch Bildungsprogramme und Training "im Kampf", zum Beispiel auf Kaggle. Das residente Programm ist eine Kombination dieser beiden Methoden. Vorträge und Seminare der SHAD-Ebene warten auf Sie und bekämpfen Projekte wirklich.

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


All Articles