Wenn Sie ein Data Scientist sind, können Sie sich nicht den Reihen der angehenden Spezialisten anschließen


Die Habra-Community führte in unserem Bildungsprojekt ein weiteres Interview: Live-Übertragungen mit IT-Mitarbeitern, die Ihre Fragen in einem Live-Kommunikationsformat beantworten.

Unser Projekt ist ein Versuch, einen vollständigen Satz von Leitfäden und Empfehlungen für ein erfolgreiches Entwicklerleben zu erstellen: Wie man eine Karriere aufbaut, ein Traumangebot erhält, Investitionen in Start-ups anzieht, keine langweiligen Projekte betreibt, in Ihrem Unternehmen aufwächst und auf Ihrem Weg ein Haus am Meer kauft.

Anfang der Woche beantwortete Boris Yangel, Yandex ML-Ingenieur, der an der Schaffung von Alices Gehirnen beteiligt war und jetzt unbemannte Fahrzeuge herstellt, unsere Fragen. 

Borya sprach darüber, wie man ein cooler Data-Scientist wird, wie Fallschirmspringen ihm bei seiner Arbeit hilft, warum ML-Konferenzen nutzlos sind, und beantwortete einen kürzlich veröffentlichten Beitrag. wütender Vater darüber, wie Alice einem Kind ein Video mit Mordgeschichten empfohlen hat.



Mein Name ist Boris Yangel, ich arbeite bei Yandex. Ich bin von Beruf ML-Ingenieur und habe kürzlich ML-Projekte geleitet. Im Moment arbeite ich am unbemannten Yandex-Fahrzeugprojekt und entwickle einen Teil des ML-Stacks. Zuvor war er mit Alice beschäftigt und für die Entwicklung des Moduls verantwortlich, das bedingt als „Gehirn“ bezeichnet werden kann. Dieses Modul bestimmt, nachdem die Rede erkannt wurde, was der Benutzer sagen wollte, und entscheidet über die Antwort. Davor arbeitete ich in der Yandex-Gruppe für neuronale Netzwerktechnologie und zuvor bei Microsoft Research in der Chris Bishop-Gruppe für das Infer.net-Projekt. Dies ist eine Bayes'sche Ausgabebibliothek. Noch früher war ich in Yandex für die Rangfolge der Suche in Bildern verantwortlich.

, ? , machine learning ?


Die Frage ist etwas seltsam. Ich werde umformulieren: Was sind die erforderlichen technischen Mindestfähigkeiten (je nachdem, was Sie tun möchten)? Kann eine Person mit einer liberalen Ausbildung diese erhalten?

Wenn "Anmelden" beispielsweise ein neuronales Netzwerk trainiert, um nicht nur Hunde von Katzen zu unterscheiden, sondern auch das zu tun, was Sie persönlich benötigen, gibt es einen Weg, der vielen Menschen zugänglich ist. Im Internet gibt es eine Menge Code zur Lösung häufig auftretender Probleme. Jetzt können Sie diesen Code einfach und schnell übernehmen, Ihre Daten hineinstecken und das Ergebnis erhalten. Dies ist das Einfachste, was getan werden kann. Die Fähigkeiten hierfür erfordern nur minimale Programmierkenntnisse.

Sie müssen nur den fertigen Code verstehen und bearbeiten können. Wenn der Code gut strukturiert ist, ist es einfach.

Wenn Sie sich anmelden, bedeutet dies, dass Sie selbst ein neuronales Netzwerk erstellen, um eine etwas weniger triviale Aufgabe zu lösen. Die Aufgabe wird komplizierter und es werden mehr Fähigkeiten benötigt.

Um neuronale Netze selbst zu sammeln, müssen Sie zumindest ein wenig Mathematik verstehen, die Grundlagen der linearen Algebra kennen, verstehen, was Matrizen, Vektoren, Tensoren sind, was Sie damit machen können, was Ableitung und Gradientenabstieg sind. Ich kann nicht sagen, dass nur ein Experte es herausfinden wird, aber Sie müssen über Kenntnisse verfügen, einschließlich der Teile, aus denen die neuronalen Netze bestehen, und wie es üblich ist, sie anzudocken, um das Ergebnis zu erhalten.

Jetzt gibt es ziemlich einfach zu verwendende Frameworks zum Verbinden von Elementen neuronaler Netze - zum Beispiel TensorFlow mit dem Keras-Add-In (es ist sehr einfach, Sie benötigen nur minimale Python-Kenntnisse). Aber Keras reicht möglicherweise nicht für nicht triviale Operationen aus, und dann müssen Sie mit dem „nackten“ TensorFlow arbeiten - dies erfordert mehr Fähigkeiten, insbesondere um Ihre eigenen Operationen in TensorFlow zu erstellen. Je weiter Sie gehen möchten, desto mehr Fähigkeiten benötigen Sie. Darüber hinaus beginnen die Probleme genau dann, wenn etwas schief geht: Um herauszufinden, warum das System nicht so funktioniert, wie Sie es benötigen, benötigen Sie ein relativ höheres Maß an Fähigkeiten - Sie müssen genau wissen, was unter passiert die Haube. "

Welche Art von Büchern über Datenwissenschaft und maschinelles Lernen in Python braucht ein Anfänger? Wie kann man dieses Wissen üben?


Ich bin nicht sicher, ob ich diese Frage richtig beantworten kann. Als Anfänger gab es weit weniger gute Bücher als jetzt, und es war schwieriger, die richtigen Informationen in einer geeigneten Form zu finden.

