Actualités et analyses de l'IAActualités et analyses de l'IA
Actualités et analyses de l'IA52 min de lecture

Algorithme de prédiction du temps de trajet de Google Maps et recherche en IA chez Google DeepMind

Une entrevue avec Petar Veličković : épisode 17 du balado What’s AI. Pourriez-vous donner des types de données non pas pratiques, mais appliquées, avec lesquels cela peut fonctionner.

Mis à jour le 04 juill. 2023
Algorithme de prédiction du temps de trajet de Google Maps et recherche en IA chez Google DeepMind
Sommaire

Le domaine des réseaux neuronaux de graphes et de l’apprentissage de représentations vous intéresse ? Ou peut-être simplement DeepMind et la réalité du travail de scientifique de recherche dans cette entreprise ? Nous avons récemment eu une discussion très intéressante avec Petar Veličković, scientifique de recherche chez DeepMind et chargé de cours affilié à l’Université de Cambridge.

Issu d’un parcours purement mathématique, Petar a commencé son aventure avec une passion pour la programmation compétitive et la résolution de problèmes algorithmiques. Son parcours universitaire l’a toutefois mené dans une autre direction, vers une carrière en apprentissage automatique.

Le passage de Petar de la programmation à l’IA s’est fait spontanément, poussé par la curiosité. La programmation était passionnante, mais la recherche offrait une façon de s’attaquer à des problèmes non résolus, ce qui était exaltant.

Le doctorat de Petar l’a amené à gérer son propre travail, à développer son réseau et à résoudre des problèmes. Il souligne qu’un doctorat ne devrait pas vous enfermer dans un domaine précis, mais vous préparer à surmonter de nouveaux défis.

Petar considère son doctorat comme une expérience enrichissante et bénéfique pour son développement personnel, et il recommande d’en faire un. Il insiste toutefois sur le fait que ce n’est pas une nécessité pour la recherche en IA. L’ambition, la curiosité et la volonté comptent aussi.

Petar est également l’une des principales personnes derrière l’algorithme de prédiction du temps de trajet de Google Maps, dont nous parlons dans l’épisode. L’un des rares projets de recherche réellement utiles dans le monde réel !

Nous discutons aussi de son travail chez DeepMind, de la recherche universitaire par rapport à la recherche industrielle et de son expérience en enseignement. C’est une entrevue incroyable pour toute personne du domaine qui s’intéresse à la recherche. La transcription française complète se trouve ci-dessous. L’épisode original reste offert sur Spotify et Apple Podcasts.

Ou lisez la transcription complète du balado ci-dessous…

[00:00:00] Voici une entrevue avec Petar Veličković, scientifique de recherche chez DeepMind et chargé de cours affilié à l’Université de Cambridge, où il a aussi fait son doctorat. Petar est un expert des réseaux neuronaux de graphes et de l’apprentissage de représentations. Dans cette entrevue, nous explorons ce qu’il fait chez DeepMind, mais aussi la façon dont il a appliqué ses recherches.

Par exemple dans Google Maps. Nous partageons aussi d’excellents conseils sur le doctorat et sur la façon de vous préparer à un poste de scientifique de recherche. J’espère que vous aimerez cette entrevue.

Je demande habituellement à mes invités qui ils sont, mais je vais peut-être préciser un peu la question en vous demandant d’abord quel était votre parcours universitaire avant d’arriver chez DeepMind.

Merci pour cette question. Je trouve que l’histoire de mon parcours universitaire est assez intéressante, selon l’endroit exact où on décide de la commencer. Dans mon cas, je pense qu’il est très logique [00:01:00] de commencer avant même l’université, selon, vous savez, l’endroit où notre histoire nous mène avant le début de l’université.

Je suis né et j’ai grandi à Belgrade, en Serbie, et j’ai fréquenté l’une des écoles secondaires du pays orientées vers les mathématiques. J’ai donc essentiellement suivi un programme très axé sur les mathématiques, l’informatique, la physique et ce genre de sujets. C’est ainsi que j’ai fini par déménager…

À Cambridge, au Royaume-Uni, où j’ai obtenu mon diplôme de premier cycle en informatique et mon doctorat en apprentissage automatique. Peu après avoir soumis mon doctorat en 2019 dans le domaine de l’apprentissage de représentations de graphes, j’ai commencé à travailler à temps plein chez DeepMind comme scientifique de recherche.

D’après ce que j’ai vu, vous ne vouliez pas immédiatement vous lancer en apprentissage automatique. Avant votre doctorat, vous vous intéressiez surtout à la programmation. J’ai aussi vu que vous aviez fait beaucoup de [00:02:00] programmation compétitive. Pourriez-vous nous parler un peu plus de votre expérience en programmation et nous expliquer pourquoi vous êtes passé à l’apprentissage automatique ou à l’IA ?

Oui, c’est exactement pourquoi je pensais devoir commencer avant l’université. En réalité, j’ai commencé à toucher à la programmation assez jeune. Lorsque j’ai commencé à étudier des sujets liés à l’informatique au secondaire, j’ai réalisé ce qui m’attirait personnellement le plus. C’était en quelque sorte la principale façon dont les élèves de ma région découvraient ces concepts.

C’était à travers les algorithmes classiques, les structures de données et la programmation compétitive, qui représentait l’une des façons les plus simples de développer ses compétences dans ces domaines. On apprend à résoudre des problèmes algorithmiques le plus rapidement possible, de sorte que les programmes doivent se terminer dans un certain délai.

Ils ne doivent pas utiliser plus qu’une certaine quantité de mémoire, et ainsi de suite. C’est ce type de résolution de problèmes qui m’a mené à étudier l’informatique. Par [00:03:00] conséquent, pendant mon premier cycle, je n’ai vraiment découvert l’intelligence artificielle sous aucune forme.

J’aimais vraiment résoudre des problèmes de programmation compétitive, écrire des algorithmes classiques et des structures de données, puis les optimiser. Je croyais donc réellement, vous savez, que j’allais faire carrière comme ingénieur logiciel. C’est du moins ce que je pensais faire. À cette époque, j’ai toutefois effectué un stage en génie logiciel et j’ai réalisé que, même si c’était très intéressant, cela ne correspondait pas fondamentalement à mes principaux champs d’intérêt.

Après avoir ensuite effectué quelques stages axés sur la recherche, j’ai réalisé que la recherche m’intéressait beaucoup. Elle permettait non seulement de réfléchir à la façon de recomposer des solutions existantes pour résoudre des problèmes connus, mais aussi d’essayer de s’attaquer à des problèmes pour lesquels aucune solution n’existait réellement à l’époque.

Mon premier contact avec la recherche a eu lieu dans un domaine complètement différent. [00:04:00] J’ai travaillé sur la conception de matériel informatique, notamment sur des langages de description du matériel et d’autres sujets du même genre. J’ai compris que la recherche était très intéressante, mais aussi que je n’étais pas très doué avec le matériel.

J’ai donc dû trouver un autre domaine. Heureusement, pour mon projet de dernière année du baccalauréat, je voulais d’abord faire un projet en bio-informatique, parce que j’avais entendu dire que la bio-informatique regorgeait d’algorithmes classiques. Je pensais donc que c’était une excellente façon de combiner les anciennes sources d’inspiration qui m’avaient mené dans ce domaine.

Et aussi de contribuer à quelque chose qui avait un usage dans le monde réel, comme la biologie. Mais très peu de temps après le début des discussions sur ce projet, mon directeur, qui est ensuite également devenu mon directeur de doctorat, le professeur Pietro Liò de l’Université de Cambridge, m’a essentiellement dit que je ne devrais pas perdre mon temps à appliquer des algorithmes classiques à la bio-informatique. Tout le monde en bio-informatique apprenait maintenant l’apprentissage automatique, alors je devrais probablement faire la même chose.

J’ai suivi ce conseil [00:05:00]. J’ai fini par réaliser un projet d’une année complète en apprentissage automatique, qui s’est ensuite transformé en doctorat dans le même domaine. Voilà, en gros, comment je suis passé de la programmation compétitive, des algorithmes classiques et du génie logiciel à la recherche en intelligence artificielle.

Le doctorat correspondait-il à ce que vous attendiez ? Vous avez mentionné aimer la recherche ainsi que le développement de nouvelles idées ou solutions, plutôt que l’implémentation de solutions existantes. Le doctorat a-t-il répondu à cette attente ? Pensez-vous que l’expérience en valait la peine et qu’elle correspondait à la direction que vous vouliez prendre ?

Oui. Personnellement, tout bien considéré, le doctorat a été une période fantastique de mon développement.

