Je m'appelle Julien Simon, je suis Chief Evangelist de Hugging Face. Je vais faire de mon mieux pour parler en français, c'est assez rare, même si je suis basé en France. Je pense que c'est probablement le seul événement que je vais faire en France cette année, donc vous m'excuserez si je bafouille. C'est assez compliqué pour moi.
Dans cette présentation, je vais vous présenter rapidement ce que sont les transmissions et pourquoi vous avez bien fait de venir m'écouter aujourd'hui. Je vais dire deux mots de Hugging Face. Et puis ensuite, je vais vous montrer quelques démonstrations. On va appeler ça de l'état de l'art du deep learning avec les Transformers sur du traitement du langage naturel, de l'image, de l'audio. Et puis on verra le temps qui me reste.
Le point essentiel, le constat que nous faisons, que l'industrie fait et que de nombreux clients font, c'est que depuis quelques années, on constate une espèce de révolution du deep learning. Le deep learning est apparu dans le monde de l'entreprise aux alentours de 2014-2015, après des percées scientifiques aux alentours de 2010-2012. Et on a vu rapidement s'installer des gammes de modèles comme les CNN, les LSTM, les RNN, etc. On voit apparaître des générations de modèles, les CNN, les LSTM, les RNN, etc., qui s'avèrent être très efficaces sur les données non structurées, le deep learning pour les images, pour le texte, pour le son, etc.
En 2017, fin 2017, début 2018, on a vu apparaître une nouvelle génération de modèles, qui s'appelle les Transformers. Je pense que tout le monde dans la salle aura au moins entendu parler de BERT, qui a été publié par Google, et qui a en une nuit quasiment changé complètement la phase du deep learning, qui a pulvérisé tous les records, tous les benchmarks de traitement du langage naturel. Et assez rapidement, on a vu cette architecture de modèle évoluer vers toutes les tâches de traitement du langage naturel, mais aussi vers l'image, vers l'audio et vers d'autres types de tâches. Et depuis la sortie de BERT, pas une semaine ne passe sans qu'il y ait un nouveau modèle dans l'une de ces catégories et qui casse à nouveau de nouveaux records. Vraiment, c'est même difficile de suivre l'avancée de l'état de l'art sur ces modèles. Ça a été souligné dans les rapports qui sont mentionnés ici, le State of AI Report, la Data Science Survey de Kaggle, qui montre que non seulement les Transformers gagnent en popularité, mais ils gagnent en popularité au détriment des architectures existantes. Donc on voit vraiment cet effet ciseau où pratiquement la totalité des benchmarks aujourd'hui sont détenus par des modèles Transformers.
Ce qui est intéressant, c'est évidemment de voir ce qui se passe dans le vrai monde, pas juste dans les labos et sur les clusters de tests. On constate qu'en fait, les Transformers sont en production à une échelle massive depuis un moment maintenant. Google utilise les Transformers pour Google Search depuis plusieurs années. Notre ami Elon lui-même remplace son code legacy par des Transformers pour de la conduite autonome. Évidemment, tous les assistants vocaux, les Siri, les Echo et autres Google trucs utilisent des Transformers pour de la reconnaissance vocale, de la synthèse vocale, etc. Et je dirais que dans le monde des clients normaux, on voit par exemple Pinterest qui utilise des Transformers pour de la recommandation et JP Morgan qui utilise BERT et d'autres Transformers pour du traitement du langage naturel. De manière générale, je passe mes semaines à parler à des clients et on voit une adoption importante dans toutes les industries. Le NLP reste le cas d'usage dominant, mais de plus en plus, on voit aussi de l'audio, beaucoup de traitements de la voix, et de plus en plus de traitements d'image. Donc une adoption importante dans l'industrie.
Ce qui est intéressant, c'est de comprendre ce qui a changé, qu'est-ce qui s'est passé. Le deep learning tel qu'on le connaît depuis quelques années, c'est avant tout le retour d'une vieille techno ressuscitée grâce à la disponibilité de moyens de calcul relativement peu chers. La disponibilité d'énormes datasets, au prix d'un travail de préparation, de construction, de nettoyage, d'étiquetage significatif, 80% du travail d'un data scientist, c'est trouver la data, accéder à la data, nettoyer la data, comprendre ce qui manque dans la data, et puis éventuellement un jour entraîner un modèle. Donc voilà, un gros problème autour de la disponibilité et de la préparation de la donnée. Et comme on le sait, le deep learning a besoin de beaucoup de données. Évidemment, les incontournables GPU, qui, d'une certaine manière, en étant utilisables pour autre chose que des jeux 3D, ont permis de mettre à disposition des équipes ML un calcul des puissances de calcul massive, et c'est vraiment ça qui a rendu possible le retour au goût du jour des réseaux de neurones. Et puis enfin, gérer la combinaison de tout ça avec des outils relativement complexes. Ceux qui ont utilisé les premières versions de TensorFlow, de Torch, sans parler de Theano et autres, savent très bien qu'il faut un background très solide, il faut mettre les mains dans le cambouis jusqu'aux épaules, voire plus, et qu'on est à un niveau de complexité et un niveau de détail qui est extrêmement important, et que ça empêche finalement le développement, au sens noble du terme, de faire du deep learning et d'utiliser du deep learning dans son application.
Donc sans surprise, tout le monde a essayé. Comme dirait l'autre, il y en a qui ont essayé, ils ont eu des problèmes. 87% manifestement ont eu des problèmes. Il y a eu beaucoup, je pense qu'il continue à y avoir beaucoup de taux d'échec des projets de deep learning parce qu'on arrive à une certaine précision, on arrive à poquer, mais après, on n'arrive pas à passer le cap de la production, soit pour des raisons de précision, soit pour des raisons de performance, soit pour des raisons de complexité. Il y a mille raisons de ne pas y arriver. Et au final, le pourcentage de sociétés qui font vraiment du deep learning à l'échelle, eux-mêmes, je ne parle pas d'utiliser des services sur étagère chez AWS ou chez d'autres, vraiment de modèles construits, entraînés en propre, ce pourcentage-là reste assez faible. Donc notre pauvre requin a des déboires.
Donc l'objectif, un des objectifs de Hugging Face, c'est de remédier à tout ça. Alors moi j'appelle ça Deep Learning 2.0, on verra, c'est peut-être 1.1, l'avenir le dira. Le premier changement qui s'opère donc, c'est la standardisation des modèles autour de l'architecture Transformers. Là où on utilisait une collection de modèles de briquet de broc avec des architectures un peu différentes et puis customisées à la main parce que c'est drôle, etc., tout ça finalement est en train de disparaître, et on standardise sur cette architecture Transformers. Alors je suis désolé, ça mériterait une présentation en tant que telle, il y a un papier de recherche qui s'appelle "Attention is All You Need" qui est celui-là qu'il faut lire si vous voulez comprendre pourquoi les Transformers marchent bien. Donc en tout cas, le point important, c'est la standardisation autour de cette architecture, quelles que soient les use cases.
Le deuxième point important, c'est qu'on commence à assister à une libération autour de la data, dans le sens où finalement, il est de moins en moins nécessaire de préparer d'énormes datasets, puisqu'on va utiliser une technique qui s'appelle le transfer learning. Donc on va utiliser des modèles qui ont été préentraînés, qui sont sur étagère, qui dans certains cas vont être parfaitement capables de remplir la tâche à laquelle on les destine. Et si ce n'est pas le cas, on va pouvoir se contenter de les réentraîner juste un petit peu sur une petite quantité de données qu'on aura préparées, mais je dirais avec un facteur 10 ou 100 par rapport à ce que vous auriez dû préparer pour un entraînement initial. Donc on perd moins de temps à préparer les données, on a besoin de moins de données, dans certains cas on n'a pas besoin de données du tout, et en tout cas on peut évidemment itérer plus vite et entraîner plus vite, au lieu de passer son temps à faire de l'ETL et du requête SQL.
Le troisième point, c'est bien sûr que les GPU sont toujours là, mais depuis quelques années, on assiste à l'émergence de chips d'accélération aussi bien pour l'entraînement que pour la prédiction, qui permettent et donc qui ont été conçues spécifiquement pour ça, ce qui n'est pas vraiment le cas des GPU, et donc qui permet d'avoir un coût prix performance beaucoup plus intéressant que celui des GPU et d'accélérer encore le cycle d'innovation. Et enfin, ça c'est vraiment ce à quoi on s'attèle, on voit des outils qui sont de plus en plus accessibles aux développeurs, pas seulement aux experts. Oui, les experts peuvent toujours écrire leur code PyTorch bas niveau, il n'y a aucun problème avec ça, mais en partie grâce aux librairies Open Source de Hugging Face, avec du code Python simple qui ne nécessite pas d'expertise machine learning, on peut très facilement travailler avec ces modèles, les déployer, les entraîner soi-même, etc. Donc on a énormément abaissé le seuil de complexité.
Comme je l'ai mentionné, Hugging Face, c'est une société dont le siège est à New York, mais qui a des cofondateurs français. Et une grosse partie de l'équipe est basée à Paris. Le pilier de la société, c'est vraiment l'activité autour des librairies open source, la plus connue étant la librairie qui s'appelle Transformers, qui est l'un des projets les plus populaires de l'histoire de l'open source. Donc là, vous voyez une métrique qui permet de l'établir, c'est le nombre d'étoiles du projet sur GitHub. Voilà, j'espère que tout le monde dans la salle connaît GitHub. Sinon, allez voir sur github.com, vous allez découvrir deux, trois trucs. Donc, les Transformers, c'est la petite ligne bleue à gauche avec la petite fusée, et on constate de manière incroyable que depuis plusieurs années maintenant, ce projet non seulement est extrêmement populaire, on a plus de 70 000 étoiles maintenant sur GitHub, mais on grossit plus vite et de manière continue que des projets extraordinaires comme PyTorch, Spark, Mongo et même plus vite que Kubernetes, ce qui n'a pas cessé de me surprendre, étant donné la popularité de ce projet-là. Donc on constate vraiment une adoption massive des développeurs de la communauté open source.
Et donc ça, tout ça, ça se traduit par comment, finalement ? Ça se traduit par un site qu'on appelle le Hub, Hugging Face, Hugging Face.co, qu'on compare souvent au GitHub du machine learning. Tout comme vous allez sur GitHub pour récupérer des librairies, des outils ou publier les vôtres, eh bien vous allez sur Hugging Face pour récupérer des modèles et des datasets ou publier les vôtres. Donc à l'heure actuelle, on doit être proche des 73 000 modèles, le nombre change tous les jours, j'ai envie de dire toutes les minutes. Donc 73 000 modèles préentraînés sur étagère pour un ensemble de tâches qu'on va voir d'ici 5 minutes, mais vous les voyez là à gauche, donc des tâches de traitement du langage naturel, de traitement d'image, d'audio et d'autres joyeusetés. Quelques chiffres donc : 73 000 modèles, 10 000 datasets, tout ça en open source, on a environ 10 000 organisations qui contribuent, qui partagent des modèles sur le Hub. Ça va de Google, Facebook, Microsoft, à des équipes de recherche, des universités, et puis des développeurs, des individus qui entraînent des modèles intéressants et qui ont envie de les partager. On a plus de 100 000 utilisateurs, on a des jours même où c'est beaucoup plus que ça, et on a un million de downloads de modèles par jour. Là aussi, le chiffre, à mon avis, a encore évolué. Donc énormément d'adoptions, énormément de trafic, et on en est assez fiers.
Donc voilà un exemple, concrètement, basé sur la librairie Transformers. Ici, j'ai envie de savoir de quoi parle cette phrase. Donc il y a un extrait de Wikipédia, l'équation de Black Scholes. Et donc, en une ligne, je peux créer un classifieur sur la base d'un modèle préentraîné, comme vous le voyez par Facebook, en indiquant simplement le nom du modèle et le nom de la tâche que je souhaite utiliser, qui s'appelle la Zero Shot Classification. La classification de texte, tout le monde connaît ça. La Zero Shot classification va un cran plus loin dans le sens où elle me laisse spécifier les labels que j'ai envie de scorer sur cette phrase, donc je ne suis pas lié au label qui était présent dans le dataset d'entraînement. Donc ici, j'ai pris cinq labels un peu au pif : finance, science, business, stock market, research. Et donc en une ligne de code, je score ma phrase et je récupère le score et les produits des différents labels. Est-ce qu'il y a du code de machine learning là-dedans ? Non, évidemment. Est-ce qu'il y a du code compliqué ? Non. Même si vous ne développez pas en Python, vous avez compris ce qu'on fait ici. Et c'est ça qu'on essaie de faire. Ce qu'on essaie de faire, c'est de rendre accessibles ces modèles à l'état de l'art absolument à toutes les équipes, quel que soit leur niveau de compétence en machine learning.
Pour changer de modèle, on changerait le nom du modèle. C'est tout. C'est aussi simple que ça. Il n'y a pas de complexité particulière. Juste un mot sur le hardware. Ça me tient à cœur et je trouve que c'est une des avancées les plus importantes avant qu'on saute dans les démos. Comme je disais tout à l'heure, on voit une nouvelle génération de chips qui sont vraiment conçues à partir de zéro pour accélérer les jobs d'entraînement et les jobs de prédiction. Accélérer l'entraînement, évidemment, c'est essentiel, parce que si vous avez un entraînement qui dure, disons, 6 heures, grosso modo, vous n'allez pas réussir à entraîner deux fois dans votre journée de travail. Si vous accélérez ça par deux et que vous arrivez à entraîner en 3 heures ou en 2 heures, vous arrivez au sein de la même journée à itérer beaucoup plus vite, à tester votre modèle, à le déployer, à l'évaluer, à voir ce qui marche, ce qui ne marche pas, à réentraîner, etc. Donc on veut vraiment casser cet effet tunnel où on lance l'entraînement et puis on verra dans trois jours. Non, ça, ce n'est pas possible. Personne ne veut attendre trois jours. Déjà trois heures, c'est trop long.
Et évidemment, accélérer la prédiction, c'est essentiel puisque plus vous allez vite, plus vous prédisez vite, plus votre expérience utilisateur est réactive et puis généralement mieux vous utilisez votre infrastructure. Donc, on travaille de manière directe avec ces différentes sociétés, donc Graphcore, Habana, qui fait partie d'Intel pour le training, et puis on travaille avec Intel et ONNX évidemment pour accélérer l'inférence. Et tout ça fonctionne dans une librairie open source évidemment, qui s'appelle Optimum et que je vous encourage à regarder.
Si on veut récapituler le tableau de famille de Hugging Face avant de regarder les démos, j'ai essayé de mettre un peu tous les blocs dans l'ordre logique. Donc à droite, on a évidemment les datasets et les modèles, donc plus de 10 000 datasets, plus de 73 000 modèles téléchargeables sur le hub en une ligne de code. Ensuite, vous avez le choix d'entraîner où vous voulez. Nous, on fournit pas d'infrastructures d'entraînement, donc si vous voulez entraîner sur votre machine GPU, c'est très bien, si vous voulez entraîner sur le cloud, ça marche aussi, vous pouvez le faire avec Transformers, qui est la principale. On a une autre librairie qui s'appelle Accelerate, qui est réservée à un public plus averti qui a envie de faire du multi GPU, du multi TPU avec un niveau de contrôle assez fin. Évidemment, Optimum dont j'ai parlé. Et on a AutoTrain qui est un service zéro code, no code, AutoML qui vous permet de faire du NLP, de la classification d'image et des données tabulaires sans écrire la moindre ligne de code, juste en uploadant vos données, en cliquant deux ou trois fois. Spaces, c'est un produit qui va vous permettre de, on va en voir plusieurs tout à l'heure, qui vont vous permettre de mettre en valeur vos modèles, finalement d'illustrer le fonctionnement de vos modèles à l'intérieur d'une appli web, au lieu de montrer des notebooks Jupyter à votre directeur marketing ou à votre client externe, qui va à peu près rien y comprendre, et même sans doute en avoir peur. Vous pouvez très facilement avec Spaces construire une appli web et montrer vos modèles dans un contexte plus applicatif et plus métier. On va voir ça. Et puis enfin, quand il s'agit de déployer, vous pouvez déployer où vous voulez. Ça, c'est facile. On offre un service d'inférence qui s'appelle Inference API. On a son successeur qui est lancé après-demain, je crois. Voilà, donc gardez l'œil dessus. Et puis toujours l'accélération avec Optimum. Pour la partie cloud, on a un partenariat avec AWS sur SageMaker, on est intégré comme un framework au même titre que PyTorch, TensorFlow, vous amenez juste votre code et vous l'entraînez sur SageMaker. Et on a aussi un partenariat avec Microsoft pour déployer nos modèles sur Azure via Hugging Face Endpoints qui est sur la marketplace Azure. Voilà, c'est le tableau à l'instant T. Évidemment, il va changer prochainement.
Alors, je vous propose, avec le temps qui me reste, une dizaine de minutes, de faire quelques démos. Alors, je vais mettre mes lunettes, sinon on ne va pas y arriver. Hop. On va fermer tout ça. Voilà. J'espère qu'on voit toujours mon écran. Parfait.
Alors voilà le hub, donc 73 388 depuis 20 minutes. Donc ces modèles, vous pouvez les parcourir, vous pouvez choisir les différentes tâches, vous pouvez choisir les modèles qui vous intéressent. Vous voyez la popularité des modèles, ça c'est le nombre de downloads dans les 30 derniers jours. Donc si vous cherchez un modèle, par exemple, de classification d'image, vous les voyez, vous voyez que le Google Vision Transformer est manifestement le plus populaire du lot, donc pourquoi ne pas commencer avec celui-là ? Pour les tâches NLP, vous pouvez filtrer sur les langages, vous voyez qu'on en supporte quelques-uns. Vous pouvez filtrer sur les licences open source également. Donc assez vite finalement, vous allez pouvoir converger sur, parce qu'on me dit toujours 73 000 modèles, bon qu'est-ce que je prends ? Vous faites ce que je viens de faire, vous filtrez par tâche, vous filtrez par langage, vous filtrez par licence et puis vous allez trouver, et puis vous commencez par les 5 en haut de la liste et généralement vous n'êtes pas très loin du résultat.
Alors on va en prendre quelques-uns que j'ai préparés, histoire d'illustrer un peu les différentes tâches. Donc ça c'est un modèle de Microsoft, il s'appelle Layout LM, donc Layout Language Model, c'est la version 3. Et donc ça c'est un modèle qui a été entraîné pour comprendre la structure des documents. Donc il est capable, donc oublier l'OCR à la papa, où on scanne les documents et puis après on a un machin qui essaie de comprendre. Ça c'est un peu terminé. Donc on peut utiliser maintenant ces modèles directement. Et alors ce qui est sympa, c'est que vous allez me dire, oh, d'accord, j'ai rien compris à ce qu'il a dit là. Donc comment ça marche son modèle ? Ça marche que sur la page de chaque modèle, vous voyez la liste des fameux spaces qui utilisent ce modèle. Alors j'en ai pris un, voilà. Et donc qu'est-ce que c'est qu'un space ? Un space, c'est une petite appli web qui est codée avec Gradio ou Streamlit, qui sont deux frameworks web. Généralement en quelques dizaines de lignes de Python, vous avez fait votre affaire et vous pouvez ensuite donc aller à votre URL, vous poussez ce code là sur Hugging Face, vous allez à l'URL et vous pouvez tester. Alors on va prendre par exemple celle-là, donc c'est un peu petit mais c'est une note de frais, donc on va l'envoyer au modèle et on va voir ce que nous dit le modèle. Donc là tout ça est un peu lent parce que ça tourne sur CPU, on va essayer de l'ouvrir dans un autre onglet. Voilà, voilà, qu'est-ce qu'on voit ? On voit que chaque item a été annoté, reconnu et extrait avec une classe, donc price, menu, etc. Ça, j'ai rien entraîné, c'est un modèle qui existe, vous pouvez faire ce que je viens de faire vous-même, c'est directement disponible. Donc il n'y a pas besoin de se compliquer beaucoup l'existence. Et si on veut regarder le code vite fait, histoire de se convaincre qu'on n'a pas écrit 2000 lignes, on a écrit 97 lignes de Python pour faire ça, sachant qu'une grosse partie, c'est l'interface utilisateur. Donc voilà un exemple de modèle pré-entraîné, disponible. Merci Microsoft.
Alors en voilà un autre, celui-là il s'appelle Donut. Et Donut, il nous permet de poser des questions sur les documents. Alors on va regarder ça. J'ai préparé un autre Space. Donc on va prendre par exemple ce document-là, qui est un peu petit. Je vais voir si on peut l'ouvrir là. Voilà ce document. Donc par exemple, j'ai envie de poser des questions sur ce document, donc j'ai envie de savoir qui est Lee Waller, je vais le demander à mon modèle. When is the coffee break, ça aurait marché aussi. Donc là, le modèle va charger ce document, le processe, et puis devrait répondre à ma question. Voilà, une fois de plus, ça prend 12 secondes parce qu'on n'a pas cherché particulièrement à optimiser le temps de déploiement. Voilà, donc Lee Waller, il est le vice-président de TRRF. OK ? Modèle sur étagère, utilisable en 57 lignes de code. OK ? Voilà. On continue ?
Alors des images, on a vu que le Google Vision Transformer était le plus populaire pour la classification d'images, donc très bien. Alors si on essaie de faire quelque chose avec ce modèle, on voit qu'on a plein de Spaces qui ont construit des petites applications. J'ai choisi celle-là qui est amusante. Alors celle-là, elle combine en fait le Vision Transformer, donc qui va faire la classification d'images. Donc on lui montre une image et puis va vous dire ce qu'il y a dedans avec des labels. Avec GPT-2, vous connaissez sûrement, c'est un modèle de génération de texte. Donc on lui passe les labels qui ont été détectés dans l'image et puis on espère que GPT-2 fournisse une description correcte. Alors évidemment, on a des exemples ici, voilà. Ok, donc là on a deux exemples, trois exemples, quatre exemples. On va essayer peut-être une image à moi, voilà. OK, on va voir ce qu'il nous dit. On peut toujours avoir des surprises. « A man is riding a dirt bike down a dirt road », ce qui est pas mal. Voilà, donc il a détecté trois entités. Il y a un homme, une moto et un chemin, on va dire, un chemin dans le désert. Bon, et GPT-2, avec ça, a construit une phrase. OK ? Voilà, deux modèles pré-entraînés. OK ? 34 lignes de code. D'accord, et vous voyez qu'une partie, c'est quand même, il y a une grande partie qui est juste chargée le modèle, enfin on fait rien de spécial. Allez, un dernier pour la route.
Ça c'est un super modèle, j'adore ce modèle de Facebook, c'est un modèle de speech to text avec de la traduction intégrée. Donc ça veut dire que je peux parler dans l'une de ces 21 langues et récupérer à la fin une phrase en anglais. Alors, histoire de s'amuser, j'ai construit moi-même un space avec ça, où j'ai pris tous les rapports annuels de 2020 des compagnies du S&P 500, je les ai indexés, j'ai indexé chaque phrase de ce corpus, et en combinant deux modèles, donc un modèle de speech-to-text et de traduction et un modèle de recherche sémantique. Donc je suis capable de poser des questions par exemple en français, qui vont être automatiquement converties en une chaîne de caractère anglais et d'utiliser cette chaîne de caractère pour faire une recherche sémantique sur mon corpus. Une fois de plus, je n'ai rien d'entraîné, ce sont des modèles sur étagère. Alors on va essayer ça. Qui est le CFO de GAP ? Ok. Donc là ça va passer à travers mon modèle de speech-to-text, être traduit. Voilà, désolé j'ai un petit problème d'affichage mais si je dézoome, voilà. On voit la réponse, on voit que les trois phrases qui scorent le plus sur cette question, c'est en fait le document, le rapport annuel de GAP, et donc j'ai les phrases exactes et j'ai un score mais qui est à droite et que vous ne voyez pas. Voilà, donc là ça c'est deux modèles et 114 lignes de code, sachant que j'ai mis plein d'exemples et qu'il n'y a vraiment pas beaucoup de code là-dedans. Donc voilà, voilà ce que je voulais vraiment vous montrer. Vous voyez, on n'a pas parlé d'entraînement aujourd'hui, on pourra faire ça peut-être une autre fois. Mais la puissance de cette approche-là, je vais essayer de récupérer ma fenêtre... Qui a disparu. Hop, voilà. La puissance de cette approche sur les modèles préentraînés. Vous voyez qu'en quelques heures de travail, à peine, moi je dis toujours, quand je fais ces présentations-là à des clients, je dis, voilà, vous pouvez avoir votre meeting avec vos execs le lundi matin, et vous pouvez être confiant que le lundi d'après, vous arrivez avec une démo qui marche, et probablement la démo vous l'aurez mercredi. Donc la rapidité de POC, d'expérimentation et de découverte du problème est x10, x20, x50 par rapport aux approches traditionnelles. Et donc ça, ça vous permet de retourner vers vos stakeholders et de leur dire voilà c'est ça que vous vouliez ? Oui, non, et de réitérer facilement sans passer six mois à labelliser des données ou à même essayer de savoir dans quelle base elles sont contenues. Et ça ne vous empêche pas de faire ce travail-là en parallèle, mais vous pouvez avancer à la fois sur l'exploration du problème, le POC, etc. Et sur, ok, maintenant qu'on a trouvé le modèle, maintenant qu'on a compris la tâche, comment est-ce qu'on va arriver à plus de 90% de précision ? Et combien de données il va falloir préparer pour ça ?
Donc si on résume, plus je découvre moi ces sujets et plus je me rends compte que comme d'habitude, c'est compliqué parce qu'on aime bien compliquer les choses. Ça a sans doute la nature humaine. Donc il n'y a pas de raison de faire ça. Il faut vraiment qu'on se concentre sur les bonnes choses. Et de mon point de vue, les bonnes choses, c'est quel est le problème qu'on essaie de résoudre ? Quels sont les KPIs qui vont indiquer qu'on a progressé et qu'on réussit ? Utilisez à fond les modèles préentraînés et le transfert learning tout au long du projet parce que vous voyez à quelle vitesse on avance et finalement on écrit très peu de code. Je prêche, ça fait ça, ça fait 10 ans que je le dis mais je vais continuer et vous allez continuer à ne pas m'écouter mais c'est pas grave. Ne réinventez pas les outils, ne réinventez pas les plateformes machine learning, ne réinventez l'infrastructure. Donc si vous avez un devis sur votre bureau pour des outils ML, une plateforme ou des serveurs, réfléchissez deux minutes, il y a sûrement un meilleur moyen aujourd'hui, tout existe à peu près et c'est pas la peine de perdre du temps avec ça. Et puis surtout si vous travaillez dans des équipes de grandes équipes ou des équipes distribuées multinationales, etc., réfléchissez à la collaboration. Vous seriez horrifié de savoir combien de versions de BERT plus ou moins identiques il peut y avoir dans la multinationale type tout simplement parce que la main droite c'est pas ce que fait la main gauche et on perd un temps fou à réinventer des modèles et des datasets que l'équipe d'à côté ou du pays d'à côté avait déjà préparé. Et donc avec le Hub Hugging Face, on peut résoudre ce problème. Voilà, si vous voulez démarrer, si vous voulez en savoir plus, voilà les quelques ressources intéressantes. Si vous voulez rester en contact, vous avez tous mes contacts en haut à droite et j'en ai terminé. Donc merci beaucoup de m'avoir écouté, j'espère que j'ai pas trop bafouillé. Non mais Julien, je remercie, je vais vous rassurer, vous avez un excellent français. Oui, ça me rassure, merci à vous.
Alors on peut l'applaudir d'abord, je pense que ça va être la première étape. Je rappelle aux personnes qui nous suivent en ligne, en direct, que vous pouvez poser vos questions et qu'elles me sont transmises. Donc je les poserai à Julien. Il nous reste un petit quart d'heure pour échanger avec vous. Également, j'imagine que vous êtes ici et que vous avez laissé vos coordonnées. Oui, bien sûr. N'hésitez pas à me recontacter. Si vous avez des questions... Y a-t-il des questions ? Allons-y. Levez la main. Oui, une première. Bonjour. Bonjour. Je peux vous dire que je suis fan de vos vidéos sur YouTube. Grâce à vos vidéos, j'apprends tout ce qu'il faut sur AWS. Merci. Je vous ferai le chèque après. C'est gentil. Merci beaucoup. Donc du coup, si j'ai bien compris à travers la présentation, c'est que vous êtes passé d'AWS à Hugging Face maintenant. Et donc j'imagine dans le futur, vous allez faire beaucoup de vidéos sur YouTube, sur les Transformers. Oui, j'en fais quelques-unes. En ce moment, je voyage beaucoup. Ça y est, c'est reparti. Fini de glander à la maison. Donc j'ai un peu moins de temps pour faire du contenu. Mais oui, j'ai une liste amusante. Maintenant, il faut juste que j'arrive à m'asseoir et à les enregistrer. Merci beaucoup pour votre vidéo. C'est gentil. Merci d'avoir rappelé qu'on vous voit également sur YouTube et que vous partagez énormément. C'est une forme d'enrichissement qui est essentielle. Une autre question. Oui. Can I do it in English ? Sure, no worries. Thank you. So, transformers are kind of pretty new in a way, and machine learning is kind of ongoing research all the time. Is Hugging Face kind of married to transformers right now, or are you doing research on the new architectures that could be coming? It's a good question. Obviously, the rise of Hugging Face is parallel to the rise of transformers. But having said that, you will find non-transformer models on the hub. It's a little known fact, but we support, I think, 15 or 16 different libraries. So you can have scikit-learn models, you can have ESPNet models, etc. Obviously, all that stuff is based on Git repository, so you could push anything, but the hub will actually detect the type of the model and provide the inference widget and all the bells and whistles. So we're not married to transformers. I think for a long time, Hugging Face was, hey, the home of transformers, but more and more, we're trying to be the home of machine learning. We're doing a lot of work on Keras as well, Keras integration on the hub. So it's really, we think the fast iteration, the agility, the developer experience that you get with Transformers and the open source libraries, you should also get with other frameworks and libraries. A lot of the work is actually community driven and we encourage every single machine learning library to interface with the hub. We help them and we do some of the work ourselves. But if next month there's a new architecture that's even better than Transformers, of course we'll be the first to support it. Thank you. Thank you. Another question in the background? Yes, we will join you to pass.
Merci beaucoup pour la présentation. Une question sur comment on peut assurer la sécurité et la fiabilité des modèles qui sont déposés sur Internet. Écoutez, j'attends mes amis de la CNIL. J'ai fait quelques années chez Criteo, ils n'ont pas réussi à me jeter en prison, donc je les invite à venir discuter avec nous. Ce qui m'intéresse, c'est surtout la méthodologie. Bien sûr, je plaisantais, j'adore la CNIL en général. Et donc pour répondre à votre question, je pense qu'il y a plusieurs sujets. Le problème numéro un que les clients se posent, c'est ok, il y a des modèles sur étagère, maintenant moi si je les utilise, et en particulier si j'utilise les modèles génératifs comme GPT-2, etc., qu'est-ce qui me garantit que ce modèle ne va pas faire n'importe quoi ou des trucs incohérents. Donc, il y a plusieurs réponses là-dessus. Il y a déjà comprendre sur quoi le modèle a été entraîné. Donc, on le voyait sur le Hub. Quand vous allez visiter chacun des modèles sur le Hub, vous avez toute la description, on l'appelle la « model card », qui vous indique sur quelle date ces modèles ont été entraînés, est-ce que ces datasets sont connus pour avoir des problèmes de biais ou des problèmes particuliers. Donc déjà d'être le plus transparent possible sur comment ces modèles ont été entraînés. Ensuite, évidemment, on encourage les gens à faire des tests au maximum. Ce qui nous manque aujourd'hui, je pense, dans l'industrie, c'est des suites de tests sur étagère pour détecter des problèmes de biais ou des problèmes particuliers dans tel ou tel modèle. Bon, j'imagine que ça va venir. Après, d'un point de vue purement sécurité, tous ces modèles-là sont scannés, anti-virus, anti-malware, etc. Voilà. Alors, je sais bien qu'il y a des gens qui font beaucoup de bruit sur « oui, mais moi, je peux injecter n'importe quoi dans un modèle et prédire, etc. ». Bon, les clients à qui je parle ne sont pas terrorisés par ces attaques, tout ça reste un peu théorique. Donc je pense que ce qui est essentiel, c'est surtout de tester les modèles avec vos propres jeux de données et de vérifier que vous avez des résultats qui sont conformes à ce que le modèle doit faire, à l'état de l'art, etc. Tous ces modèles sont des modèles qui ont été publiés, les métriques dans la plupart des cas sont sur notre site aussi, vous pouvez les comparer avec les métriques des papiers de recherche, vous pouvez les reproduire. Donc voilà, il faut faire la même chose sur les modèles, comme quand vous récupérez une librairie sur GitHub. Bon, je suis pas sûr que vous lisiez chaque ligne de code, mais au moins vous passez certainement ça à travers vos scans de vulnérabilité, etc., avant de les mettre dans vos containers et compagnie. Il faut faire la même chose sur les modèles. Voilà, en tout cas, nous on essaie au maximum de documenter les modèles et de faire en sorte que les utilisateurs comprennent ce que sont ces modèles et sur quoi ils ont été entraînés. Autre question? Allez. Non? Si, regardez. Attendez, on vient vous voir. Voilà.
Bonjour, merci beaucoup pour la présentation et pour votre participation à Bloom aussi, qui est un projet assez incroyable. Juste pour avoir une portée vers le futur, vous pouvez nous dire un petit peu qu'est-ce qui est en piste, qu'est-ce qui se développe pour dépasser les Transformers? Je pense qu'on a encore beaucoup de travail. Je pense que sur le futur des Transformers, on peut être encore assez confiant. Et ce qui me fait dire ça, c'est que ce que je disais tout à l'heure, c'est que toutes les semaines, on voit un nouveau modèle sortir et améliorer le benchmark et améliorer l'état de l'art. D'ailleurs, pour quelqu'un comme moi, c'est un cauchemar. Ça veut dire que la démo de la semaine dernière n'est déjà plus à jour. Bon, ça va. Tant qu'elle n'est pas encore trop périmée, je peux la conserver. Mais moi, je ne vois pas de plateau. Même sur le NLP, qui est quand même la tâche historique des transformers depuis, on va dire, 4 ans, on voit encore des modèles continuer à améliorer les scores. Alors, c'est sûr que sur la classification de texte, à un moment, on aura fait le tour de la question, comme sur la classification d'images avec les CNN, enfin, la compétition sur ImageNet 2014-2015-2016. Bon, ils ont arrêté de la faire parce que c'était terminé. Enfin, quand on est à 1% d'erreur, c'est fini. Il n'y a plus rien à faire. Donc, je pense que sur le NLP, oui, on verra sans doute arriver une maturité de ces modèles-là. Mais en termes de précision, il y a d'autres sujets. Il y a la taille des modèles. Parce que c'est bien d'avoir des modèles hyper précis. Mais enfin, si le modèle ne fait que 3 gigas, comment vous faites pour le déployer et comment vous faites pour faire de l'inférence à 20 millisecondes ou 10 millisecondes? Donc, il y a vraiment encore plusieurs axes. Je pense qu'il y a encore beaucoup de progrès à faire sur les métriques et l'état de l'art. Il y a certainement tout à inventer encore sur l'optimisation et la perf. C'est pour ça qu'on fait beaucoup de travaux aussi avec Intel, Graphcore, etc., pour la partie vraiment ops. Voilà, après, comme je disais tout à l'heure, il est possible que dans trois mois, quelqu'un sorte une nouvelle architecture. D'ailleurs, on voit des architectures hybrides qui apparaissent, on voit des architectures mi-transformers, mi-convolutions. Il y a des choses vachement intéressantes qui se passent et qui sont encore meilleures que les deux réunis. Donc voilà, il faut continuer à suivre. Et nous, on suivra. On n'a pas de problème avec ça. Une fois de plus, on n'est pas mariés aux transformers. Merci. Une autre question? Oui?
Alors attendez, on vient par votre droite. Voilà. Bonjour, merci beaucoup pour cette présentation. La question que je voulais poser, c'était est-ce que dans les repos, dans le hub, est-ce que absolument tout est open source ou est-ce qu'il y a des modèles sous licence? Alors, normalement, tout est open source. Maintenant, si quelqu'un a fait une ânerie, et ça arrive de temps en temps, on reçoit un mail d'une entreprise qui nous dit « Bon, on s'excuse de vous embêter avec ça, mais enfin, on a un stagiaire qui a uploadé un modèle. Est-ce que vous pourriez l'effacer? » Alors oui, on le fait, évidemment. Mais en règle générale, non, tous les modèles sont open source et c'est la responsabilité de l'uploader de s'assurer qu'il attribue la bonne licence et c'est la responsabilité d'un loader de s'assurer que s'il utilise un modèle qui n'est pas destiné à l'utilisation commerciale, il ne l'utilise pas de manière commerciale. Comme sur GitHub. Donc en théorie, je pourrais utiliser n'importe quel modèle du hub dans un projet commercialisé sans avoir forcément à me poser de questions ou m'inquiéter légalement si la licence l'autorise. Oui, si c'est open source, ça devrait être possible, mais open source, c'est 50 licences différentes. Donc, c'est exactement la même discussion que du code sur GitHub. Si vous avez une licence GPL pur et dur, ça va être compliqué. Si vous avez des licences BSD et autres, c'est plus jouable. Donc, vous devez faire attention à la licence appliquée au modèle que vous utilisez. Exactement comme avec du code. Il n'y a vraiment pas de différence. Donc, rien de nouveau là-dessus, juste un petit filtre pour être sûr d'utiliser quelque chose d'exploitable. Tout à fait, absolument. Merci beaucoup. Avec plaisir. Alors, une dernière question éventuellement? Non? Oui, si, une dernière. Désolé pour ceux qui n'ont pas l'occasion d'intervenir.
Bonjour, merci pour la présentation. Je voulais savoir, j'ai vu que le code c'était principalement en Python et si moi demain dans une application web je voudrais justement développer une application web qui utilise les modèles, il faudrait que mon serveur soit en Python aussi? Alors, les librairies open source sont en Python. Après, moi, je vais être honnête, ça me va très bien. Donc, je ne cherche pas forcément autre chose. Ça ne pose pas de problème particulier dans le sens où si vous voulez intégrer un modèle avec une appli Java, par exemple, ou Node, ou autre. De toute façon, le modèle qu'on préconise, c'est de déployer le modèle sur une API de prédiction. Que ce soit la nôtre ou celle d'AWS ou celle que vous avez faite à la main, il n'y a aucun problème. Mais si c'est un modèle PyTorch, vous pouvez utiliser le modèle serveur, vous pouvez utiliser TorchServe. Si c'est un modèle TensorFlow, vous pouvez utiliser le serveur de TensorFlow. Si c'est un modèle ONNX, vous pouvez déployer sur ONNX. Donc, il n'y a pas de problème particulier là-dessus. On recommande fortement de séparer la prédiction du reste de l'application parce que ça ne fonctionne pas de la même façon. Un modèle, par exemple, un gros modèle NLP ou un gros modèle computer vision, vous allez vouloir le faire tourner sur GPU parce qu'il faut que ça aille vite. Donc, votre code web, il n'a pas besoin de tourner sur une machine GPU. Donc, il faut vraiment séparer les usages. Et une fois de plus, n'oubliez pas que ces modèles-là restent des modèles TensorFlow, des modèles PyTorch. Donc, toute la plomberie de déploiement qui peut exister autour de ces modèles, qu'elles soient chez nous ou chez PyTorch ou TensorFlow ou ailleurs, fonctionnera. Donc, dans un container quelconque, vous réglerez ça facilement. Surtout, n'écrivez pas de code pour le faire. Ok, merci. Avec plaisir. Merci. Merci, Julien. Merci encore. Merci beaucoup. Applaudissements.
Tags
TransformersDeep LearningHugging FaceNatural Language ProcessingOpen Source
Julien Simon is the Chief Evangelist at Arcee AI
, specializing in Small Language Models and enterprise AI solutions. Recognized as the #1 AI Evangelist globally by AI Magazine in 2021, he brings over 30 years of technology leadership experience to his role.
With 650+ speaking engagements worldwide and 350+ technical blog posts, Julien is a leading voice in practical AI implementation, cost-effective AI solutions, and the democratization of artificial intelligence. His expertise spans open-source AI, Small Language Models, enterprise AI strategy, and edge computing optimization.
Previously serving as Principal Evangelist at Amazon Web Services and Chief Evangelist at Hugging Face, Julien has helped thousands of organizations implement AI solutions that deliver real business value. He is the author of "Learn Amazon SageMaker," the first book ever published on AWS's flagship machine learning service.
Julien's mission is to make AI accessible, understandable, and controllable for enterprises through transparent, open-weights models that organizations can deploy, customize, and trust.