Jetzt gibt es viele Bücher über tiefes Lernen, zum Beispiel das Goodfellow-Buch - es gibt die meisten Grundlagen, die Sie über neuronale Netze wissen müssen, und die notwendige Mathematik. Es gibt Bücher mit einem praktischen Ansatz - sie vermitteln nicht nur Kenntnisse über mathematische Methoden, sondern zeigen Ihnen auch sofort, wie Sie in Python etwas Bestimmtes tun.

Es gibt ein Buch des Keras-Autors Francois Scholl über tiefes Lernen mit Keras. Es gibt viele Bücher, obwohl ich nicht sagen kann, welche besser sind. Es scheint mir, dass Sie sicher Bücher über berühmte Autoren nehmen können.

Wenn die Aufgabe darin besteht, das Rückgrat des Wissens zu bilden, sind grundlegendere Bücher erforderlich, z. B. Chris Bishops Mustererkennung und maschinelles Lernen . Ich empfehle, sie zu lesen und daraus Übungen zu machen. Es ist nicht notwendig, vollständig zu lesen, aber die Hauptkapitel - zum Beispiel zur Wahrscheinlichkeitstheorie - werden dazu beitragen, ein Verständnis dafür zu entwickeln, wie das gesamte maschinelle Lernen einen einzigen Rahmen bildet.

Darüber hinaus ist es wichtig zu lernen, wie man in Modellen denkt . Wir verwenden nicht nur bestimmte Methoden, um das Ergebnis zu erhalten, sondern modellieren die Daten. Wir müssen diese Denkweise übernehmen - zum Beispiel wird Chris Bishops Online-Buch Model-Based Machine Learning dabei helfen .teilweise frei. Jedes Kapitel dieses Buches ist ein Beispiel für eine Aufgabe, für die Sie ein Modell erstellen müssen. Im Verlauf des Kapitels versuchen Sie konsequent, dies zu tun, indem Sie das Modell schrittweise komplizieren, bis Sie das Ergebnis erhalten. Dies hilft dabei, die Denkweise zu übernehmen, die für die Datenwissenschaft benötigt wird.

Was die Praxis betrifft, habe ich bereits darüber gesprochen, wie wichtig es ist, zu wissen, was „unter der Haube“ passiert. Versuchen Sie dazu am besten, selbst etwas zu sammeln. Schreiben Sie selbst einen Verlaufsabstieg, anstatt ein vorgefertigtes Framework zu verwenden, oder schreiben Sie eine Ebene und fügen Sie sie dem Framework hinzu. Versuchen Sie, eine relativ nicht triviale Aufgabe mit einer interessanten Struktur zu finden. Lösen Sie es, um festzustellen, welche Kenntnisse und Informationen Ihnen fehlen. Komplizieren Sie die Lösung konsequent, um die Qualität zu verbessern. Lassen Sie es eine solche Aufgabe sein, deren Ergebnis für Sie persönlich interessant sein wird.

Jetzt gibt es eine schnelle Entwicklung von TensorFlow JS. Ich lerne maschinelles Lernen und möchte diese Bibliothek nutzen. Was sind die Aussichten für das Frontend?


TensorFlow JS im Frontend kann als Einstiegspunkt für maschinelles Lernen verwendet werden, obwohl ich nicht ganz verstehe, warum. Wenn Sie nur JavaScript kennen, ist dies die falsche Motivation. Python ist sehr einfach zu lernen.

TensorFlow JS hat ein eigenes Anwendungsgebiet: Dies ist maschinelles Lernen, bei dem Inferenz direkt im Browser funktioniert und Sie interaktive Deep-Learning-Tools erstellen können. Sie können einer Person ein interaktives Werkzeug zur Verfügung stellen, mit dem Sie mit Algorithmen und Modellen arbeiten, Visualisierungen vornehmen und so Ihr Verständnis für das Thema verbessern können. Es gibt wahrscheinlich andere vielversprechende Bereiche des tiefen Lernens, in denen Sie interaktiv sein müssen - zum Beispiel Werkzeuge für Kreativität, in denen Sie in Echtzeit mit Bildern arbeiten oder Musik synthetisieren können.

Wie kann man so schnell wie möglich ein cooler Spezialist auf jedem Gebiet der künstlichen Intelligenz (zum Beispiel NLP) werden?


Was den zweiten Teil betrifft, hängt die Geschwindigkeit immer von der vorhandenen Wissensbasis ab.

Was den ersten Teil betrifft - es scheint mir, dass die Frage hier falsch gestellt wird. NLP hatte früher viele verschiedene Techniken, man musste viel wissen, um Probleme zu lösen, aber dann kamen Deep-Learning-Spezialisten. Sie haben BERT mit inkrementellen Verbesserungen entwickelt, und jetzt müssen Sie zum Lösen von NLP-Aufgaben nichts außer BERT wissen. Um BERT zu verstehen, müssen Sie NLP nicht verstehen - Sie müssen wissen, wie Modelle auf Symboltoken angewendet werden. Sie müssen Spezialist für maschinelles Lernen werden, und dann stehen Ihnen mit geringem Aufwand die verschiedenen Anwendungsbereiche zur Verfügung.

Wie werde ich ein cooler Spezialist für maschinelles Lernen?


Zunächst müssen Sie in Ihrem Kopf einen guten konzeptionellen Rahmen dafür aufbauen, was beim maschinellen Lernen geschieht. Solange Sie es als eine Reihe unterschiedlicher Fakten, Algorithmen und Heuristiken wahrnehmen, werden Sie nicht weit kommen.