Et vous savez, si je devais prendre la même décision de nouveau, je prendrais exactement la même. Donc oui, il m’a plongé dans la recherche et m’a amené à me consacrer à la création de solutions à des problèmes [00:06:00] jusque-là non résolus pendant une très longue période de trois ans.

Mais au-delà de cela, n’est-ce pas, il m’a aussi placé dans une situation où j’ai soudain dû devenir entièrement responsable de l’organisation de mes recherches et de ma vie, afin de naviguer dans le paysage de la recherche et d’y contribuer du mieux possible. C’est aussi quelque chose que j’aurais aimé comprendre un peu plus tôt.

En gros, l’expérience allait au-delà du simple objectif de publier un certain nombre d’articles scientifiques pour montrer que, vous savez, j’étais capable de faire ce travail à temps plein. C’était aussi une occasion unique d’élargir mon réseau, de rencontrer beaucoup de personnes vraiment intéressantes et de créer des collaborations dans toutes les directions, chaque fois que c’était possible.

Vous savez, au moins dans mon cas, le doctorat s’est révélé une période incroyable pour bâtir certaines de ces relations. Je suis presque certain que quelques-unes dureront toute la vie. Elles m’ont beaucoup aidé à devenir non seulement le chercheur en apprentissage automatique [00:07:00] que je suis, mais aussi, j’aime le croire, la personne que je suis.

Oui, je suis tout à fait d’accord. Pensez-vous que cela puisse aussi devenir un problème lorsque vous vous spécialisez dans un domaine très précis pendant votre doctorat ? Pour donner mon expérience personnelle, je fais essentiellement un doctorat en IA médicale. Cela pourrait-il me fermer des portes plus tard si je veux passer au NLP et travailler, par exemple, sur le prochain GPT ?

Est-ce que je serai coincé dans des tâches de segmentation liées aux soins de santé en IA ? C’est une question très importante. La réponse est très clairement non. C’est parce que ce n’est pas ce qu’est un doctorat, n’est-ce pas ? Un doctorat ne vous prépare pas à contribuer à un seul corpus de travaux auquel vous serez ensuite rivé pour le reste de votre vie.

Non, pas vraiment. Un doctorat n’est ni plus ni moins qu’un [00:08:00] billet d’entrée. C’est la confirmation que vous êtes capable de persévérer et de créer des travaux pour atteindre un objectif de recherche précis pendant une période prolongée. C’est réellement une preuve que vous en êtes capable. Hum. Le domaine précis est pertinent, mais la nature même de la recherche, surtout dans un domaine comme l’informatique et l’apprentissage automatique, fait que, vous savez, personne ne pense probablement aujourd’hui aux tendances de demain.

Oui, exactement. Il existait donc une époque avant les grands modèles mis à l’échelle. Vous savez, que faisaient auparavant tous les chercheurs qui réalisent maintenant d’excellents travaux sur les grands modèles ? Probablement pas de grands modèles. Ils travaillaient sur autre chose, parce que nous ne disposions pas nécessairement auparavant du compute ou de l’échelle nécessaires à ce type de modèle.

Mais beaucoup de ces personnes ont un doctorat et sont généralement capables d’exécuter ces nouvelles orientations, ce qui les y prépare. N’est-ce pas ? Je dirais donc… qu’un bon doctorat… vous savez, un doctorat réussi [00:09:00] ne fait pas seulement de vous un expert très pointu dans un domaine précis. Il fait aussi de vous un maître de l’adaptation, n’est-ce pas ?

Une personne capable de composer avec tout ce que l’environnement lui présente, de s’adapter correctement, de restructurer correctement son message et de continuer à produire des travaux de recherche très intéressants dans cet environnement. N’est-ce pas ? Je dirais donc que, vous savez, c’est encore plus vrai pour une personne qui fait aujourd’hui un doctorat en apprentissage automatique, parce que les tendances changent encore plus rapidement que la durée habituelle d’un seul doctorat, qui est, vous savez, de trois à cinq ans.

Oui. C’est aussi pourquoi ce n’est pas nécessairement effrayant, mais vous avez certainement certaines hésitations lorsque vous commencez un doctorat aujourd’hui, simplement parce que tout va tellement vite et que vous êtes essentiellement débutant. Il est donc difficile de rivaliser avec… ces progrès rapides, surtout lorsqu’ils viennent de Google, Facebook et toutes les grandes entreprises qui peuvent avoir beaucoup plus de potentiel, [00:10:00] d’argent et de capacité de calcul que votre université.

C’est donc certainement quelque chose qui peut faire peur au départ, mais vous apprenez tout de même énormément. De mon côté, par exemple, je peux appliquer de toutes nouvelles technologies et itérer très rapidement. Prenons le Segment Anything Model, sorti récemment et assez puissant pour la segmentation médicale. Il est sorti il y a, je ne sais pas, deux mois et nous pouvions déjà faire son fine-tuning et tout le reste.

C’est vraiment impressionnant. Même les travaux des grandes entreprises, nous pouvons les appliquer très rapidement, ce qui rend nos doctorats beaucoup plus, pas généraux, mais diversifiés. Nous pouvons essayer de nombreux réseaux et architectures différents. Autrefois, un doctorat se concentrait peut-être sur une seule architecture ou une seule technique. Je n’ai même pas terminé une année et j’ai déjà essayé de nombreux réseaux [00:11:00] et de nombreuses approches. Je crois donc que les doctorats sont très différents de ceux d’il y a quelques années.

Je ne verrais pas non plus les choses de cette façon. Vous avez utilisé le mot « rivaliser ». Je ne considérerais vraiment pas un doctorat comme une compétition avec de grandes entreprises. N’est-ce pas ? Personnellement, je vois le monde industriel comme un élément qui doit évidemment être présent parce qu’il possède, vous savez, les capacités, les motivations et les équipes nécessaires pour réaliser ces développements à grande échelle.

Je dirais que l’industrialisation de la recherche nous a, dans une certaine mesure, vraiment aidés à progresser plus rapidement comme domaine au cours de la dernière décennie. Toutefois, je pense en même temps que le milieu universitaire est plus important que jamais. La recherche industrielle réussira probablement très bien à pousser une orientation de recherche précise, mais tous ces travaux ouvrent de nombreuses avenues parallèles très passionnantes [00:12:00] auxquelles on ne s’attend fondamentalement pas à voir les groupes industriels accorder autant d’attention, parce qu’ils ont leurs propres objectifs et leurs propres motivations.

Et plus vous avancez sur la voie de la mise à l’échelle, plus ces avenues parallèles intéressantes s’ouvrent. Parfois, pour explorer ces avenues, vous n’avez souvent rien d’autre que la curiosité pour vous guider. C’est le type de recherche qui s’épanouit réellement dans un environnement universitaire.

Voilà donc une chose, n’est-ce pas ? Un universitaire peut contribuer de nombreuses façons très utiles à l’écosystème sans même entrer directement en compétition. Il peut simplement, vous savez, nous aider à mieux comprendre ce que nous construisons, n’est-ce pas ? Oui. J’ajouterais que même aujourd’hui, il est possible de publier des recherches de premier plan et très influentes sans même avoir besoin, honnêtement, de GPU.

Par exemple, certains de mes articles relativement récents publiés, disons, à l’ICML l’an dernier peuvent être [00:13:00] entièrement entraînés en quelques heures sur un seul CPU. Donc vous n’avez pas… Si vous voulez produire un résultat qui attirera l’attention et l’intérêt des gens, et qui nous aidera à mieux comprendre les capacités de ces modèles…

Vous n’avez pas nécessairement besoin d’immenses ressources si vous choisissez les bons problèmes. En fait, un doctorat vous apprend aussi en partie à choisir vos combats, n’est-ce pas ? Une personne qui commence un doctorat à l’université en s’attendant à rivaliser avec une entreprise a probablement des attentes mal alignées, n’est-ce pas ?

Mais une personne qui commence un doctorat et en ressort en sachant choisir les bons problèmes pour produire le plus grand impact avec les ressources à sa disposition, vous savez, c’est un signe très positif. Cette personne a réellement profité au maximum de cette occasion et a beaucoup grandi pendant le processus.

Oui, c’est certainement une expérience très précieuse pour devenir ensuite scientifique de recherche dans l’industrie, simplement parce qu’on développe tellement [00:14:00] de compétences utiles à ce poste. Mais diriez-vous qu’il est intéressant de faire un doctorat même si l’on veut devenir spécialiste en MLOps ou développeur, et construire ces outils plutôt que de les créer ?

