Comment ne pas rejoindre les rangs des aspirants spécialistes si vous êtes un Data Scientist


La communauté Habra a réalisé une autre interview dans notre projet éducatif: des diffusions en direct avec des gars de l'informatique qui répondent à vos questions dans un format de communication en direct.

Notre projet est une tentative de créer un ensemble complet de guides et de recommandations pour la vie d'un développeur réussi: comment construire une carrière, obtenir une offre de rêve, attirer des investissements dans des startups, ne pas sortir sur des projets ennuyeux, grandir dans votre entreprise et acheter une maison au bord de la mer sur votre chemin.

Au début de la semaine, Boris Yangel, ingénieur Yandex ML qui a participé à la création du cerveau d'Alice et fabrique désormais des véhicules sans pilote, a répondu à nos questions. 

Borya a expliqué comment devenir un Data-Scientist cool, comment le parachutisme l'aide dans son travail, pourquoi les conférences ML sont inutiles et a répondu à un récent post. père en colère sur la façon dont Alice a recommandé une vidéo d'histoires de meurtre à un enfant.



Je m'appelle Boris Yangel, je travaille chez Yandex. Je suis ingénieur ML de profession, et récemment je gère des projets ML. En ce moment, je travaille sur le projet de véhicule sans pilote Yandex, développant une partie de la pile ML. Auparavant, il était engagé dans Alice, était responsable du développement du module, qui peut être appelé conditionnellement ses «cerveaux» - ce module, une fois le discours reconnu, détermine ce que l'utilisateur voulait dire et décide de la réponse. Avant cela, j'ai travaillé dans le groupe de technologie de réseau de neurones Yandex, et avant cela, chez Microsoft Research, dans le groupe Chris Bishop, sur le projet Infer.net, il s'agit d'une bibliothèque de sortie bayésienne. Encore plus tôt, j'étais à Yandex responsable du classement de la recherche en images.

, ? , machine learning ?


La question est un peu étrange. Je vais reformuler: quelles sont les compétences techniques minimales requises (selon ce que vous voulez faire), une personne ayant une éducation libérale peut-elle les recevoir?

Si la «connexion» consiste, disons, à former un réseau de neurones non seulement pour distinguer les chiens des chats, mais pour faire ce dont vous avez personnellement besoin, alors il existe un moyen accessible à de nombreuses personnes. Il y a beaucoup de code sur Internet pour résoudre les problèmes courants, et maintenant vous pouvez facilement et rapidement prendre un tel code, y glisser vos données et obtenir le résultat. C'est la chose la plus simple qui puisse être faite, les compétences pour cela nécessitent un minimum, y compris la programmation.

Vous avez seulement besoin de pouvoir comprendre le code fini et le modifier. Si le code est bien structuré, c'est facile.

Si vous vous «connectez» - cela signifie créer vous-même un réseau de neurones pour résoudre une tâche un peu moins triviale, la tâche devient plus compliquée, plus de compétences sont nécessaires.

Afin de collecter vous-même des réseaux de neurones, vous devez au moins avoir une petite compréhension des mathématiques, connaître les bases de l'algèbre linéaire, comprendre ce que sont les matrices, les vecteurs, les tenseurs, ce que vous pouvez en faire, ce qui est dérivé et le gradient de descente. Je ne peux pas dire que seul un expert pourra le comprendre, mais vous devez avoir des connaissances, y compris de quelles parties les réseaux de neurones sont constitués et comment il est habituel de les ancrer pour obtenir le résultat.