Grob gesagt muss man Folgendes verstehen: Alles, was wir tun, ist in gewissem Sinne nach Funktionen aus einer Reihe der Besten zu suchen. Sie müssen verstehen, in welchen Bedeutungen die Funktion die beste ist, unter welchen Mengen Sie nach welchen Funktionen suchen können, warum wir die eine oder andere Menge bevorzugen, warum es effektiver ist, in einigen als in anderen zu suchen, welche Tricks für die Suche in verschiedenen Mengen existieren. Sie müssen verstehen, dass diese Funktionen Datenmodelle sind (zumindest diejenigen, die uns interessieren).

Datenmodelle werden unter Verwendung von Standardtechniken aus einem kleinen Satz erstellt, was für Deep Learning und probabilistische Programmierung ungefähr gleich ist. Sie müssen verstehen, wie und in welchen Fällen diese Techniken kombiniert werden. Dann werden Sie feststellen, dass Sie verstehen, wie Aufgaben in verschiedenen Themenbereichen gelöst werden.

Angenommen, es gibt Kalman-Filter, die die Dynamik von Systemen in der Zeit modellieren, und es gibt Bücher darüber, die gelesen werden können. Wenn der Kalman-Filter nicht zu Ihnen passt, können Sie keine Änderungen daran vornehmen, um etwas Ähnliches für Ihre Aufgabe zu tun, aber "kein Kalman-Filter".

Wenn Sie jedoch verstehen, dass dies nur ein Wahrscheinlichkeitsmodell ist, das auf bestimmten, ziemlich einfachen Prinzipien basiert (wo immer etwas unbekannt ist, fügen Sie eine Normalverteilung hinzu und alles, was direkt modelliert wird, ist lineare Dynamik), können Sie etwas erstellen Was Sie brauchen, ohne etwas über Kalman-Filter zu wissen.

Wenn Sie diese Denkweise erreichen, werden Sie feststellen, dass die meisten Artikel - auch von Top-Konferenzen - uninteressant sind. In der Regel werden inkrementelle Verbesserungen dort mithilfe von Standardtechniken beschrieben, die Sie selbst anwenden können - und dies ist für Sie offensichtlich - und ohne die Möglichkeit einer Skalierung über die Grenzen des verwendeten Datensatzes hinaus. Auf jeden Fall werden Sie keine guten Artikel verpassen, in denen wirklich neue Techniken vorgestellt werden - jeder wird darüber sprechen und Sie werden schnell etwas über sie lernen. Es stellt sich heraus, dass es nur wenige wirklich benötigte Artikel gibt.

Erzählen Sie uns von dem Stapel, mit dem Sie arbeiten. Welche Bibliotheken und Frameworks sollte ein Anfänger im Bereich maschinelles Lernen studieren?


Ich arbeite hauptsächlich mit TensorFlow und Keras. PyTorch wird immer beliebter - Kollegen loben ihn.

Wenn Keras auftaucht - das heißt, die darin enthaltenen Abstraktionen auf hoher Ebene können verwendet werden, und es besteht keine Notwendigkeit, tiefer zu gehen - ist es besser, Keras zu verwenden, dies spart Zeit. Natürlich müssen Sie verstehen, wie Keras funktioniert und wie Sie bei Bedarf darüber hinausgehen können.

Wenn in Keras selbst etwas fehlt, können Sie TensorFlow jederzeit ein Teil hinzufügen - die Architektur erlaubt dies.

Wie wird der Yandex-Autopilot schrittweise erstellt? Welche Spezialisten werden dafür eingestellt, wie ist der Workflow für Data Science / maschinelles Lernen aufgebaut?


Zuerst werde ich kurz beschreiben , wie die „unbemannten“ Stack funktioniert - für weitere Details siehe Anton Slesarev ‚s Video - Bericht , dann ist es leicht zu finden. Der Stapel hat viele Komponenten. Die Wahrnehmung ist eine Vision dessen, was gerade um die Maschine herum geschieht. 

Lokalisierung ist ein Verständnis dafür, wo sich das Auto befindet, unter Verwendung von Informationen von Sensoren und vorgefertigten Karten.

Vorhersage ist eine Vorhersage dessen, was in den nächsten Sekunden passieren wird (dh wie sich andere Teilnehmer der Bewegung verhalten werden), mit Hilfe des Wissens darüber, wie die Welt jetzt aufgebaut ist und wie sie in der Vergangenheit gebaut wurde; Ich arbeite gerade in diesem Teil.

Planung- Was kommt nach Wahrnehmung und Vorhersage? Sie müssen eine sichere Abfolge von Aktionen auswählen, die zur Lösung des Problems führen. 

Steuerung - Umwandlung dieser Sequenz in Anweisungen für das Fahrzeug (Lenkrad, Gasbremse).

In vielen Elementen dieses Stapels wird ML jetzt benötigt oder wird in Lösungen nach dem Stand der Technik nicht verwendet. Es gibt viel ML-Engineering-Arbeit - es ist notwendig, dass dies funktioniert und schnell funktioniert, da die Latenz in solchen Systemen sehr kritisch ist. Wir müssen lernen, wie man Modelle trainiert, um zu verstehen, welche Metriken es uns ermöglichen, zu verstehen, was besser geworden ist, welche nicht, um zu verstehen, wie Daten effizienter erfasst werden können. Darüber hinaus gibt es eine große Komponente der Infrastrukturarbeit, die oft unterschätzt wird. Eine sehr leistungsfähige Infrastruktur ist erforderlich, um alle diese Komponenten gemeinsam zu entwickeln.