Oui. C’est aussi un point très important. Je dirais qu’un doctorat n’est pas pour tout le monde. Vous savez, il arrivait autrefois, et j’ai déjà vu des gens faire cela, qu’ils pensaient devoir absolument obtenir un doctorat s’ils voulaient travailler avec des systèmes d’apprentissage automatique de premier plan ou faire de la recherche en apprentissage automatique.

Je dirais que ce n’était déjà pas vraiment le cas lorsque j’ai commencé. Et aujourd’hui, ce n’est certainement pas le cas. Certains des produits et développements les plus marquants que nous voyons en ML ont été propulsés par des gens qui n’ont même pas nécessairement de maîtrise, n’est-ce pas ? En gros, la barrière à l’entrée est assez basse et les connaissances préalables nécessaires sont assez spécialisées pour que vous puissiez vous concentrer, vous savez, sur les [00:15:00] quelques domaines mathématiques pertinents, puis extrapoler à partir de là pour apprendre quelques frameworks de programmation utiles. Vous pouvez ainsi mener des recherches de pointe sans aucune formation officielle en apprentissage automatique ni même en informatique. Pour moi, c’est une propriété vraiment magique de la recherche en IA comparativement aux autres domaines de recherche. C’est aussi très important, car avec l’influence grandissante de l’IA et le nombre de groupes touchés par l’IA d’une façon ou d’une autre, nous avons réellement besoin que le plus grand nombre possible de parties prenantes participent directement à la conversation.

Nous voulons donc réellement que des gens de tous les parcours, avec toutes sortes de, vous savez, capacités, de formations et de niveaux différents contribuent à cette conversation. N’est-ce pas ? À mon avis, le fait de ne pas avoir besoin d’un doctorat pour faire ce genre de choses est donc une très bonne chose. Oui. Une personne ne devrait envisager un doctorat, dans n’importe quel domaine et pas seulement en apprentissage automatique…

Que si elle est réellement [00:16:00] passionnée par l’idée de faire de la recherche et veut en faire une carrière, une façon de diriger sur le plan universitaire un groupe de personnes qui exécute un programme de recherche. N’est-ce pas ? Parce qu’un doctorat vous prépare vraiment à cette période de trois à cinq ans pendant laquelle vous êtes seul responsable de formuler votre propre programme. Cette liberté est à la fois incroyable et effrayante, n’est-ce pas ?

Donc, si vous êtes capable d’y survivre, vous obtenez un doctorat comme sceau d’approbation indiquant que vous êtes capable de survivre à une telle expérience. Cela vous donne maintenant une capacité qu’une personne titulaire d’une maîtrise ne possède pas nécessairement. Mais cette capacité n’est pas obligatoire pour réaliser un projet de recherche.

N’est-ce pas ? C’est peut-être la distinction essentielle. J’ajouterais simplement que nous avons tellement d’excellentes histoires de réussite de personnes sans doctorat qui ont accompli des choses remarquables dans le monde de la recherche en IA. Personnellement, je cite toujours Aleksa Gordić, un de mes compatriotes qui a réussi à obtenir un poste d’ingénieur de recherche [00:17:00] chez DeepMind et à travailler directement sur des problèmes de recherche et des problèmes appliqués sans aucune formation officielle en apprentissage automatique.

Il était entièrement autodidacte. Je peux aussi raconter une anecdote au sujet de mon doctorat. J’ai commencé mon propre doctorat avec une compréhension de l’apprentissage automatique qui ne me permettait pas vraiment de saisir la façon dont les gens faisaient de l’apprentissage profond. En 2016, je pensais que tout le monde écrivait des réseaux neuronaux en C++ et programmait soi-même la rétropropagation, n’est-ce pas ?

C’est l’image que j’avais tirée de mes cours d’IA à l’époque. J’ai ensuite commencé mon doctorat et j’ai éprouvé beaucoup de difficulté. Un étudiant à la maîtrise m’a alors fait remarquer qu’il existait, vous savez, quelque chose appelé Coursera, quelque chose appelé Udacity et quelque chose appelé TensorFlow.

Je pouvais suivre un cours Udacity de Google pour apprendre TensorFlow et faire réellement de l’apprentissage automatique de la façon moderne, avec des réseaux neuronaux [00:18:00] profonds. J’ai donc essentiellement tout appris sur l’apprentissage profond pendant un sprint Udacity de deux semaines. J’ai appris TensorFlow par moi-même de cette façon. On peut donc certainement acquérir ces compétences sans terminer un doctorat. Oui.

Absolument. J’ai fait la même chose pendant ma maîtrise, simplement parce que mon université, comme beaucoup d’universités, accusait beaucoup de retard en IA. J’ai donc moi aussi suivi des cours en ligne et appris PyTorch de mon côté. Selon vous, qu’est-ce qui vous a le plus aidé à trouver un emploi chez DeepMind, par exemple, entre votre doctorat et tous les projets et concours très intéressants que vous avez réalisés en programmation compétitive ? Aujourd’hui, je crois que votre travail est en grande partie lié à l’efficacité et à ce que vous faisiez en programmation compétitive. Cela a donc dû beaucoup vous aider.

Oui. Je vais peut-être simplement commenter rapidement ce que vous avez dit au sujet de PyTorch. PyTorch n’existait pas à [00:19:00] l’époque où je faisais… Ah oui. Lorsque je faisais cela, je n’avais donc pas vraiment le choix. Et aujourd’hui, chez Google DeepMind, nous utilisons évidemment JAX. Je suis donc aussi un grand défenseur de JAX.

PyTorch est évidemment aussi un très bon langage, particulièrement pour le prototypage universitaire. Pour ce qui est des compétences, il est vrai qu’aujourd’hui, je travaille beaucoup à l’intersection des algorithmes classiques, de la programmation compétitive, du raisonnement algorithmique et des réseaux neuronaux profonds.

Ce parcours m’est donc très utile dans mon travail actuel. Je dirais même qu’il m’est peut-être plus utile que mon expérience en apprentissage profond. Mais pour entrer chez DeepMind, ce qui était, je crois, le sujet de votre question, la répartition était, je dirais, de 80-20. N’est-ce pas ? Donc, pour la majeure partie, les compétences acquises pendant le doctorat : la capacité de reconnaître et de catégoriser différentes approches d’apprentissage profond et d’apprentissage par renforcement, de parler des [00:20:00] avantages et des inconvénients de différentes méthodes, puis de réagir rapidement lorsqu’une personne écrit un nouveau problème sur un tableau blanc.

On acquiert ce type de compétences pendant un doctorat, simplement en faisant de nombreuses séances au tableau blanc, en réalisant beaucoup de projets avec différentes personnes, en développant une compréhension de ses recherches, en les présentant dans des conférences et, vous savez, en apprenant à répondre aux questions spontanées qu’une personne vous pose devant votre affiche ou ailleurs.

Oui. Les compétences acquises pendant le doctorat ont donc été très utiles pour cette partie, qui représentait peut-être 80 % de mes entrevues. Les entrevues sont un peu différentes aujourd’hui, mais je peux évidemment seulement parler de mon expérience personnelle. Cela dit, l’entreprise veille aussi, avec raison, à ce que toute personne qui entre dans une entreprise comme DeepMind comme scientifique de recherche maîtrise bien tous les fondements des mathématiques, de l’informatique et des statistiques.

Ces connaissances fondamentales sont donc clairement très utiles à certaines étapes de l’entrevue. Et il est aussi utile [00:21:00] de montrer que vous êtes un programmeur très compétent. Plusieurs parties de l’entrevue étaient donc consacrées au type de résolution de problèmes algorithmiques dans une séance de programmation qu’on pourrait voir en postulant à un emploi classique en génie logiciel.

Je dirais donc que chaque partie de mon parcours a joué un rôle important dans cette entrevue. Tout s’est en quelque sorte rassemblé à cet endroit, mais les compétences du doctorat étaient les plus importantes pour un poste de scientifique de recherche. Évidemment, si vous postulez à un poste d’ingénieur de recherche, l’équilibre sera très différent. J’espère que c’est clair.

Oui, absolument. Si vous ne venez pas d’un doctorat, mais voulez faire de la recherche, comment conseilleriez-vous à une personne de pratiquer les mêmes compétences ou de bâtir un portfolio pertinent afin de postuler à un poste semblable à celui que vous occupez maintenant ?