Il existe maintenant des cadres assez faciles à utiliser pour connecter des éléments de réseaux de neurones - par exemple, TensorFlow avec le complément Keras (c'est très simple, vous avez besoin de connaissances minimales en Python). Mais Keras peut ne pas être suffisant pour des opérations non triviales, et vous devrez alors travailler avec le TensorFlow «nu» - cela nécessite plus de compétences, en particulier pour créer vos propres opérations dans TensorFlow. Plus vous voulez aller loin, plus vous aurez besoin de compétences. De plus, les problèmes commencent exactement lorsque quelque chose ne va pas: pour savoir pourquoi le système ne fonctionne pas comme vous le souhaitez, vous avez besoin d'un niveau de compétences relativement plus élevé - vous devez être pleinement conscient de ce qui se passe «sous la hotte. "

De quel type de livres sur la science des données et l'apprentissage automatique en Python un débutant a-t-il besoin? Comment mettre en pratique ces connaissances?


Je ne suis pas sûr de pouvoir répondre correctement à cette question. Quand j'étais débutant, il y avait beaucoup moins de bons livres qu'aujourd'hui et trouver les bonnes informations sous une forme pratique était plus difficile.

Maintenant, il existe de nombreux livres sur l'apprentissage profond, par exemple le livre Goodfellow - il y a la plupart des bases que vous devez connaître sur les réseaux de neurones et les mathématiques nécessaires. Il existe des livres avec une approche pratique - non seulement ils vous familiarisent avec les méthodes mathématiques, mais ils vous expliquent également immédiatement comment faire quelque chose de spécifique en Python.

Il y a un livre de l'auteur de Keras, François Scholl, sur l'apprentissage en profondeur avec Keras. Il existe de nombreux livres, mais je ne peux pas dire lesquels sont meilleurs. Il me semble que vous pouvez emporter en toute sécurité des livres sur des auteurs célèbres.

Si la tâche est de former l'épine dorsale de la connaissance, alors des livres plus fondamentaux seront nécessaires, par exemple, la reconnaissance des formes et l'apprentissage automatique de Chris Bishop , je recommande de le lire et de faire des exercices à partir de celui-ci. Il n'est pas nécessaire de lire en entier, mais les chapitres principaux - par exemple, sur la théorie des probabilités - aideront à construire une compréhension de la façon dont l'ensemble de l'apprentissage automatique forme un cadre unique.

De plus, il est important d'apprendre à penser dans les modèles . Nous n'utilisons pas seulement certaines méthodes pour obtenir le résultat, mais nous modélisons les données. Nous devons adopter cette façon de penser - par exemple, le livre en ligne de Chris Bishop, Model-Based Machine Learning, y contribuera .partiellement libre. Chaque chapitre de ce livre est un exemple de tâche pour laquelle vous devez créer un modèle, et au cours du chapitre, vous essayez constamment de le faire, compliquant progressivement le modèle, jusqu'à ce que vous obteniez le résultat. Cela permet d'adopter la manière de penser nécessaire à la science des données.

Quant à la pratique - j'ai déjà parlé de l'importance de savoir ce qui se passe «sous le capot». Pour ce faire, il est préférable d'essayer de collecter quelque chose vous-même. Écrivez vous-même une descente de gradient au lieu d'utiliser un cadre prêt à l'emploi, ou écrivez un calque et ajoutez-le au cadre. Essayez de proposer une tâche relativement non triviale avec une structure intéressante; résoudre le problème en déterminant quelles connaissances et informations vous manquent. Compliquez constamment la solution pour améliorer la qualité. Qu'il s'agisse d'une telle tâche, dont le résultat de la solution vous intéressera personnellement.

Il y a maintenant un développement rapide de TensorFlow JS. J'apprends l'apprentissage automatique et je souhaite utiliser cette bibliothèque. Quelles sont les perspectives de frontend?


TensorFlow JS dans le frontend peut être utilisé comme point d'entrée pour l'apprentissage automatique, même si je ne comprends pas très bien pourquoi. Si c'est parce que vous ne connaissez que JavaScript, ce n'est pas la bonne motivation; Python est très facile à apprendre.

TensorFlow JS a son propre domaine d'application: c'est l'apprentissage automatique, dans lequel l'inférence fonctionne directement dans le navigateur, qui vous permet de créer des outils interactifs d'apprentissage en profondeur. Il vous permet de donner à une personne un outil interactif dans lequel vous pouvez travailler avec des algorithmes et des modèles, faire des visualisations et ainsi améliorer votre compréhension du sujet. Il existe probablement d'autres domaines prometteurs d'apprentissage en profondeur où vous avez besoin d'interaction - par exemple, les outils de créativité, où vous pouvez travailler avec des images en temps réel ou synthétiser de la musique.

Comment devenir un spécialiste cool dans n'importe quel domaine de l'intelligence artificielle (par exemple, la PNL), le plus rapidement possible?


Quant à la deuxième partie, la vitesse dépend toujours de la base de connaissances existante.

Quant à la première partie - il me semble que la question est mal posée ici. La PNL avait auparavant beaucoup de techniques différentes, il fallait en savoir beaucoup pour résoudre les problèmes, mais des spécialistes du deep learning sont venus. Ils ont proposé BERT avec des améliorations incrémentielles, et maintenant pour résoudre les tâches PNL, vous n'avez besoin de rien savoir, sauf BERT. Dans le même temps, pour comprendre BERT, vous n'avez pas besoin de comprendre la PNL - vous devez savoir comment les modèles sont appliqués aux jetons de symboles. Vous devez devenir un spécialiste de l'apprentissage automatique, puis vous serez disponible - avec peu d'effort - ses différents domaines d'application.

Comment devenir un spécialiste du machine learning sympa?


Tout d'abord, vous devez construire dans votre tête un bon cadre conceptuel de ce qui se passe dans le machine learning. Tant que vous le percevrez comme un ensemble de faits, d'algorithmes et d'heuristiques disparates, vous n'irez pas loin.

En gros, il faut comprendre ce qui suit: tout ce que nous faisons est de rechercher des fonctions parmi les meilleurs dans un sens. Vous devez comprendre quelles sont les significations dans lesquelles la fonction est la meilleure, parmi quels ensembles vous pouvez rechercher quelles fonctions, pourquoi nous préférons l'un ou l'autre ensemble, pourquoi il est plus efficace de rechercher dans certains que dans d'autres, quelles astuces existent pour rechercher dans différents ensembles. Vous devez comprendre que ces fonctions sont des modèles de données (au moins ceux qui nous intéressent).

Les modèles de données sont construits en utilisant des techniques standard à partir d'un petit ensemble, qui est à peu près le même pour l'apprentissage en profondeur et la programmation probabiliste; vous devez comprendre comment ces techniques sont combinées et dans quels cas. Ensuite, vous constaterez que vous comprenez comment les tâches sont résolues dans différents domaines.

Supposons qu'il existe des filtres de Kalman - modélisant la dynamique des systèmes dans le temps, et qu'il existe des livres à leur sujet qui peuvent être lus. Si le filtre Kalman ne vous convient pas, vous ne pourrez pas y apporter de modifications pour faire quelque chose de similaire pour votre tâche, mais «pas tout à fait un filtre Kalman».

Mais si vous comprenez que ce n'est qu'un modèle probabiliste construit sur certains principes assez simples (partout où quelque chose est inconnu, ajoutez une distribution normale, et tout ce qui est directement modélisé est une dynamique linéaire), alors vous pouvez construire quelque chose ce dont vous avez besoin sans même connaître les filtres Kalman.

Si vous arrivez à cette façon de penser, vous constaterez que la plupart des articles - même des meilleures conférences - sont sans intérêt. Habituellement, les améliorations incrémentielles y sont décrites à l'aide de techniques standard que vous pouvez appliquer vous-même - et cela vous paraîtra évident - et sans possibilité d'évoluer au-delà des limites de l'ensemble de données utilisé. Dans tous les cas, vous ne manquerez pas de bons articles dans lesquels de véritables techniques sont présentées - tout le monde en parlera et vous en saurez rapidement plus. Il s'avère qu'il y a peu d'articles vraiment nécessaires.

Parlez-nous de la pile avec laquelle vous travaillez. Quelles bibliothèques et quels cadres un spécialiste en apprentissage automatique novice devrait-il étudier?


Je travaille principalement avec TensorFlow et Keras. PyTorch gagne toujours en popularité - ses collègues le félicitent.

Lorsque Keras apparaît - c'est-à-dire que les abstractions de haut niveau qui s'y trouvent peuvent être utilisées, et il n'est pas nécessaire d'aller plus loin - il est préférable d'utiliser Keras, cela fait gagner du temps. Bien sûr, vous devez comprendre comment fonctionne Keras et comment aller au-delà si nécessaire.

Si quelque chose manque dans Keras lui-même, vous pouvez toujours ajouter un morceau à TensorFlow - l'architecture le permet.

Comment le pilote automatique Yandex est-il créé par étapes? Quel type de spécialistes est embauché pour cela, comment le flux de travail science des données / apprentissage automatique est-il construit?


Tout d'abord, je vais décrire brièvement le fonctionnement de la pile «sans pilote» - pour plus de détails, voir le reportage vidéo d' Anton Slesarev, c'est facile à trouver. La pile comporte de nombreux composants. La perception est une vision de ce qui se passe autour de la machine en ce moment. 

La localisation consiste à comprendre où se trouve la voiture, en utilisant les informations des capteurs et des cartes pré-construites.

La prédiction est une prédiction de ce qui se passera dans les prochaines secondes (c'est-à-dire comment les autres participants au mouvement se comporteront) à l'aide de connaissances sur la façon dont le monde est construit maintenant et comment il a été construit dans le passé; Je travaille juste dans cette partie.

Planification- ce qui vient après la perception et la prédiction: vous devez choisir une séquence sécurisée d'actions qui mènera à la solution du problème. 

Contrôle - convertir cette séquence en instructions pour la voiture (volant, frein à gaz).

Dans de nombreux éléments de cette pile, le ML est désormais nécessaire, ou n'est pas utilisé dans les solutions de pointe. Il y a beaucoup de travail d'ingénierie ML - il est nécessaire de faire cela et de travailler rapidement, car la latence dans de tels systèmes est très critique. Nous devons apprendre à former des modèles, à comprendre quelles mesures nous permettent de comprendre ce qui est devenu meilleur, lesquelles ne nous permettent pas, à comprendre comment collecter des données plus efficacement. De plus, il y a une énorme composante des travaux d'infrastructure, souvent sous-estimée. Une infrastructure très puissante est nécessaire pour développer tous ces composants ensemble.

Les drones collectent une énorme quantité de données sur tout ce qui leur arrive - vous devez pouvoir travailler rapidement avec ces données, répondre à des questions comme «ce qui se passerait dans la situation X s'il y avait un changement de Y dans le code». Cela nécessite des solutions d'ingénierie non triviales et de bons ingénieurs.

Le flux de travail science des données / apprentissage automatique est, comme ailleurs, à mon avis. Toute équipe doit avoir une métrique qui doit être optimisée pour le moment.

Pour la plupart des gens, une journée typique se passe à la recherche de quoi faire pour améliorer cette métrique. Et cette métrique doit être alignée avec votre objectif - bien sûr, il est difficile de la trouver tout de suite, la métrique évoluera progressivement.

Disons que vous faites un classificateur pour piétons. Des piétons trouvés autour, en utilisant une précision moyenne, disons. Vous optimisez la métrique et constatez qu'elle semble se développer à partir de vos changements, mais en réalité elle empire. Vous comprenez que la métrique est mauvaise. Arrivez à la conclusion qu'il n'est pas nécessaire de rechercher tous les piétons - ceux qui sont loin devant ou derrière 50 mètres derrière, ne nous affectent en aucune façon. Nous devons clarifier la métrique. Vous ne vous rendez que chez les piétons qui sont à proximité. Vous comprenez alors que c'est aussi mauvais: vous ne vous intéressez qu'à ceux qui vous attendent.

C'est ainsi que se déroule l'évolution de la métrique. À chaque instant, une certaine métrique est fixée et vous l'améliorez. Cela vous soulage de la charge cognitive: vous pensez simplement à la façon d'améliorer un nombre - et une partie de l'équipe travaille constamment sur le choix optimal du nombre à améliorer.

Je suis plongé dans le thème de «l'IA forte». J'ai deux questions: pourquoi ne pouvons-nous pas apprendre l'IA de la façon dont nous enseignons à nos enfants, et quel domaine d'utilisation la première créera-t-elle une IA solide, le cas échéant?


Je comprends la première question comme suit: c'est comme si les enfants apprenaient du simple au complexe. Initialement, ils vivent dans un modèle simplifié du monde, où se trouve le Père Noël, mais progressivement leur monde devient plus compliqué, et les enfants apprennent à résoudre des problèmes plus complexes. Il semble logique que l'IA soit enseignée selon un principe similaire - il y a même une telle proposition de Thomas Miklov (il est maintenant sur Facebook AI Research) pour construire un programme de formation pour une IA forte.

De plus, dans l'apprentissage automatique, il existe un domaine d'apprentissage curriculaire - c'est-à-dire la formation modèle sur un principe «du simple au complexe». Le problème est que maintenant tout fonctionne dans la même tâche. La même tâche de trouver des chiens - au début, le réseau apprend à distinguer les chiens des chats dans des images où ils ne ressemblent pas du tout, puis ils en prennent de plus en plus similaires. Il s'agit d'une méthode itérative-traductionnelle: on suppose que le réseau va construire des concepts simples, puis, sur leur base, des concepts plus complexes. Cela ne fonctionne pas quand il s'agit de différents concepts.

Si vous commencez à enseigner quelque chose au système, après l'avoir déjà enseigné à un autre, il oublie les concepts dont vous vous souveniez auparavant. C'est un problème d'oubli catastrophique, personne ne l'a encore résolu. La descente en pente modifie tous les poids à la fois, ce qui détruit les anciens concepts. Nous devons comprendre comment construire de nouveaux concepts sans détruire les anciens.

Les domaines de recherche de l'apprentissage ponctuel et de l'apprentissage ponctuel y sont associés: apprendre des concepts pour une tâche et les utiliser pour résoudre un autre problème avec un petit nombre d'exemples. Il n'y a pas eu de percées fondamentales dans ce domaine, mais elles doivent être faites afin d'avoir une idée d'une IA forte.

Je ne vois aucune raison pour qu'une IA forte n'apparaisse pas à l'avenir. De notre point de vue moderne, le cerveau humain est une machine qui effectue des calculs, mais selon d'autres principes.

Il n'y a pas d'obstacles fondamentaux à la création d'une IA solide, mais je ne peux pas donner d'estimation du temps restant jusqu'à ce moment - on ne sait pas quelles autres étapes seront nécessaires pour cela. Si nous extrapolons, en utilisant la vitesse du progrès pour surmonter les «points blancs» du passé, nous pouvons appeler un chiffre comme «de 10 à 50 ans» - mais c'est toujours un «doigt vers le ciel». Vous pouvez faire appel à la loi de Moore et calculer quand les processeurs auront une densité de transistors suffisante pour atteindre la capacité de calcul du cerveau - également plusieurs décennies, et ce sera également un «doigt vers le ciel».

Je ne pense pas qu'une IA forte - si elle est inventée - provienne des entreprises. Il sera plutôt créé par quelqu'un qui, avec des ressources importantes, est engagé dans la recherche fondamentale en apprentissage par renforcement: dans tous les domaines de l'apprentissage automatique, c'est le plus proche de ce que nous voulons d'une IA forte. Si DeepMind ou OpenAI existeront encore pendant plusieurs décennies - ils le seront peut-être. Ou quelqu'un qui viendra à leur place.

Quelle architecture est la mieux utilisée pour classer (pas prédire, mais classifier) ​​les séries chronologiques? LSTM ou autre chose?


Ces dernières années, cette tendance a été observée: presque partout où le LSTM était utile, l'attention fonctionne mieux. La révolution PNL vient de se produire: nous avons remplacé les réseaux récurrents par de l'attention, et cela s'est amélioré. Pour les séries chronologiques, je conseillerais de faire attention aussi. Tout dépend de la tâche, mais, en général, c'est le moyen le plus efficace d'analyser des séquences et d'agréger des données à leur sujet.

Engagé dans l'apprentissage automatique, non seulement pour le travail, mais aussi comme un passe-temps coûteux. Je construis un réseau, il est entré dans des cartes de 3 Go, un peu plus compliqué - c'est parti. Existe-t-il des alternatives en plus du CPU?


Le manque de fonds pour le fer, sur lequel vous pouvez montrer des résultats dans la recherche moderne sur l'apprentissage en profondeur, est un problème pour les passionnés, et même pour les universités.

Google a l'initiative Google Collab: c'est un tel IPython dans les installations de Google, où vous pouvez obtenir la puissance d'une carte vidéo haut de gamme pendant 12 ou 24 heures, et également exécuter quelque chose sur leur TPU. Les cartes vidéo ne sont pas utilisées par les consommateurs, elles ont plus de mémoire - il y a 130 Go, comme il me semble. Mains qu'il déchaîne. Mais, en général, une chose vraiment à grande échelle qu'un utilisateur individuel ne peut pas se permettre.

Certaines entreprises tentent de créer des puces spécialement adaptées à l'apprentissage en profondeur, ce qui rendra les calculs pour les réseaux de neurones beaucoup plus rapides et moins chers que les GPU - peut-être que des solutions grand public avec de telles puces apparaîtront dans les années à venir.

Pourquoi prévoyez-vous le comportement des autres participants au mouvement lors du développement d'un drone?


Sur la route c'est nécessaire. Lors de la prise de décision, il faut prendre en compte, entre autres, l'inertie de la machine: il est impossible de changer instantanément de direction (même si c'était possible, le passager devrait être mauvais). Nous devons planifier des actions pour qu'à l'endroit où nous aimerions être en quelques secondes, il n'y ait personne d'autre - pour cela, nous devons prédire la position et les intentions des autres participants. La trajectoire de la machine doit être aussi éloignée que possible des autres participants - cela est nécessaire pour une conduite en toute sécurité.

Comment tourne le volant d'un drone?


Je ne me contrôle pas. Je peux dire qu'il existe différentes voitures - certaines peuvent simplement donner des commandes pour tourner le volant. À mon avis, la Prius le peut.

Qu'utilisez-vous - Scrum, Kanban, chaos?


Mayhem organisé.

Je ne vois pas la nécessité de structurer de manière rigide le flux de travail, en particulier celui de la recherche: il est difficile de dire combien de temps une tâche particulière prendra. Nous avons trop d'incertitude, et il n'est pas évident pour moi pourquoi introduire une structure supplémentaire.

Nous essayons de communiquer beaucoup, nous essayons de consigner tous les résultats des expériences; nous avons des systèmes spéciaux qui stockent les données d'expérience quelle que soit leur échelle - quel type de code a été utilisé, à partir de quelle branche il a été assemblé, avec quelles données il a été lancé - à des fins de reproductibilité totale. Nous enregistrons toutes les conclusions et en discutons entre nous, partageons des informations, essayons de rendre tout aussi ouvert et transparent que possible.

Existe-t-il une expérience de l'utilisation du ML dans l'industrie - métallurgie, exploitation minière, enrichissement?


Je sais que dans ces domaines le ML est activement utilisé, mais il n'y a aucune expérience personnelle.

Un article déchirant a récemment été publié à propos d'Alice recommandant une vidéo sur une histoire de meurtre à un enfant. Pourquoi cela se produit-il, est-il difficile de filtrer le contenu?


La tâche de filtrage du contenu est, en principe, résoluble et avec une grande précision. Ce qui s'est exactement passé dans cette situation, je n'en suis pas sûr, mais je peux réfléchir.

Supposons que le système ait du contenu affilié et qu'il existe une API dans laquelle les partenaires doivent baliser ce contenu avec des balises ou d'une autre manière. Le système fonctionne initialement sur la confiance des partenaires - il est possible que ce soit seulement de temps en temps qu'il y ait des vérifications de contenu. Au fil du temps, cela ne suffira pas, vous raccrocherez un système de contenu simple avec recherche de mots vides dans les en-têtes et les balises, affichant au moins une partie du contenu par les modérateurs.

Dans chaque système, il y aura inévitablement un point d'échec: parfois les gens font des erreurs, parfois les partenaires ne remplissent pas leurs obligations. Tout ce qui peut être fait est d'effectuer de nouvelles itérations et d'améliorer le système, et les améliorations sont généralement réactives: si quelque chose fonctionne assez bien, il n'y aura généralement pas d'améliorations jusqu'à ce qu'elles deviennent nécessaires.

Peut-être que lorsqu'une IA forte apparaît, vous pouvez lui demander de filtrer tout le contenu avec une précision de 100%.

Participez-vous à des conférences internationales sur les systèmes de traitement de l'information neuronale et l'apprentissage automatique? Quelles sont vos impressions sur les conférences russes dans ce domaine?


Je ne peux pas parler des Russes. Je vais à l'international parfois, mais je comprends de moins en moins pourquoi.

Le «tourisme scientifique» est, bien sûr, important et intéressant, mais les conférences elles-mêmes, il me semble, ont cessé de remplir leur fonction. Un grand nombre d'articles y sont acceptés, mais pour cette raison, il est impossible d'organiser une présentation normale pour chaque auteur. Par exemple, en ICML, seul le meilleur article avait de longs rapports, et tous les autres avaient des rapports en vedette, moins de cinq minutes.

En outre, un grand nombre d'œuvres - incrémentales, avec une reproductibilité douteuse, dont elles bénéficient aux auditeurs - non. Si la conférence a un travail vraiment cool, vous le connaissez déjà, très probablement - la préimpression est mise en place tôt.

Je pense que le format de la conférence devrait être réinventé - ou du moins élever considérablement la barre sur ce qu'il faut prendre.

Quelle a été votre motivation pour retourner en Russie?


J'ai quitté la Russie parce que c'était intéressant pour moi de vivre dans de nouveaux endroits et d'apprendre de nouvelles personnes. Il me semblait que pour le développement personnel, il fallait arriver là où les gens en savent plus que moi. En fait, c'est ce qui s'est passé: dans Microsoft Research, j'ai beaucoup compris à quel point vous devez être méthodique, à quel point vous devez comprendre ce que vous faites, à quel point vous devez être conscient de ce qui se passe. Eh bien, à un moment donné, je me suis ennuyé, bien qu'il y ait eu des tâches intéressantes.

J'ai ensuite vécu à Cambridge - c'est une petite ville dans laquelle il se passe peu de choses, le cercle social en elle ne peut être comparé à Moscou. J'ai pensé: maintenant vous pouvez vivre à Moscou, appliquer les connaissances acquises, puis peut-être aller ailleurs. Je suis allé travailler chez Yandex - il semble être assez bon pour appliquer ce que j'ai appris.

Il me semble que maintenant dans DeepMind et OpenAI ils font des choses intéressantes, je pourrais y apprendre beaucoup.

J'ai entendu dire que l'équipe de drones préfère utiliser TensorFlow plutôt que PyTorch pour former des modèles d'inférence. Quelle est la raison pour ça?


Peut-être pour des raisons historiques. Je ne peux pas dire pourquoi TensorFlow est meilleur ou pire que PyTorch.

Quelle taille doit avoir l'ensemble de données? 50 à 60 000 exemples de formation suffisent-ils ou des millions sont-ils nécessaires?


Dépend du modèle utilisé et de la tâche. L'ensemble de données doit être de nature à configurer les paramètres du modèle et à empêcher le recyclage. Si vous avez un modèle linéaire trivial, l'ensemble de données peut être petit. S'il s'agit d'un réseau neuronal complexe, 60 000 ne suffisent pas.

L'apprentissage de réseaux neuronaux complexes à partir de choses non triviales à partir de zéro nécessite presque toujours des dizaines ou des centaines de millions. Le principe «plus de données - plus de qualité» n'a pas disparu.

Soit dit en passant, sur la question de savoir comment devenir un expert en PNL. Désormais, le deep learning à la pointe de la technologie fonctionne toujours avec le Big Data. Ils doivent être prétraités, puis - efficacement diffusés dans des nœuds de calcul qui fournissent une formation.

On peut dire que le deep learning est un petit travail de singe: pour réussir, il faut essayer beaucoup de choses, sans être sûr du résultat de travailler avec chacun.

Peut-être que vous pouvez développer une intuition pour les options qui fonctionneront plus probablement, bien que je n'ai pas rencontré une personne avec une intuition précise. Dans le cas général, la plus réussie de toutes les équipes sera celle qui pourra mener le plus d'expériences par unité de temps.

La majeure partie de mon travail consiste à éliminer les «goulots d'étranglement» dans le processus d'apprentissage afin de le «disperser» à la vitesse théoriquement possible. Cela nécessite des compétences en ingénierie, la capacité d'extraire les performances du code et du matériel.

Ce qui distingue un expert d'un simple data scientist, c'est que l'expert est généralement aussi un bon ingénieur, capable de travailler rapidement, d'écrire du code, de gérer des systèmes de stockage et de traitement de données distribués, et de comprendre l'architecture des ordinateurs et des réseaux - afin de calculer les «gags». Il est très important de développer ces compétences en vous-même.

Avec la prédominance du Big Data, ceux qui savent comment obtenir une formation pour travailler rapidement sur ces volumes de données sont les plus performants de l'industrie. Si l'apprentissage en profondeur fonctionnait sur de petits volumes, je dirais que seules les connaissances à ce sujet sont nécessaires, mais ce n'est pas le cas maintenant.

Apprenez à bien programmer, apprenez les algorithmes informatiques standard, élargissez vos horizons. Soit dit en passant, la cryptographie est utile.

Utilisez-vous des analogues AutoML pour régler l'architecture et les paramètres, ou plus d'expériences manuelles et d'intuition?


Maintenant - plus que la seconde. Le réglage automatique est présent au niveau du balayage par grille ou de l'optimisation bayésienne, quelque chose de plus compliqué dans AutoML n'a pas encore été fait. Cela nécessite beaucoup de ressources informatiques - si elles sont limitées, il vaut mieux se fier à l'intuition. Mais, si vous comprenez que vous êtes venu à quelque diseuse de bonne aventure, il vaut mieux le confier au processus.

Que fait Alice, que ne fait pas Google Assistant? Quelle est la taille de l'équipe dans cette direction pour Google et Yandex?


Je ne peux pas parler de Yandex. Google semble avoir des centaines ou des milliers de personnes. En ce qui concerne les avantages d'Alice, je ne suis pas sûr de ne pas avoir suivi le développement de produits d'Alice ou les fonctionnalités de l'Assistant récemment.

La question de la qualité est incorrecte, il me semble. Même si Alice était pire, cela signifierait-il qu'elle n'a pas le droit d'exister? Les produits sont créés et rivalisent les uns avec les autres, c'est pourquoi ils gagnent tous, évoluent, s'étirent.

Je ne comprends pas la mentalité "un nouveau produit est le même que Google". En affaires, les produits sont créés de cette façon: vous prenez l'idée de quelqu'un d'autre comme base, la mettez en œuvre - parfois telle quelle en général - mais ce n'est pas le point final du chemin, mais le début. Ensuite, vous changez progressivement l'idée pour qu'elle devienne meilleure que celle d'un concurrent. C'est toute l'histoire du progrès!

Comment le sport aide-t-il à obtenir plus dans d'autres domaines?


Dans les sports, particulièrement compétitifs, j'aime l'ambiguïté. Si vous perdez, vous perdez. Vous ne pouvez pas attribuer cela aux circonstances: vous n’êtes pas assez bon, vous avez fait quelque chose de mal.

Dans les sports de compétition, la franchise, la sincérité et la capacité à admettre ses erreurs se développent. Cela aide dans d'autres domaines - il est toujours préférable d'admettre que vous devez devenir meilleur en X, Y et Z que de chercher des excuses. Outre les bienfaits pour la santé bien sûr.

Comment le parachutisme vous aide-t-il à sortir de votre zone de confort?


Imaginez que vous vouliez sauter d'un avion par un groupe de personnes et assembler quelque chose. L'avion entre dans l'avion de combat, la porte s'ouvre, vous vous alignez tous à l'intérieur et attendez que le signal saute tous ensemble.

En ce moment, il ne devrait y avoir aucun doute sur ce qui se passe. Un retard, même d'une fraction de seconde, retarde tout le monde. Vous devez vous mettre dans un état dans lequel vous sautez sans hésitation. Le monde disparaît, il ne reste qu'un bond. Si quelque chose se passe avec un parachute, vous aurez peu de temps pour agir - alors il ne devrait pas y avoir de doute ni de peur, vous devez faire exactement ce qu'on vous a enseigné, le plus rapidement possible.

Le parachutisme permet à une personne de prendre la décision de faire quelque chose - et de ne pas douter davantage. Un parallèle peut être établi entre ce projet et des projets complexes. Parfois, on ne sait pas quoi faire dans le projet; lorsque vous démarrez la tâche, vous ne savez pas exactement quoi faire, comment le faire, si cela peut être fait du tout. À ce stade, il est facile de commencer à douter et à penser: «Et si je ne peux pas? - Le temps et l'effort mental y sont consacrés. Si on vous demandait de résoudre un problème, alors ils croyaient en vous. Vous devez faire tous les efforts pour résoudre ce problème. Vous devez vous amener au même état mental que lors d'un saut, laisser tomber tout ce qui n'est pas nécessaire et vous concentrer. Cela est devenu beaucoup plus facile pour moi d'y parvenir après avoir commencé le parachutisme.

Combien dépensez-vous en parachutisme?


Beaucoup de. Il s'agit d'un article important dans mon budget. Je perçois cela comme une incitation à poursuivre la croissance de carrière.

Dans quel club êtes-vous?


Surtout à Pushchino, certaines disciplines y sont bien développées - par exemple le freefly.

Où aller étudier en tant qu'ingénieur ML?


Mes données sont déjà dépassées, j'ai étudié pendant longtemps - à l'Université d'État de Moscou, au VMK. Je ne peux pas dire que c'était une éducation super-ML, mais les professeurs nous ont bien appris et nous ont fait découvrir le monde du ML. Je pense que beaucoup de gens connaissent Dmitry Petrovich Vetrov - je lui dois beaucoup, sans ses conférences et le cours spécial qui m'a amené, je n'aurais probablement pas étudié le ML. Je ne sais pas où il enseigne maintenant, mais ça vaut vraiment la peine d’y aller. De plus, peu importe la faculté dans laquelle vous étudiez, je vous recommande d'aller au SHAD si possible. Non pas parce que c'est Yandex, mais parce que c'est un endroit vraiment cool - là, ils donneront toutes les connaissances nécessaires pour un bon travail pratique dans l'industrie, qui peut ne pas être dans une université. De ShAD, de nombreuses personnes formées et talentueuses viennent nous voir et savent quoi faire.

Encore une fois sur la question de savoir s'il est possible d'entrer dans le ML «pas un technicien». Des compétences techniques sont nécessaires, mais une majeure en arts libéraux n'est pas un bloqueur. Pour comprendre les bases de la programmation et des mathématiques, vous n'avez besoin que d'une tête sur vos épaules et de la capacité de réflexion logique et structurelle. Il y a beaucoup de gens qui, bien qu'ils aient choisi pour une raison quelconque une spécialité humanitaire, possèdent de telles compétences. Rien n'est impossible, l'essentiel est d'essayer. Il ne faut pas penser au sujet "je peux", mais commencer à le faire? Cela augmente considérablement les chances de succès.

Est-il possible d'étudier dans une école d'apprentissage en même temps qu'une université?


Je l'ai fait, même si c'était assez difficile. Il y a une grosse charge dans le ShAD. Vous pouvez combiner le SHAD avec les derniers cours de l'université, où la charge est relativement faible - ce sera un travail difficile, mais cela sera payant.

Expérience de course automobile avec des drones?


Nous avons des sportifs motorisés actifs, car nous devons former des chauffeurs et des ingénieurs QA qui sont directement dans la voiture. Ils doivent être capables de reconnaître une situation d'urgence lors des tests et de répondre, ils subissent tous une formation de contre-urgence dispensée par des sportifs motorisés. Si nous parlons de savoir si nous utilisons une sorte de modèle de physique des pneus que les athlètes professionnels utilisent dans les simulations de sport automobile pour développer des tactiques - à mon avis, non, nous ne couperons pas encore les centièmes de seconde sur le cercle. La télémétrie, utile pour les athlètes, est différente de ce dont nous avons besoin, et nous avons plus de données mesurées.

Et après?


La prochaine diffusion en direct aura lieu lundi prochain.
Vous pouvez poser une question à Natalya Teplukhina - membre de l'équipe principale de Vue.js, GoogleDevExpret et ingénieur frontend principal dans GitLab.

Vous pouvez lui poser une question dans les commentaires de ce post. L'

interprétation d'un entretien avec Ilona, ​​ingénieur logiciel senior sur Facebook, peut être lue ici. Insiderings d'un employé de Facebook: comment obtenir un stage, obtenir une offre et tout sur le travail dans une entreprise


All Articles