UAVs sammeln eine große Menge an Daten über alles, was mit ihnen passiert. Sie müssen in der Lage sein, schnell mit diesen Daten zu arbeiten und Fragen wie „Was würde in Situation X passieren, wenn sich Y im Code ändert?“ Beantworten. Dies erfordert nicht triviale technische Lösungen und gute Ingenieure.

Der Workflow für Data Science / maschinelles Lernen ist meiner Ansicht nach wie auch anderswo. Jedes Team sollte eine Metrik haben, die im Moment optimiert werden muss.

Für die meisten Menschen vergeht ein typischer Tag auf der Suche nach Maßnahmen zur Verbesserung dieser Metrik. Und diese Metrik sollte auf Ihr Ziel abgestimmt sein - natürlich ist es schwierig, sie sofort zu finden, die Metrik wird sich allmählich weiterentwickeln.

Angenommen, Sie erstellen einen Fußgängerklassifikator. Wir haben Fußgänger mit durchschnittlicher Präzision gefunden. Sie optimieren die Metrik und stellen fest, dass sie aufgrund Ihrer Änderungen zu wachsen scheint, aber in Wirklichkeit wird es schlimmer. Sie verstehen, dass die Metrik schlecht ist. Kommen Sie zu dem Schluss, dass es nicht notwendig ist, nach allen Fußgängern zu suchen - diejenigen, die weit vor oder hinter 50 Metern liegen, wirken sich in keiner Weise auf uns aus. Wir müssen die Metrik klären. Sie gehen nur zu den Fußgängern, die in der Nähe sind. Dann verstehen Sie, dass dies auch schlecht ist: Sie interessieren sich nur für diejenigen, die vor Ihnen liegen.

So findet die Entwicklung der Metrik statt. In jedem Moment wird eine bestimmte Metrik festgelegt, und Sie verbessern sie. Dies entlastet Sie von der kognitiven Belastung: Sie überlegen nur, wie Sie eine Zahl verbessern können - und ein Teil des Teams arbeitet ständig an der optimalen Auswahl der Zahl, die verbessert werden muss.

Ich bin in das Thema „starke KI“ vertieft. Ich habe zwei Fragen: Warum können wir KI nicht so lernen, wie wir unsere Kinder unterrichten, und in welchem ​​Anwendungsbereich wird die erste, wenn überhaupt, eine starke KI erzeugen?


Ich verstehe die erste Frage wie folgt: Es ist, als würden Kinder von einfach bis komplex unterrichtet. Anfangs leben sie in einem vereinfachten Modell der Welt, in der sich der Weihnachtsmann befindet, aber allmählich wird ihre Welt komplizierter und Kinder lernen, komplexere Probleme zu lösen. Es scheint logisch, dass KI nach einem ähnlichen Prinzip unterrichtet werden sollte - es gibt sogar einen solchen Vorschlag von Thomas Miklov (er ist jetzt bei Facebook AI Research), ein Trainingsschema für starke KI aufzubauen.

Darüber hinaus gibt es beim maschinellen Lernen einen Bereich des Lehrplanlernens, dh das Modelltraining nach dem Prinzip „von einfach bis komplex“. Das Problem ist, dass jetzt alles innerhalb derselben Aufgabe funktioniert. Die gleiche Aufgabe, Hunde zu finden - zunächst wird dem Netzwerk beigebracht, Hunde von Katzen in Bildern zu unterscheiden, in denen sie überhaupt nicht aussehen, und dann nehmen sie immer mehr ähnliche. Dies ist eine iterativ-translatorische Methode: Es wird davon ausgegangen, dass das Netzwerk einfache und dann auf ihrer Grundlage komplexere Konzepte erstellt. Es funktioniert nicht, wenn es um verschiedene Konzepte geht.

Wenn Sie dem System etwas beibringen, nachdem Sie es zuvor einem anderen beigebracht haben, werden die Konzepte vergessen, an die Sie sich zuvor erinnert haben. Dies ist ein Problem des katastrophalen Vergessens, das bisher noch niemand gelöst hat. Beim Gradientenabstieg werden alle Gewichte gleichzeitig geändert, wodurch alte Konzepte zerstört werden. Wir müssen herausfinden, wie wir neue Konzepte entwickeln können, ohne alte zu zerstören.

Damit verbunden sind die Bereiche Forschung One-Shot-Lernen und Wenig-Schuss-Lernen: Lernkonzepte für eine Aufgabe und deren Lösung zur Lösung eines anderen Problems anhand einer kleinen Anzahl von Beispielen. Es gab keine grundlegenden Durchbrüche in diesem Bereich, aber sie müssen gemacht werden, um eine Vorstellung von einer starken KI zu haben.

Ich sehe keinen Grund dafür, dass eine starke KI in Zukunft nicht mehr auftaucht. Nach unserer heutigen Auffassung ist das menschliche Gehirn eine Maschine, die Berechnungen durchführt, wenn auch nach anderen Prinzipien.