Tout d’abord, cela varie d’une entreprise à l’autre, mais les postes de scientifiques de recherche exigent normalement un doctorat. Cela dit, [00:22:00] lorsqu’on examine aujourd’hui les problèmes réels que nous devons régulièrement résoudre, la frontière entre le travail d’un scientifique de recherche et celui d’un ingénieur de recherche devient de plus en plus floue. Même si vous finissez par postuler à un poste d’ingénieur de recherche, qui exige habituellement un baccalauréat, vous pourriez tout de même travailler sur des problèmes de recherche très fondamentaux et publier des articles scientifiques.

Et, vous savez, cela dépend réellement de ce que vous aimez et de la façon dont vous aimez aborder les choses, n’est-ce pas ? Dans cette situation, le poste le plus approprié serait celui d’ingénieur de recherche. Et vous pouvez effectivement atteindre ce poste par vous-même, même complètement seul. J’ai généralement quelques conseils à donner à ces personnes, parce que, vous savez, elles communiquent avec moi de temps en temps et nous avons ces discussions.

Je pense que le meilleur point de départ pour une personne généralement douée en programmation, mais qui veut s’améliorer du côté de la recherche, consiste à tirer parti de la très riche communauté open source. Beaucoup des articles influents [00:23:00] régulièrement publiés offrent leur code en source ouverte. En inspectant ce code, on peut se faire une idée de la façon dont le code de recherche est construit, de la façon de créer une expérimentation stable et, vous savez, du genre d’astuces qui ne sont pas directement décrites dans les articles, mais qui sont très importantes pour la stabilité numérique et d’autres aspects semblables.

Voilà donc la première étape. Examinez la façon dont d’autres choses sont implémentées. Regardez comment les auteurs s’y prennent. Lisez peut-être l’article qui accompagne le code et essayez de faire correspondre les parties de l’implémentation avec le contenu de l’article. N’est-ce pas ? À cette étape, vous ne faites toujours pas de recherche. Vous établissez simplement la correspondance habituelle entre la description écrite par un humain et l’implémentation réelle en Python.

N’est-ce pas ? C’est donc la première chose. Ensuite, après avoir lu quelques autres travaux de ce type, vous pouvez commencer à en réimplémenter certains pour vous assurer que vous comprenez leur fonctionnement plutôt que de seulement pouvoir les inspecter. Vous pourriez aussi constater, [00:24:00] par exemple, qu’il existe des façons d’améliorer subtilement certains de ces articles, n’est-ce pas ?

Très souvent, l’amélioration n’est pas si subtile. Lorsque vous soumettez un article à une conférence et qu’il est accepté, un évaluateur vous laissera normalement le publier seulement si vous êtes très honnête et transparent au sujet des limites de votre modèle. Aujourd’hui, dans la plupart des cas, les auteurs écrivent donc littéralement dans leur article ce qui manque à leur modèle.

Oui. N’est-ce pas ? Et ce qu’il serait formidable d’avoir à l’avenir. Vous pouvez donc littéralement vous en inspirer, n’est-ce pas ? Vous pouvez prendre cette idée, modifier subtilement l’équation utilisée par le modèle, changer une ou deux lignes de code. Vous pourriez constater qu’en modifiant ces quelques lignes de code, vous savez, vous obtenez une bien meilleure performance que celle annoncée à l’origine par les auteurs, ou quelque chose du genre.

Ces améliorations progressives constituent une excellente façon de commencer dans ce domaine. Vous les réalisez, obtenez certaines améliorations, comprenez maintenant un peu mieux d’où elles viennent, puis pouvez [00:25:00] essayer de rédiger une courte version de quatre pages de ce que vous venez de faire.

Essayez de lui donner l’allure de l’un des articles que vous avez lus et, vous savez, envoyez-la à un atelier pertinent. À mon avis, les ateliers sont une sorte de trésor. Plus tôt vous les découvrez comme chercheur, plus ils vous seront utiles. J’ai passé deux ans et demi de mon doctorat sans comprendre les possibilités offertes par les ateliers.

Lorsque je l’ai compris, cela a complètement changé la donne pour moi. C’est presque un peu ironique, parce que les conférences de premier plan en apprentissage automatique sont notoirement très difficiles d’accès et qu’il faut être extrêmement chanceux. En comparaison, il est normalement beaucoup plus facile d’être accepté à un atelier. Le taux d’acceptation moyen des ateliers tourne autour de 75 %.

Vous avez donc de bonnes chances de faire accepter un article, tant qu’il fait quelque chose de correct et nous apprend quelque chose d’intéressant. Vous rédigez cet article de quatre pages et l’envoyez à un atelier pertinent organisé pendant l’une de ces grandes conférences. Vous êtes accepté à l’atelier [00:26:00]. Et le plus ironique, c’est généralement que les interactions pendant l’atelier sont probablement souvent meilleures que celles pendant la conférence principale. L’atelier est rattaché à une conférence de premier plan. Toutes les personnes importantes qui assistent à la conférence seront donc aussi présentes à l’atelier.

La différence, c’est que l’atelier porte sur un domaine précis de l’apprentissage automatique qui correspond au contexte de cet article. Vous serez donc entouré de personnes de premier plan qui s’intéressent précisément au sujet que vous avez soumis. Oui. Cela signifie que vos conversations seront très ciblées.

Elles viendront voir votre affiche et vous poseront des questions. Ces personnes pourraient ensuite devenir vos évaluateurs lorsque vous déciderez de soumettre un article plus complet à une conférence, ou de futurs collaborateurs avec qui vous pourrez discuter davantage pour développer des idées. Les avantages sont donc beaucoup, beaucoup plus importants et la barrière à l’entrée beaucoup, beaucoup plus basse.

C’est donc une excellente façon de découvrir à quoi ressemble le travail de recherche et d’obtenir une référence. Vous savez, vous avez maintenant une [00:27:00] publication à votre nom. Il existe maintenant une preuve écrite et tangible que vous êtes capable de mener des recherches. C’est donc une excellente porte d’entrée vers une discussion sur un poste d’ingénieur de recherche.

N’est-ce pas ? Oui. J’ajouterais simplement qu’il ne s’agit que d’un parcours possible. C’est celui que je suggère habituellement, et il fonctionne généralement assez bien, même pour les personnes qui pensent davantage comme des ingénieurs. Elles aiment normalement ces petites excursions dans le monde de la recherche. Cela fonctionne pour la plupart des personnes à qui je parle, mais ce n’est pas le seul chemin…

Vers ce monde. Nous avons déjà mentionné Alex. Il a publié sur sa chaîne YouTube une excellente vidéo dans laquelle il explique comment il est passé, vous savez, de zéro connaissance en apprentissage automatique à la capacité de postuler à un poste d’ingénieur de recherche chez DeepMind. Aucun article scientifique n’était impliqué.

Il a simplement étudié des articles, réimplémenté des travaux, essayé de comprendre leur fonctionnement interne et réalisé de nombreuses contributions open source ainsi que des articles de blogue qui lui ont permis de se faire remarquer dans la communauté. C’est donc un autre parcours. Mais [00:28:00] l’élément fondamental, le cœur de ces deux approches, reste le même.

Vous étudiez la littérature, essayez de la comprendre et de faire correspondre ce que vous comprenez à l’implémentation. Ensuite, vous essayez de réimplémenter ou d’étendre le travail d’une certaine façon. Je pense donc qu’il s’agit généralement du parcours le plus robuste pour, vous savez, les programmeurs compétents qui veulent participer ainsi au monde de la recherche en IA.

Et comme vous l’avez mentionné, j’ajouterais que la partie la plus importante de tout cela est peut-être la visibilité. Vous partagez ce que vous avez fait dans des ateliers ou sur votre blogue, comme vous l’avez dit, dans des vidéos YouTube ou ailleurs. Le simple fait de partager votre travail pourrait être l’élément le plus important si vous voulez ensuite postuler à un emploi ou obtenir des occasions où des gens communiquent directement avec vous simplement parce que vous êtes visible en ligne.

C’est exactement vrai, n’est-ce pas ? Vous pouvez accomplir les choses les plus incroyables. Si personne ne peut les voir, cela [00:29:00] importe beaucoup moins. La visibilité est donc très importante, et probablement plus que la plupart des gens le pensent.

Oui, je suis tout à fait d’accord. Beaucoup de gens rêvent d’entrer chez DeepMind et d’y faire de la recherche. C’est un rêve pour beaucoup de personnes.

Qu’est-ce qu’un scientifique de recherche chez DeepMind, concrètement ? Que faites-vous ? Rédigez-vous des articles, programmez-vous, gérez-vous des gens ? Quelle proportion de votre temps consacrez-vous à vos différentes sous-tâches ? Oui. Différentes personnes vous raconteront des histoires complètement différentes en réponse à cette question. Comme je l’ai dit, le monde est très fluide.