Es gibt keine grundlegenden Hindernisse für die Schaffung einer starken KI, aber ich kann nicht abschätzen, wie viel Zeit bis zu diesem Moment noch übrig ist - es ist nicht bekannt, welche weiteren Schritte dafür erforderlich sind. Wenn Sie mit der Geschwindigkeit des Fortschritts bei der Überwindung der „weißen Flecken“ der Vergangenheit extrapolieren, können Sie eine Zahl wie „10 bis 50 Jahre“ nennen - aber es ist immer noch ein „Finger zum Himmel“. Sie können sich auf das Moore'sche Gesetz berufen und berechnen, wann die Prozessoren über genügend Transistordichte verfügen, um die Rechenfähigkeit des Gehirns zu erreichen - ebenfalls mehrere Jahrzehnte, und dies wird auch ein „Finger zum Himmel“ sein.

Ich glaube nicht, dass eine starke KI - wenn sie erfunden wird - aus dem Geschäft kommen wird. Es wird vielmehr von jemandem erstellt, der mit erheblichen Ressourcen Grundlagenforschung im Bereich des verstärkten Lernens betreibt: Aus allen Bereichen des maschinellen Lernens kommt dies dem am nächsten, was wir von einer starken KI erwarten. Wenn DeepMind oder OpenAI noch einige Jahrzehnte existieren werden - vielleicht auch. Oder jemand, der an ihre Stelle kommt.

Welche Architektur wird am besten verwendet, um Zeitreihen zu klassifizieren (nicht vorherzusagen, sondern zu klassifizieren)? LSTM oder etwas anderes?


In den letzten Jahren wurde dieser Trend beobachtet: Fast überall dort, wo LSTM nützlich war, funktioniert die Aufmerksamkeit besser. Die NLP-Revolution ist gerade passiert: Wir haben wiederkehrende Netzwerke durch Aufmerksamkeit ersetzt, und es wurde besser. Für Zeitreihen würde ich empfehlen, auch Aufmerksamkeit zu versuchen. Es hängt alles von der Aufgabe ab, aber im Allgemeinen ist dies der effektivste Weg, um Sequenzen zu analysieren und Daten darüber zu aggregieren.

Maschinelles Lernen, nicht nur für die Arbeit, sondern auch als teures Hobby. Ich baue ein Netzwerk auf, es wurde in 3-GB-Karten umgewandelt, etwas komplizierter - es ist weg. Gibt es neben der CPU noch Alternativen?


Der Mangel an Geldern für Eisen, mit denen Sie Ergebnisse in der modernen Deep-Learning-Forschung nachweisen können, ist ein Problem für Enthusiasten und sogar für Universitäten.

Google hat die Google Collab-Initiative: Es handelt sich um ein solches IPython in den Google-Einrichtungen, in dem Sie 12 oder 24 Stunden lang die Leistung einer Top-End-Grafikkarte nutzen und auch etwas auf deren TPU ausführen können. Grafikkarten werden von Verbrauchern nicht verwendet, sie haben mehr Speicher - es gibt 130 GB, wie es mir scheint. Hände entfesselt es. Aber im Allgemeinen sind es wirklich große Dinge, die sich ein einzelner Benutzer nicht leisten kann.

Einige Unternehmen versuchen, Chips zu entwickeln, die speziell für Deep Learning angepasst sind. Dadurch werden Berechnungen für neuronale Netze viel schneller und billiger als für GPUs - möglicherweise werden in den kommenden Jahren Verbraucherlösungen mit solchen Chips erscheinen.

Warum prognostizieren Sie das Verhalten anderer Bewegungsteilnehmer bei der Entwicklung einer Drohne?


Unterwegs ist es notwendig. Bei einer Entscheidung muss unter anderem die Trägheit der Maschine berücksichtigt werden: Es ist unmöglich, die Richtung sofort zu ändern (selbst wenn dies möglich wäre, müsste der Passagier schlecht sein). Wir müssen Aktionen so planen, dass an dem Ort, an dem wir in wenigen Sekunden sein möchten, niemand anderes ist - dafür müssen wir die Position und Absichten anderer Teilnehmer vorhersagen. Die Flugbahn der Maschine sollte so weit wie möglich von den anderen Teilnehmern entfernt sein - dies ist für eine sichere Fahrt erforderlich.

Wie dreht sich das Lenkrad einer Drohne?


Ich kontrolliere mich nicht. Ich kann sagen, dass es verschiedene Autos gibt - einige können nur Befehle zum Drehen des Lenkrads geben. Meiner Meinung nach kann der Prius.

Was benutzt du - Scrum, Kanban, Chaos?


Chaos organisiert.

Ich sehe keine Notwendigkeit, den Workflow, insbesondere den Forschungsablauf, starr zu strukturieren: Es ist schwer zu sagen, wie lange eine bestimmte Aufgabe dauern wird. Wir haben zu viel Unsicherheit, und es ist mir nicht klar, warum ich eine zusätzliche Struktur einführen soll.

Wir versuchen viel zu kommunizieren, wir versuchen alle Ergebnisse von Experimenten zu protokollieren; Wir haben spezielle Systeme, die Experimentdaten unabhängig von ihrer Größe speichern - welche Art von Code wurde verwendet, aus welchem ​​Zweig er zusammengestellt wurde, mit welchen Daten er gestartet wurde -, um die vollständige Reproduzierbarkeit zu gewährleisten. Wir protokollieren alle Schlussfolgerungen und diskutieren sie untereinander, tauschen Informationen aus und versuchen, alles so offen und transparent wie möglich zu gestalten.

Gibt es Erfahrungen mit der Verwendung von ML in der Industrie - Metallurgie, Bergbau, Anreicherung?


Ich weiß, dass ML in diesen Bereichen aktiv eingesetzt wird, aber es gibt keine persönlichen Erfahrungen.

Kürzlich erschien ein herzzerreißender Artikel über Alice, die einem Kind ein Video über eine Mordgeschichte empfiehlt. Warum passiert das, ist es schwierig, Inhalte zu filtern?


Die Aufgabe, Inhalte zu filtern, ist grundsätzlich lösbar und mit hoher Genauigkeit. Was genau in dieser Situation passiert ist, weiß ich nicht genau, aber ich kann nachdenken.

Angenommen, das System verfügt über Affiliate-Inhalte und es gibt eine API, in der Partner diesen Inhalt mit Tags oder auf andere Weise kennzeichnen müssen. Das System arbeitet zunächst mit dem Vertrauen in Partner - es ist möglich, dass nur von Zeit zu Zeit Inhaltsprüfungen durchgeführt werden. Mit der Zeit wird dies nicht ausreichen. Sie werden ein einfaches Inhaltssystem mit der Suche nach Stoppwörtern in Überschriften und Tags aufhängen und zumindest einen Teil des Inhalts von Moderatoren anzeigen.

In jedem System wird es unvermeidlich einen Fehlerpunkt geben: Manchmal machen Menschen Fehler, manchmal erfüllen Partner ihre Verpflichtungen nicht. Alles, was getan werden kann, ist, weitere Iterationen durchzuführen und das System zu verbessern. Die Verbesserungen sind normalerweise reaktiv: Wenn etwas gut genug funktioniert, werden normalerweise keine Verbesserungen vorgenommen, bis sie notwendig werden.

Wenn eine starke KI auftritt, können Sie ihn möglicherweise bitten, den gesamten Inhalt mit 100% iger Genauigkeit zu filtern.

Nehmen Sie an internationalen Konferenzen zu neuronalen Informationsverarbeitungssystemen und maschinellem Lernen teil? Was sind Ihre Eindrücke von russischen Konferenzen in diesem Bereich?


Über die Russen kann ich nichts sagen. Ich gehe manchmal ins Ausland, aber ich verstehe immer weniger warum.

Der „wissenschaftliche Tourismus“ ist natürlich wichtig und interessant, aber die Konferenzen selbst haben meiner Meinung nach ihre Funktion nicht mehr erfüllt. Eine große Anzahl von Artikeln wird akzeptiert, aber aus diesem Grund ist es unmöglich, für jeden Autor eine normale Präsentation zu organisieren. Zum Beispiel hatte in ICML nur das beste Papier lange Berichte, und alle anderen hatten Spotlight-Berichte, weniger als fünf Minuten.

Darüber hinaus eine große Anzahl von Werken - inkrementell, mit zweifelhafter Reproduzierbarkeit, deren Nutzen für die Hörer - nein. Wenn die Konferenz wirklich coole Arbeit hat, sind Sie wahrscheinlich bereits damit vertraut - der Vorabdruck wird frühzeitig erstellt.

Ich denke, das Format der Konferenz sollte neu erfunden werden - oder zumindest die Messlatte für das, was zu nehmen ist, stark angehoben werden.

Was war Ihre Motivation, nach Russland zurückzukehren?


Ich habe Russland verlassen, weil es für mich interessant war, an neuen Orten zu leben und von neuen Menschen zu lernen. Es schien mir, dass man für die persönliche Entwicklung dahin gelangen muss, wo die Leute mehr wissen als ich. Genau das ist passiert: In Microsoft Research habe ich viel darüber verstanden, wie methodisch Sie sein müssen, wie tief und gut Sie verstehen müssen, was Sie tun, wie viel Sie wissen müssen, was passiert. Irgendwann langweilte ich mich, obwohl es interessante Aufgaben gab.

Ich habe damals in Cambridge gelebt - dies ist eine kleine Stadt, in der wenig passiert, der soziale Kreis darin kann nicht mit Moskau verglichen werden. Ich dachte: Jetzt können Sie in Moskau leben, das erworbene Wissen anwenden und dann vielleicht woanders hingehen. Ich habe bei Yandex gearbeitet - es scheint ziemlich gut darin zu sein, das Gelernte anzuwenden.

Es scheint mir, dass sie jetzt in DeepMind und OpenAI interessante Dinge tun, ich könnte dort viel lernen.

Ich habe gehört, dass das Drohnen-Team lieber TensorFlow als PyTorch verwendet, um Inferenzmodelle zu trainieren. Was ist der Grund dafür?


Vielleicht aus historischen Gründen. Ich kann nicht sagen, warum TensorFlow besser oder schlechter als PyTorch ist.

Wie groß sollte der Datensatz sein? Reichen 50-60 Tausend Trainingsbeispiele aus oder sind Millionen erforderlich?


Hängt vom verwendeten Modell und der Aufgabe ab. Der Datensatz sollte so gestaltet sein, dass die Modellparameter konfiguriert und eine Umschulung verhindert werden. Wenn Sie ein triviales lineares Modell haben, kann der Datensatz klein sein. Wenn dies ein komplexes neuronales Netzwerk ist, reichen 60.000 nicht aus.

Das Erlernen komplexer neuronaler Netze aus nicht trivialen Dingen von Grund auf erfordert fast immer Dutzende oder Hunderte von Millionen. Das Prinzip „mehr Daten - mehr Qualität“ ist nicht verschwunden.

Übrigens über die Frage, wie man ein Experte für NLP wird. Jetzt arbeitet Deep Learning auf dem neuesten Stand der Technik immer mit Big Data. Sie müssen dann vorverarbeitet und dann effektiv in Rechenknoten gestreamt werden, die Schulungen anbieten.