Oui. En parlant seulement de la division entre l’ingénierie et la science, j’ai travaillé sur des projets d’ingénierie de deux ans et demi où j’ai essentiellement fait beaucoup d’ingénierie et où le travail ne ressemblait pas vraiment à de la recherche. Ils ont mené à des articles scientifiques parce que ce que nous avions construit était, vous savez, des benchmarks utiles à l’ensemble de la communauté de l’IA.

Mais le travail lui-même ne comportait aucune des véritables incertitudes [00:30:00] normalement associées à la recherche. Cela dépend donc réellement. Je décrirais mon quotidien comme une sorte de cercle vertueux où j’apprends de nouvelles choses. J’essaie constamment d’apprendre. Et je pense qu’un scientifique doit toujours rester au courant, essayer d’apprendre de nouvelles choses et acquérir de nouvelles perspectives pour s’attaquer aux problèmes.

À partir de ces apprentissages et de cette compréhension, vous essayez… vous repérez un problème qui, selon vous, pourrait être amélioré par de nouvelles recherches. Vous proposez une façon de vous y attaquer. Vous formez une équipe avec des collaborateurs. Si l’hypothèse s’avère vraie, ce travail commun finit normalement par donner un article que vous pouvez publier dans un atelier ou une conférence pertinente, puis présenter sur place. Vous discutez avec les gens présents et réalisez qu’il existe de nombreuses nouvelles avenues de recherche et de compréhension, ce qui remet le cycle en marche.

N’est-ce pas ? Voilà donc, en gros, comment cela fonctionne. Je [00:31:00] dirais que je répartis actuellement mon temps entre plusieurs activités soigneusement équilibrées. Je gère quelques équipes où, vous savez, j’essaie de réaliser le plus de recherches intéressantes et approfondies possible sur le raisonnement. Le raisonnement est actuellement l’un de mes principaux champs d’intérêt.

En même temps, je m’assure d’avoir assez de temps pour… contribuer fondamentalement au code et à l’ingénierie afin de maintenir mes compétences. J’essaie aussi de réserver assez de temps pour découvrir de nouveaux concepts. Le domaine sur lequel je me concentre beaucoup en ce moment est la théorie des catégories.

Nous avons récemment publié quelques articles sur ce sujet. J’essaie aussi d’améliorer et de perfectionner mes compétences dans ce domaine. Je pense que ce sera un excellent outil théorique pour comprendre l’apprentissage profond dans son ensemble et peut-être même nous aider à créer de nouvelles architectures à l’avenir. À mon avis, c’est simplement une excellente façon d’aborder la résolution de problèmes.

Enfin, depuis environ deux ans, j’occupe aussi un double poste dans mon ancienne université. Je suis actuellement [00:32:00] chargé de cours affilié à l’Université de Cambridge, où j’enseigne aussi un cours de maîtrise sur l’apprentissage de représentations de graphes. Chaque année, je suis responsable d’enseigner ce cours à un groupe d’environ 50 étudiants à la maîtrise, des étudiants de très, très grande qualité.

J’essaie toujours, vous savez, de consacrer autant de temps que possible à offrir le meilleur cours possible à ces étudiants et à discuter avec eux de leurs différentes perspectives. Je les soutiens aussi s’ils veulent essayer de publier eux-mêmes certains articles, et ainsi de suite. Je trouve que cet équilibre avec le milieu universitaire et la possibilité de…

Le fait de partager ma vision de l’ensemble du domaine avec un groupe d’étudiants comme celui-là n’a pas de prix. C’est donc quelque chose auquel j’essaie aussi de consacrer une partie de mon temps chaque année.

À propos de votre travail actuel chez DeepMind, j’ai entendu quelque part que vous aviez mentionné que vos travaux sur le raisonnement représentaient une avenue prometteuse vers [00:33:00] l’AGI, si je ne me trompe pas. J’aimerais que vous puissiez… rapidement, enfin pas nécessairement rapidement, présenter ce que vous faites et nous en dire un peu plus. Hum-hum. Sur le raisonnement.

Oui. J’ai donné une conférence où j’ai mentionné que nos travaux récents sur les raisonneurs multitâches pourraient représenter une avenue prometteuse pour bâtir des composantes d’une AGI.

Je paraphrasais en partie ce que certaines personnes sur Reddit disaient de nos recherches. Mais évidemment, vous savez, si les travaux que nous réalisons finissent par devenir des composantes importantes d’une AGI, j’en serai très heureux, parce que je pense que le raisonnement est l’une des composantes avec lesquelles nos meilleurs systèmes actuels ont tendance à éprouver beaucoup de difficulté.

Il existe de nombreuses approches pour essayer de résoudre le problème. Mais nous n’avons pas réellement de conclusion, vous savez, sur la meilleure façon d’y arriver. Tant qu’on ne peut pas résoudre ce problème de façon plus robuste, on n’a rien qui ressemble à une AGI. C’est aussi simple que cela, n’est-ce pas ?

Hum-hum. Personnellement, [00:34:00] j’essaie donc de trouver des façons d’intégrer les connaissances qu’un ingénieur logiciel humain doit acquérir en développant ses compétences, par exemple dans un programme d’informatique théorique, et de voir comment nous pouvons concilier ces compétences avec ce qu’un réseau neuronal est capable d’apprendre. Si vous pensez à ce qu’un étudiant classique en informatique théorique doit apprendre à faire, vous trouverez de nombreux signes de comportements très utiles : la capacité de décomposer un problème en problèmes plus simples et de raisonner sur la complexité. Par exemple, quels problèmes peuvent être résolus ou traités dans un délai donné ?

Et à quel moment vaut-il mieux dire : « Je suis désolé, je ne suis pas capable de résoudre ce problème avec les ressources à ma disposition », plutôt que d’essayer de donner avec confiance une réponse composée d’hallucinations, ce que nos meilleurs systèmes actuels ont tendance à faire. N’est-ce pas ? Cela implique donc, vous savez, tout un monde de [00:35:00] compréhension qu’il serait, selon moi, très utile de donner à nos modèles.

Et nos modèles ne possèdent pas actuellement ce type de compréhension. Nous faisons donc essentiellement de notre mieux pour la leur donner. Et, vous savez, si nous y arrivons, je serais surpris qu’une telle technologie ne se retrouve pas dans un système d’AGI du futur.

Pourriez-vous nous en dire un peu plus sur votre approche actuelle ou, par exemple, sur la publication la plus récente dont vous pouvez parler ?

Bien sûr, bien sûr. Le domaine sur lequel nous travaillons est appelé, en bref, NAR, pour Neural Algorithmic Reasoning, ou raisonnement algorithmique neuronal. L’une des façons dont nous essayons d’intégrer ces connaissances consiste à demander à un réseau neuronal d’imiter les étapes individuelles d’un algorithme. Honnêtement, ces travaux ont commencé comme une expérience ludique, parce que, vous savez, c’était simplement quelque chose que je devais souvent faire à l’époque où je participais à des concours de programmation.

Je voulais simplement savoir dans quelle mesure les meilleurs réseaux neuronaux actuels pouvaient me remplacer dans cette [00:36:00] tâche. J’ai été assez surpris de constater que même pour les algorithmes les plus simples, ce n’était pas aussi facile qu’il y paraissait. Plus précisément, certaines astuces permettaient aux réseaux neuronaux de bien s’ajuster à vos données d’entraînement et de validation, avec un résultat proche de 100 %.

Mais vous éprouviez tout de même beaucoup de difficulté lorsque les données de test étaient, disons, beaucoup plus grandes. C’est un problème important pour les systèmes de raisonnement. Un système de raisonnement digne de ce nom devrait fonctionner peu importe la taille des entrées qu’on lui fournit, n’est-ce pas ? Hum-hum. Il ne devrait pas s’effondrer comme par magie dès que votre tableau dépasse 15 éléments ou quelque chose du genre, n’est-ce pas ?

Et nous observons ces effondrements de façon assez brutale, même lorsqu’on s’éloigne légèrement de la distribution d’entraînement. Au cours des dernières années, nous avons donc consacré beaucoup de temps à réfléchir aux changements nécessaires dans les architectures de réseaux neuronaux pour les rendre plus robustes de cette façon précise. Tout cela repose sur le concept d’alignement algorithmique, introduit par des chercheurs du MIT en 2020. [00:37:00]