Wir können sagen, dass tiefes Lernen eine kleine Affenarbeit ist: Um erfolgreich zu sein, muss man viele Dinge ausprobieren und sich nicht sicher sein, welches Ergebnis die Arbeit mit jedem hat.

Vielleicht können Sie eine Intuition für Optionen entwickeln, die wahrscheinlicher funktionieren, obwohl ich keine Person mit genauer Intuition getroffen habe. Im allgemeinen Fall ist das erfolgreichste aller Teams dasjenige, das die meisten Experimente pro Zeiteinheit durchführen kann.

Der größte Teil meiner Arbeit besteht darin, „Engpässe“ im Lernprozess zu beseitigen, um ihn auf die theoretisch mögliche Geschwindigkeit zu „zerstreuen“. Dies erfordert technische Fähigkeiten und die Fähigkeit, die Leistung von Code und Hardware zu beeinträchtigen.

Was einen Experten von einem normalen Datenwissenschaftler unterscheidet, ist, dass der Experte normalerweise auch ein guter Ingenieur ist, der in der Lage ist, schnell zu arbeiten, Code zu schreiben, mit verteilten Datenspeicherungs- und -verarbeitungssystemen umzugehen und die Architektur von Computern und Netzwerken zu verstehen - um „Gags“ zu berechnen. Es ist sehr wichtig, diese Fähigkeiten in sich selbst zu entwickeln.

Mit der Dominanz von Big Data sind diejenigen in der Branche am erfolgreichsten, die wissen, wie man Schulungen dazu bringt, schnell mit diesen Datenmengen zu arbeiten. Wenn Deep Learning auf kleinen Bänden funktioniert, würde ich sagen, dass nur Wissen darüber benötigt wird, aber jetzt ist es nicht mehr.

Lernen Sie, gut zu programmieren, lernen Sie Standardalgorithmen für die Informatik und erweitern Sie Ihren Horizont. Kryptographie ist übrigens nützlich.

Verwenden Sie AutoML-Analoga zum Optimieren von Architektur und Parametern oder mehr manuelle Experimente und Intuition?


Jetzt - mehr als die Sekunde. Die automatische Abstimmung ist auf der Ebene des Sweeps durch Gitter- oder Bayes'sche Optimierung vorhanden, was in AutoML noch nicht komplizierter ist. Es erfordert viele Rechenressourcen - wenn sie begrenzt sind, ist es besser, sich auf die Intuition zu verlassen. Wenn Sie jedoch verstehen, dass Sie zu einer zufälligen Wahrsagerei gekommen sind, ist es besser, sie dem Prozess anzuvertrauen.

Was macht Alice, was macht Google Assistant nicht? Wie groß ist das Team in dieser Richtung für Google und Yandex?


Ich kann nicht über Yandex sprechen. Google scheint Hunderte oder tausend Menschen zu haben. Was die Vorteile von Alice angeht, bin ich mir nicht sicher, ob ich in letzter Zeit weder die Produktentwicklung von Alice noch die Assistentenfunktionen verfolgt habe.

Die Frage der Qualität ist falsch, scheint mir. Selbst wenn Alice schlimmer wäre, würde es bedeuten, dass sie kein Existenzrecht hat? Produkte entstehen und konkurrieren miteinander. Dadurch gewinnen, entwickeln und dehnen sie sich alle.

Ich verstehe die Mentalität "Ein neues Produkt ist dasselbe wie Google" nicht. In der Wirtschaft werden Produkte auf diese Weise erstellt: Sie nehmen die Idee eines anderen als Grundlage und setzen sie um - manchmal so wie sie ist -, aber dies ist nicht der Endpunkt des Pfades, sondern der Anfang. Dann ändern Sie die Idee schrittweise, sodass sie besser wird als die eines Konkurrenten. Das ist die ganze Geschichte des Fortschritts!

Wie hilft Sport, in anderen Bereichen mehr zu erreichen?


Im Sport, besonders im Wettkampf, mag ich die Mehrdeutigkeit. Wenn Sie verlieren, verlieren Sie. Sie können die Umstände nicht dafür verantwortlich machen: Sie waren nicht gut genug, Sie haben etwas falsch gemacht.

Im Leistungssport entwickeln sich Direktheit, Aufrichtigkeit und die Fähigkeit, Fehler zuzugeben. Es hilft in anderen Bereichen - es ist immer besser zuzugeben, dass Sie in X, Y und Z besser werden müssen, als nach Ausreden zu suchen. Neben den gesundheitlichen Vorteilen natürlich.

Wie hilft Ihnen Fallschirmspringen, aus Ihrer Komfortzone herauszukommen?


Stellen Sie sich vor, Sie möchten von einer Gruppe von Menschen aus einem Flugzeug springen und etwas zusammenstellen. Das Flugzeug betritt das Kampfflugzeug, die Tür öffnet sich, Sie stellen sich alle im Inneren auf und warten, bis das Signal alle zusammen springt.

In diesem Moment sollte es keinen Zweifel geben, was passiert. Eine Verzögerung von nur einem Sekundenbruchteil verzögert alle. Sie müssen sich in einen Zustand versetzen, in dem Sie ohne zu zögern springen. Die Welt verschwindet, nur ein Sprung bleibt übrig. Wenn etwas mit einem Fallschirm passiert, haben Sie wenig Zeit, um Maßnahmen zu ergreifen - dann sollte es auch keinen Zweifel und keine Angst geben, Sie müssen genau das tun, was Ihnen beigebracht wurde, so schnell wie möglich.