En gros, sans entrer dans les détails, ce concept est mathématiquement très bien défini. Il dit que vous devriez essayer de concevoir votre architecture pour qu’elle… s’aligne étroitement sur le type de calcul que vous voulez exécuter. C’est aussi simple que cela. N’est-ce pas ? Cela signifie que les Transformers, par exemple, sont actuellement une architecture de pointe très puissante.

Ils sont excellents lorsque vous voulez effectuer le type de calcul pris en charge par les Transformers, soit prendre beaucoup de points de données potentiellement dépourvus de sens et découvrir la meilleure façon de les combiner pour en tirer un sens. Et, vous savez, dans un texte ou une image, les composantes individuelles ont assez peu de sens, n’est-ce pas ? Un seul mot n’a pas de sens avant d’être combiné au reste de la phrase.

Un seul pixel n’a pas beaucoup de sens avant d’être combiné au reste d’une image. Un Transformer constitue donc un excellent biais inductif pour… ce type de choses. Mais si vos entités ont déjà une signification, par exemple des variables, et que vous voulez effectuer sur ces variables un calcul [00:38:00] non trivial, un Transformer pourrait soudainement bien ajuster la distribution.

Mais si vous lui demandez ensuite de faire la même chose sur une entrée quatre fois plus grande, vous découvrez qu’il n’a pas réellement appris la procédure voulue. Il a appris à exploiter la distribution que vous lui avez donnée, n’est-ce pas ? Voilà, en résumé, le sujet de nos recherches. Nous essayons de trouver des solutions architecturales aux limites des réseaux neuronaux dans certaines distributions de tâches, de données, et ainsi de suite.

C’est extrêmement intéressant. Pourriez-vous donner quelques types de données non pas pratiques, mais appliquées avec lesquels cela peut fonctionner ? Vous avez donné l’exemple des Transformers, mais dans quels cas cette autre architecture entre-t-elle en jeu ? Je peux vous donner quelques exemples concrets que nous avons publiés auparavant et qui montrent que cette idée architecturale peut réellement être utile.

En fait, je vais vous donner l’exemple le plus récent, que nous venons de publier cette année à l’ICLR comme article remarquable. Il s’intitule Dual Algorithmic Reasoning et porte [00:39:00] sur un problème neurologique très intéressant. Nous examinons des données d’imagerie du cerveau de souris, plus précisément des vaisseaux sanguins du cerveau de souris.

Nous cherchons à déterminer le type de ces vaisseaux sanguins : s’agit-il de veines, d’artères, de capillaires, et ainsi de suite ? Je ne suis pas un expert de l’anatomie des souris, n’est-ce pas ? Je ne connais donc pas nécessairement la meilleure façon de résoudre ce problème. Je comprends toutefois que la fonction principale des vaisseaux sanguins consiste à transporter le sang.

Si je disposais donc d’une façon d’analyser les propriétés d’écoulement de ce réseau, je serais peut-être mieux placé pour déterminer le type de ce vaisseau sanguin. Hum. Dans notre article, nous avons entraîné le modèle selon le principe de l’alignement algorithmique pour simuler les étapes individuelles d’un algorithme de flot maximal qui, comme son nom l’indique, calcule littéralement les propriétés d’écoulement [00:40:00] d’un réseau précis.

Nous avons ensuite pris ce modèle préentraîné et l’avons déployé dans un système de pointe d’apprentissage automatique sur graphes qui prédit les propriétés de ces vaisseaux sanguins. Rien qu’en faisant cela, nous avons amélioré l’état de l’art de l’époque d’environ 5 à 6 %. Mais ce qui est réellement intéressant, c’est que nous avons entraîné ce module algorithmique sur de très petits graphes, environ 16 nœuds, que nous avions générés synthétiquement afin d’exécuter les algorithmes de flot.

Les données du cerveau de souris contiennent 10 millions de nœuds. Nous avons donc entraîné le raisonneur sur un graphe de 16 nœuds, puis l’avons lancé dans un domaine 180 000 fois plus grand. Il a tout de même procuré un avantage représentationnel, n’est-ce pas ? Aucun ajustement d’hyperparamètres, aucune tentative de rapprocher les deux distributions.

Vous pouvez voir ici les principes à l’œuvre. Le simple fait de comprendre à quoi le calcul devrait ressembler, puis d’entraîner le modèle sur le bon type de problème avant de le déployer, suffisait déjà à offrir [00:41:00] un avantage représentationnel. J’imagine donc, vous savez, qu’avec beaucoup plus d’efforts, nous pourrions probablement repousser cette limite encore plus loin.

Mais ce n’est qu’un exemple d’une procédure que nous pensions pertinente et qui s’est effectivement révélée utile dans cet espace précis.

C’est vraiment génial. Oui. Je change un peu de sujet, mais vous m’avez aussi mentionné plus tôt avoir travaillé sur un algorithme, ou une partie d’un algorithme, qui améliorait les prédictions du temps de trajet et qui a réellement été implémenté dans Google Maps. C’est assez génial et complètement appliqué dans le monde réel. Pourriez-vous nous parler un peu plus de tout le processus de recherche, puis de la façon dont le résultat a été implémenté dans une véritable application comme Google Maps ?

Oui, c’est une excellente question. Pour moi, ce projet a représenté l’un des moments transformateurs de ma carrière, parce qu’il m’a permis de sortir [00:42:00] du monde de la recherche pure, où nous nous préoccupions seulement de produire la solution qui obtenait les meilleurs chiffres possible sur un benchmark précis.

Et, vous savez, nous jouions avec nos différents blocs Lego dans nos petits bacs à sable, en essayant de trouver la meilleure façon d’assembler ces composantes sans vraiment tenir compte de la façon dont le système serait utilisé dans le monde réel. N’est-ce pas ? Avec Google Maps, nous n’avions pas vraiment d’autre choix que de tenir compte de, de la forme des données du monde réel.

Vous pouvez imaginer la situation. Vous sortez votre téléphone et demandez à Google Maps : « Du point A au point B, quelle est la meilleure façon de me déplacer ? » Google Maps vous propose alors quelques itinéraires et des estimations du temps de trajet. Combien de minutes vous faudra-t-il pour aller du point A au point B ?

C’est ce nombre que notre système a été entraîné à prédire. Chaque fois que vous ouvrez Google Maps ou utilisez une application d’entreprise qui repose sur [00:43:00] Google Maps pour vous indiquer dans combien de temps votre repas arrivera ou, vous savez, dans combien de temps une voiture viendra vous chercher, vous interagissez avec un réseau neuronal de graphes que nous avons conçu chez Google DeepMind à cette fin.

En réfléchissant à ce problème, vous réalisez qu’on pourrait s’attendre à un simple problème de recherche de chemin, n’est-ce pas ? Vous avez la structure en graphe du réseau routier et connaissez approximativement la vitesse à laquelle on peut parcourir chaque partie de ce réseau. C’est excellent. Il suffit ensuite d’exécuter un algorithme du plus court chemin pour obtenir le temps de trajet, n’est-ce pas ?

Mais non. Le monde réel est beaucoup plus complexe. Il n’est pas statique. De nombreuses conditions changent dynamiquement sur le réseau routier et peuvent radicalement modifier les prédictions obtenues. Les conditions météorologiques, les barrages routiers, les feux de circulation et toutes sortes d’autres éléments changent dynamiquement la façon dont la circulation se déplace dans le réseau. Et les données elles-mêmes ne sont pas aussi propres qu’on pourrait le croire.

Plus précisément, Google Maps recueille ces signaux [00:44:00] à l’aide des téléphones. Vos téléphones se trouvent dans votre voiture et, à partir de leur position au fil du temps, le système déduit approximativement la vitesse de la circulation. Ces données ne sont pas seulement bruitées. Elles sont aussi vulnérables à des comportements adversariaux.

Vous avez peut-être entendu parler de cette fameuse attaque adversariale où une personne a placé cent téléphones dans un sac et marché dans la rue. Elle a ainsi convaincu Google Maps de détourner toute la circulation de cette rue, n’est-ce pas ? Le système croyait qu’un grand nombre de voitures lentes s’y trouvaient, n’est-ce pas ?

Dans une telle situation, vous savez, il n’est pas facile de formuler de belles hypothèses concrètes sur vos données. Les données ne sont réellement pas aussi propres. Et il faut aussi garder en tête que ce système doit régulièrement répondre à des milliards de requêtes et touche beaucoup d’utilisateurs. Il s’agit d’un produit très important.

Vous devez également comprendre que, dans ce contexte, les considérations habituelles en recherche seraient : « Donnez-moi le [00:45:00] modèle qui obtient la meilleure performance sur cette division statique du dataset entre entraînement et test », ce qui correspond au cadre classique de la plupart des articles de recherche en IA actuels. Mais les véritables exigences étaient très différentes. Il fallait trouver un modèle qui obtienne d’abord une bonne performance sur ce dataset, puis conserve cette performance malgré, vous savez, des circonstances qui changent dynamiquement, différentes heures de la journée, de possibles comportements adversariaux et d’autres facteurs semblables.

En même temps, le modèle devait aussi être très rapide… à servir, n’est-ce pas ? Il fallait pouvoir récupérer très rapidement ses résultats, construire autour de lui une bonne stratégie de mise en cache, et ainsi de suite, afin de servir efficacement les requêtes de milliards de personnes sans, vous savez, ralentir considérablement l’application Google Maps.

Après tout, il est plus important pour vous d’obtenir rapidement vos réponses que de savoir si elles se trompent d’une ou [00:46:00] deux minutes de plus ou de moins, n’est-ce pas ? Oui. Il s’agit donc d’une considération essentielle. C’est exactement ainsi que la collaboration avec Google Maps a changé ma vision de la recherche et de la façon de la rendre utile aux gens.

Ainsi, beaucoup de choses que nous jugeons très importantes en recherche sur l’IA pour plaire aux évaluateurs ne valent pratiquement rien lorsqu’on les intègre à un système réel. Vous savez, cela ne signifie pas nécessairement que nous devons changer notre façon de faire de la recherche. La recherche est structurée ainsi pour une bonne raison.

Elle essaie précisément d’aller au fond du fonctionnement des choses sans être limitée par la nécessité de pouvoir les intégrer ou les mettre à l’échelle dans un, vous savez, vaste système en aval. Mais je pense aussi que nous aurions tous avantage à comprendre comment nos travaux peuvent toucher de nombreuses personnes et quelles sont les bonnes façons de les présenter pour produire l’impact le plus positif possible.

Voilà peut-être la [00:47:00] principale leçon sur la façon dont la collaboration avec Google Maps a façonné ma vision personnelle de l’ensemble de la recherche en IA.

Diriez-vous que l’expérience était aussi plus amusante pour vous, ou qu’elle présentait des défis différents parce que vous appliquiez vos recherches ? Aimeriez-vous le faire plus souvent ?

Oui. C’était ma première véritable expérience avec un projet appliqué. Depuis, elle a changé ma façon d’aborder ces questions.

J’essaie toujours d’avoir au moins quelques projets appliqués que j’étudie en parallèle… de mes projets scientifiques. Nous avons aussi travaillé sur l’utilisation de l’IA en mathématiques, peu après la publication des premiers grands résultats de Google Maps. Alors oui. Encore aujourd’hui, j’aime toujours poursuivre une certaine quantité de travaux appliqués, pas seulement parce que je les trouve passionnants, mais aussi parce qu’ils me gardent les pieds sur terre.

Ils me permettent de toujours garder en tête qu’il existe un véritable [00:48:00] monde et qu’il y a parfois un écart entre les résultats que je dois montrer à la communauté de recherche et ceux que je devrais montrer pour réellement déployer quelque chose d’utile. Alors oui, c’est quelque chose que je fais encore activement aujourd’hui.

Et je suppose que cela influence aussi votre façon de faire de la recherche et de concevoir vos expériences. Vous gardez peut-être en tête que votre travail doit pouvoir être mis à l’échelle, mais connaissez aussi déjà les différents défis qui se présenteront au moment de transformer vos recherches actuelles en produit.

Oui. Cela aide parfois même lorsqu’on rédige seulement des articles de recherche fondamentale, parce qu’on réalise qu’il existe maintenant beaucoup d’autres façons de montrer l’importance d’un travail.

Oui. Autrefois, je pensais que si je n’établissais pas l’état de l’art sur un benchmark pertinent, le travail ne pouvait pas être publié. Mais il existe maintenant plusieurs avenues, n’est-ce pas ? Vous pouvez dire que vos recherches rivalisent avec l’état de l’art tout en étant [00:49:00] deux fois plus rapides ou en utilisant deux fois moins de mémoire, ou quelque chose du genre, n’est-ce pas ?

Cela, cela vous ouvre soudain les yeux sur de nombreuses autres façons dont un modèle peut être utile. Si, vous savez, vous lisez la majeure partie de la littérature comme nouveau doctorant, on pourrait vous faire croire que si votre méthode n’occupe pas toutes les entrées en caractères gras d’un tableau comme, vous savez, le numéro un, le travail ne peut pas être publié.

Mais en réalité, ce n’est pas le cas. Plusieurs des articles récents que j’ai publiés ne cherchaient pas l’état de l’art, pour ainsi dire. Ils essayaient seulement d’aller au fond d’une certaine approche d’un problème. Ils ont montré des avantages dans des domaines qui n’étaient pas nécessairement liés à la performance sur un benchmark.

Hum. Selon vous, quels sont les plus grands défis dans, enfin, vos recherches, mais aussi dans la recherche en IA par rapport à l’IA dans l’industrie ? S’agit-il des mêmes défis ou sont-ils très différents ? Quelle est la partie la plus difficile à résoudre des deux [00:50:00] côtés, en recherche et dans l’industrie ?

Oui. C’est une autre de ces questions auxquelles je peux répondre de mon propre point de vue, mais si vous la posez à cent personnes différentes, vous obtiendrez probablement cent réponses différentes.

Oui. C’est peut-être une mise en garde importante. Mais selon ce que j’observe actuellement, je pense qu’une grande partie de la recherche industrielle en IA est réellement limitée par l’ingénierie. Vous pouvez avoir la meilleure idée possible, mais si vous ne possédez pas le savoir-faire technique et le soutien nécessaires pour la mettre correctement à l’échelle, elle pourrait ne pas produire les gains et réaliser le potentiel qu’elle possède.

N’est-ce pas ? On peut l’observer à différentes échelles dans le développement de l’IA au fil des décennies. Beaucoup des idées que nous utilisons aujourd’hui en apprentissage automatique ne sont pas fondamentalement nouvelles. L’idée d’un réseau neuronal profond entraîné par rétropropagation était déjà bien connue des chercheurs dans les années quatre-vingt ou quatre-vingt-dix.

N’est-ce pas ? Quelle était donc la différence ? Aujourd’hui, nous avons [00:51:00] accès aux mégadonnées, à une grande puissance de calcul et au savoir-faire technique nécessaire pour mettre ces idées à l’échelle. Il s’agit donc parfois d’avoir la bonne ingénierie au bon moment et la bonne plateforme.

Je pense que cela devient un problème de plus en plus important à mesure que ces systèmes industriels grossissent. Voilà ma réponse pour l’industrie. Du côté de la recherche, la question a toujours été celle de la compréhension, qui est beaucoup plus difficile que d’apprendre à faire monter les chiffres d’un benchmark. Il existe de nombreuses micro-optimisations qui permettent à un modèle d’obtenir une meilleure performance sur un benchmark.

Mais comprendre réellement pourquoi il fait ce qu’il fait et comment l’améliorer en conséquence, ce sont généralement, vous savez, les questions vraiment importantes et probablement les plus difficiles. Comme vous l’avez dit vous-même, vous travaillez sur des applications potentielles… en médecine. Dans le domaine de la médecine, je dirais que ces réponses sont plus importantes que partout ailleurs, parce qu’un médecin [00:52:00] voudra réellement savoir…

Pourquoi un système prend une décision précise. Et prendre la mauvaise décision peut coûter très cher dans ces circonstances particulières.

Croyez-vous que les réseaux neuronaux de graphes représentent l’avenir, ou voyez-vous déjà certaines limites ?

Je pense que c’est assez intéressant, n’est-ce pas ? La façon dont nous avons défini le paradigme des réseaux neuronaux de graphes est formulée de manière à englober essentiellement tout l’apprentissage profond discret.

Si vous le voulez, vous pouvez simplement dire que n’importe quel modèle actuellement au sommet est un réseau neuronal de graphes. Ce n’est pas comme… oui, nous nous plaçons essentiellement dans une situation où nous ne pouvons pas vraiment échouer si nous voulons toujours prétendre être au sommet. Je ne pense pas que ce soit nécessairement la meilleure façon de voir les choses, mais c’est peut-être une bonne préface à cette réponse.

Je dirais qu’il existe certaines catégories de réseaux neuronaux de graphes qui fonctionnent extrêmement bien sur certains types de problèmes lorsqu’ils sont bien alignés avec eux. La [00:53:00] théorie de l’alignement algorithmique est probablement celle qui guide le plus ma réflexion aujourd’hui et qui explique cette idée, n’est-ce pas ?