Fallschirmspringen fördert die Fähigkeit eines Menschen, eine Entscheidung zu treffen, etwas zu tun - und nicht weiter zu zweifeln. Zwischen diesem und komplexen Projekten kann eine Parallele gezogen werden. Manchmal ist nicht klar, was im Projekt zu tun ist. Wenn Sie die Aufgabe starten, wissen Sie nicht genau, was zu tun ist, wie es zu tun ist und ob es überhaupt möglich ist. In diesem Moment ist es leicht zu zweifeln und zu denken: "Was ist, wenn ich nicht kann?" - Hierfür werden sowohl Zeit als auch geistige Anstrengungen aufgewendet. Wenn Sie gebeten wurden, ein Problem zu lösen, glaubten sie an Sie. Sie müssen alle Anstrengungen unternehmen, um dieses Problem zu lösen. Sie müssen sich in den gleichen mentalen Zustand wie bei einem Sprung bringen, um alles Unnötige fallen zu lassen und sich zu konzentrieren. Es wurde für mich viel einfacher, dies zu erreichen, nachdem ich angefangen hatte, Fallschirmspringen zu betreiben.

Wie viel gibst du für Fallschirmspringen aus?


Viel. Dies ist ein wichtiger Artikel in meinem Budget. Ich sehe dies als Anreiz für weiteres Karrierewachstum.

In welchem ​​Club bist du?


Vor allem in Puschchino sind dort bestimmte Disziplinen gut entwickelt - zum Beispiel Freefly.

Wo kann man als Ingenieur ML studieren?


Meine Daten sind bereits veraltet, ich habe lange studiert - an der Moskauer Staatsuniversität am VMK. Ich kann nicht sagen, dass es eine Super-ML-Ausbildung war, aber die Lehrer haben uns gut unterrichtet und uns in die Welt der ML eingeführt. Ich denke, viele Leute kennen Dmitry Petrovich Vetrov - ich schulde ihm viel, wenn ich nicht für seine Vorlesungen und den speziellen Kurs, zu dem ich gekommen bin, ML wahrscheinlich nicht studiert hätte. Ich weiß nicht, wo er gerade unterrichtet, aber es lohnt sich auf jeden Fall, dorthin zu gehen. Unabhängig davon, an welcher Fakultät Sie studieren, empfehle ich außerdem, wenn möglich zum SHAD zu gehen. Nicht weil es Yandex ist, sondern weil es ein wirklich cooler Ort ist - dort werden sie alle Kenntnisse vermitteln, die für eine gute praktische Arbeit in der Branche erforderlich sind, die möglicherweise nicht an einer Universität ist. Von ShAD kommen viele ausgebildete, talentierte Leute zu uns, die wissen, was zu tun ist.

Noch einmal zu der Frage, ob es möglich ist, in ML „kein Technikfreak“ einzusteigen. Technische Fähigkeiten sind erforderlich, aber ein Hauptfach der Freien Künste ist kein Blocker. Um die Grundlagen der Programmierung und Mathematik zu verstehen, brauchen Sie nur einen Kopf auf den Schultern und die Fähigkeit zum logischen und strukturellen Denken. Es gibt viele Menschen, die, obwohl sie sich aus irgendeinem Grund für eine humanitäre Spezialität entschieden haben, über solche Fähigkeiten verfügen. Nichts ist unmöglich, die Hauptsache ist, es zu versuchen. Es ist notwendig, nicht über das Thema „Kann ich“ nachzudenken, sondern damit zu beginnen? Dies erhöht die Erfolgschancen erheblich.

Ist es möglich, gleichzeitig mit einer Universität an einer Schule zu lernen?


Ich tat es, obwohl es ziemlich schwierig war. Es gibt eine große Last im ShAD. Sie können den SHAD mit den neuesten Kursen der Universität kombinieren, bei denen die Belastung relativ gering ist - es wird harte Arbeit sein, aber es wird sich auszahlen.

Rennerfahrung mit Drohnen?


Wir haben aktive Motorsportler im Personal, weil wir Fahrer und QS-Ingenieure ausbilden müssen, die direkt im Auto sitzen. Sie müssen in der Lage sein, eine Notsituation während der Tests zu erkennen und darauf zu reagieren. Sie alle werden von Motorsportlern einem Notfalltraining unterzogen. Wenn wir darüber sprechen, ob wir ein Reifenphysikmodell verwenden, das Profisportler in Motorsport-Simulationen verwenden, um Taktiken zu entwickeln - meiner Meinung nach, nein, wir werden die Hundertstelsekunde im Kreis noch nicht verkürzen. Die für Sportler nützliche Telemetrie unterscheidet sich von dem, was wir benötigen, und wir haben mehr Daten gemessen.

Was kommt als nächstes?


Die nächste Live-Übertragung findet am kommenden Montag statt.
Sie können eine Frage an Natalya Teplukhina - das Kernteammitglied von Vue.j, GoogleDevExpret und Senior Frontend Engineer in GitLab, stellen.

Sie können ihr in den Kommentaren zu diesem Beitrag eine Frage stellen . Die

Interpretation eines Interviews mit Ilona, ​​Senior Software Engineer auf Facebook, finden Sie hier. Insider-Informationen eines Facebook-Mitarbeiters: Wie bekomme ich ein Praktikum, bekomme ein Angebot und alles über die Arbeit in einem Unternehmen


All Articles