Les Transformers, par exemple, sont des réseaux neuronaux de graphes entièrement connectés fondés sur l’attention. Ils sont très efficaces, à la fois du point de vue de l’alignement avec l’idée de trouver la combinaison optimale de points de données dépourvus de sens et de leur excellent alignement avec le matériel actuel.

N’est-ce pas ? Le matériel actuel est bien optimisé pour effectuer beaucoup de calculs denses et efficaces, ce qui correspond exactement au travail d’un Transformer, puisqu’il s’agit d’un réseau de graphes entièrement connecté. À bien des égards, le Transformer représente donc actuellement le meilleur compromis pour l’apprentissage automatique sur graphes. Par conséquent, le concept de réseau neuronal de graphes séparé de celui de Transformer reçoit moins d’attention. Les problèmes qui exigent réellement toute la puissance d’un échange de messages clairsemé et sans restriction ne reposent toutefois pas…

actuellement [00:54:00] sur des données particulièrement faciles à utiliser ni sur celles qui ont l’impact le plus direct sur les problèmes que vous voulez résoudre aussi rapidement ou à aussi grande échelle que possible, parce que notre matériel n’est pas bien optimisé pour de nombreuses communications clairsemées par messages.

Cela dit, ces architectures d’échange de messages réalisent des progrès très importants, surtout lorsqu’elles sont combinées à l’apprentissage géométrique profond. Beaucoup des impacts les plus fondamentaux de l’IA en biologie et en chimie proviennent de ce type de systèmes. Vous avez peut-être entendu récemment parler des travaux de l’équipe de Jonathan Stokes et de nombreux collaborateurs du MIT. Pour la deuxième fois, ils ont réussi à utiliser un réseau neuronal de graphes afin de découvrir un nouveau traitement antibiotique contre une souche de bactéries très difficile à combattre.

Ces systèmes peuvent donc certainement accomplir ce genre de choses. C’est simplement que les usages quotidiens pour lesquels les gens emploient principalement l’IA [00:55:00], vous savez, comme le traitement d’images ou du langage naturel, ont moins besoin de ce type d’architecture. Mais je parie que dans l’avenir, comme je l’ai dit, lorsque nous comprendrons de mieux en mieux les limites des systèmes actuels, nous commencerons probablement à réintégrer beaucoup d’idées tirées de méthodes d’apprentissage automatique sur graphes moins restreintes.

Et oui, je crois qu’il s’agira d’une méthode d’avenir. Mais nous devons d’abord comprendre comment mieux l’aligner et déterminer les situations où elle est réellement nécessaire par rapport aux excellents grands modèles fondamentaux dont nous disposons déjà. Et oui. Enfin, il pourrait aussi être intéressant de se demander si cet apprentissage profond discret est tout ce dont nous avons besoin.

Y aurait-il certains avantages à penser les choses de façon continue, là où les réseaux neuronaux de graphes deviennent un peu moins pertinents ? Mais oui, ce sont toutes des questions intéressantes auxquelles réfléchir à l’avenir.

Eh bien, je retourne au CVPR cette année. Il y a au CVPR un atelier sur les réseaux neuronaux de graphes qui dure une demi-journée ou une journée complète.

Et j’y assiste [00:56:00] toujours, même si je ne travaille pas avec des graphes. Mais j’aime vraiment les mathématiques derrière ces modèles. J’aime beaucoup ce sous-domaine, que je n’utilise même pas au quotidien pendant mon doctorat. Je pense tout de même que c’est un domaine très intéressant à explorer. J’adorerais l’implémenter, mais pour le moment, les U-Nets restent les meilleurs modèles pour mon application personnelle. Je continue donc à les utiliser.

Mais oui, c’est extrêmement intéressant. Et… avant de conclure le balado, je voulais simplement vous demander si vous aviez des projets à venir, des apparitions publiques ou autre chose que vous aimeriez partager avec le public.

Oui, merci de poser la question. J’aimerais peut-être profiter de ce moment pour mentionner un projet. Certains d’entre vous savent peut-être qu’avec trois autres coauteurs, Michael Bronstein, John Bruna et Tako Cohen, je travaille sur un livre qui catégorise les différentes approches de l’apprentissage géométrique profond et qui est déjà disponible sur arXiv sous forme de prototype.

Et [00:57:00] si vous allez sur geometricdeeplearning.com, vous trouverez de nombreuses autres ressources utiles, comme… des conférences, des blogues et des cours magistraux complets que nous avons donnés, entre autres. J’espère que ces ressources pourront être utiles par elles-mêmes. Mais nous travaillons aussi très fort, comme je l’ai dit, pour en faire un livre complet.

Nous nous attendons à pouvoir publier un livre sur le sujet avec MIT Press au cours des prochains mois. Gardez donc un œil sur ce projet. Pour ce qui est des apparitions publiques, j’ajouterais ceci à ceux d’entre vous qui veulent en apprendre davantage sur les réseaux neuronaux de graphes et qui aimeraient assister à un tutoriel présentant les concepts derrière ces modèles.

Si, pour une raison ou une autre, vous habitez à Montréal ou souhaitez visiter la ville, l’école d’été CIFAR sur l’apprentissage profond et l’apprentissage par renforcement aura lieu chez Mila à Montréal, en juillet, je crois. J’ai récemment été invité à y donner l’un des tutoriels, une [00:58:00] présentation sur les réseaux neuronaux de graphes.

Je serai donc sur place. Si vous voulez en apprendre plus ou simplement venir me saluer, ce sera une bonne occasion. Oui, c’est génial. Je pense que j’y serai moi aussi. Je dois confirmer si je peux m’organiser, mais oui, je serai également chez Mila pendant cette période. Je pensais donc assister à l’école d’été du CIFAR. C’est vraiment génial qu’elle ait lieu à Montréal cette fois. Je vous verrai donc là-bas. Merci pour votre temps et pour nous avoir fait découvrir le monde de la recherche scientifique chez DeepMind. Ce monde n’est pas obscur, mais il n’est certainement pas bien connu ni très visible. Beaucoup de gens connaissent DeepMind, sans vraiment savoir à quoi ressemble le travail dans cette entreprise.

Ce sont donc des informations extrêmement intéressantes et d’excellentes réflexions que vous avez partagées. Merci beaucoup pour votre temps.

Merci de m’avoir invité. J’ai vraiment aimé notre conversation.[00:59:00]

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Quels sujets l’entrevue avec Petar Veličković aborde-t-elle ?

Elle porte sur les réseaux neuronaux de graphes, le raisonnement algorithmique, la prédiction du temps de trajet dans Google Maps, la recherche et le travail chez DeepMind.

Pourquoi les graphes sont-ils utiles pour prédire le temps de trajet ?

Les réseaux routiers contiennent naturellement des segments connectés dont les conditions de circulation s’influencent mutuellement.

Que devrait pouvoir gérer un système de raisonnement lorsque la taille des entrées augmente ?

La procédure qu’il a apprise devrait se généraliser au-delà des tailles de graphes vues pendant l’entraînement plutôt que de dépendre de motifs fixes.

Pourquoi la course aux benchmarks peut-elle être trompeuse ?

De petites optimisations peuvent améliorer un score sans produire une compréhension plus profonde ni une performance robuste dans de nouvelles conditions.

Qu’est-ce qui donne de la valeur à la recherche appliquée ?

Elle relie une question scientifique claire à un véritable système dont les contraintes révèlent si l’idée se généralise réellement.

Qui devrait faire un doctorat en apprentissage automatique ?

Petar le recommande aux personnes qui veulent réellement diriger et exécuter un programme de recherche sur plusieurs années, et non comme exigence par défaut pour chaque poste en IA.

Comment peut-on bâtir un portfolio de recherche en IA sans doctorat ?

Lisez des articles scientifiques, reproduisez certains résultats, étudiez les limites déclarées, apportez une petite modification testable et publiez le travail afin que d’autres puissent l’évaluer.

Qu’est-ce que l’alignement algorithmique dans la conception d’un réseau neuronal ?

Il consiste à choisir une architecture dont le calcul correspond à la procédure que le système doit apprendre, ce qui peut améliorer la généralisation au-delà de la distribution d’entraînement.

Quelles contraintes de production ont influencé les travaux sur le temps de trajet dans Google Maps ?

Le modèle devait être rapide, permettre la mise en cache, résister aux signaux de circulation bruités et être pratique à servir à très grande échelle, et pas seulement précis sur un benchmark.