Dans leur grande majorité, les citoyens et citoyennes du monde ont placé l'année qui vient de s'écouler sous le signe des retrouvailles et du retour à la communauté humaine. En tout cas, c’est l’état d’esprit qui a régné sur les projets Open Source chez Meta, où contributeur·ices, utilisateur·ices et organisations se sont associé·es pour renforcer l’impact de l’Open Source.
Les projets que Meta a rendus publics répondent aux besoins et aux difficultés des développeurs et développeuses, de la mise en œuvre d’une IA nouvelle génération à la création d’expériences et d’applications web conviviales et innovantes, tandis que la communauté s’efforce de promouvoir le partage des technologies et le développement collaboratif basé sur celles-ci.
Cet article fait la synthèse des activités de Meta Open Source et des actions menées en 2022 par Meta pour soutenir la communauté Open Source. Il traite également des mises à jour d'outils et de code effectuées par Meta et ses ingénieur·es, y compris des développements majeurs pour PyTorch, le lancement de React 18 et l'introduction du client de contrôle de code source Sapling, entre autres.
Table des matières :
La diversité des points de vue et des contributions est une force de l’Open Source, et Meta recherche activement des opportunités de travailler avec des fondations existantes pour atteindre des objectifs communs. Meta a transféré plusieurs de ses projets vers des fondations l’an dernier, de manière à diffuser les ressources Open Source associées et à élargir leur gouvernance.
En septembre, le framework PyTorch pour l'IA a rejoint la fondation Linux, par la création d'une fondation PyTorch. Son conseil d’administration, qui inclut des leaders du secteur, s’est donné pour mission de coordonner les actions de sensibilisation et de marketing produit et commercial la concernant.
Le transfert de Jest vers la fondation OpenJS a commencé au cours de l’année écoulée. Ce projet Open Source fait partie des frameworks de test JavaScript les plus largement utilisés. La fondation a pour objectifs de rendre le projet plus accessible aux nouveaux utilisateurs et nouvelles utilisatrices, et de développer de nouvelles fonctionnalités.
Meta souhaite promouvoir encore davantage l’innovation dans les projets Open Source donnés à des fondations. En 2022, Meta a renforcé sa collaboration avec la fondation Presto, accédant ainsi au plus haut niveau d’adhésion à celle-ci. De plus, Meta a sponsorisé PrestoCon Day et PrestoCon, la première conférence en présentiel de la fondation.
Légende : les représentant·es des équipes de développement Meta et d’autres membres de l’équipe Meta Open Source à la conférence All Things Open en octobre dernier.
Les ingénieur·es et représentant·es des équipes de développement Meta ont recherché des opportunités de communication tout au long de l’année et ont beaucoup appris auprès des spécialistes et des organisations de la communauté tout en partageant leurs connaissances des projets Open Source lancés chez Meta.
Découvrez les contenus créés par les représentant·es des équipes de développement Meta :
Les représentant·es des équipes de développement et les membres de l’équipe Meta Open Source ont participé au 10e anniversaire de la conférence All Things Open pour Meta Open Source. Avant cet évènement, le directeur de l’ingénierie, Killian Murphy, avait partagé ses idées à propos des actions de Meta visant à éliminer certains freins aux contributions Open Source et à rendre l’Open Source accessible à toutes et tous. Meta s’engage à faire tout son possible pour accueillir toutes celles et tous ceux qui utilisent ses technologies devenues Open Source et qui souhaitent contribuer à celles-ci.
L’équipe Meta Open Source a également tenu un stand à la conférence All Things Open afin d’informer le public sur les projets de Meta et d’aller à la rencontre de développeurs et de développeuses qui utilisent ces technologies dans la recherche et l’industrie. Nos ingénieur·es et représentant·es des équipes de développement ont aussi pris la parole lors de cet évènement.
Découvrez leurs interventions à la conférence All Things Open 2022 :
Dans ses publications de blog, l’équipe Meta Linux Kernel présente ses travaux de recherche et développement en cours. L’une de ces publications explique comment rejoindre la communauté Linux. Onze membres de l’équipe Meta Kernel sont intervenus lors de la conférence Linux Plumbers 2022. Vous trouverez la liste complète de ces interventions sur le site web de l’évènement. L’équipe a également lancé la série Meet the Developers, où apparaissent plusieurs ingénieur·es ayant fait une présentation à la conférence, qui aborde différents sujets tels que la présentation de l’expérience utilisateur et des points d’ancrage réseau BPF dans Meta et l’application en direct de correctifs du noyau, entre autres.
L’équipe Meta Linux Kernel accompagne le développement du noyau de manière à améliorer son utilisation chez Meta et la dynamique de la communauté dans son ensemble. Elle collabore étroitement avec la communauté qui s’occupe du noyau Linux en amont et fait en sorte que les projets soient conçus pour être inclus en amont et dans le noyau même.
Sur le blog Meta Open Source, la rubrique dédiée aux témoignages de contributeur·ices présente le travail des bénéficiaires du programme MLH Fellowship Franklin Phan et Samyak Mehta, et le soutien renouvelé de Meta à ce programme en partenariat avec GitHub et Major League Hacking.
La série Meta Contributor’s Story (Témoignage de contributeur·ice) montre les réussites et les difficultés liés aux contributions Open Source et donne quelques recommandations pour s’impliquer dans la communauté. N’hésitez pas à découvrir ces publications de blog :
Le métavers aspire à devenir un espace où les personnes se rassemblent et interagissent de façons inédites et innovantes. Pour créer un métavers utile à toutes et à tous, il convient de le construire en s’appuyant sur une communauté solide et d’y incorporer des idées diverses.
Or, les communautés Open Source sont régies par la règle du « construire ensemble » et constituent par là même un point de départ idéal pour mener les débats importants qui façonneront le métavers, débats auxquels les représentant·es des équipes de développement de Meta participent. Navyata Bawa a continué la série intitulée Fostering Inclusivity in VR (Promouvoir l’inclusivité dans la VR) lors de la conférence internationale du réseau Women in Tech en juin, où elle a montré que les applications de VR peuvent être développées dans un souci d’accessibilité et d’inclusivité avec la multiplication des projets intégrant de la VR/l’AR.
Dans l’épisode Here’s what it’s like to develop VR at Meta (Voilà à quoi cela ressemble de développer de la VR chez Meta) du podcast de Stack Overflow, Cami Williams, responsable des représentant·es des équipes de développement, a expliqué comment Reality Labs peut apprendre, et faire le lien, avec la communauté React, et présenté quelques outils et ressources permettant de se lancer dans le développement pour la VR.
Dans le cadre de son engagement à développer sa présence au sein de la communauté et à fournir des outils de création dans l’écosystème de la VR, Meta a publié des exemples de code Quest sur GitHub. Pour promouvoir ces outils, Bawa a créé la série Building Your Multiplayer VR Experience (Créer votre expérience de VR multijoueurs) pour le SDK de la plateforme Oculus et un exemple de code SharedSpaces Unity, ainsi que le didacticiel Building Intuitive Interactions for VR (Créer des interactions intuitives pour la VR) pour le SDK Interaction et des exemples de code First Hand.
La publication de blog Summer of Open Source: Moving Virtual Reality Forward (L’été de l’Open Source pour faire avancer la VR) décrit des innovations Meta liées à l’espace parmi les plus récentes et présente une interview de l’ingénieur logiciel Eric Le Saux dans l’épisode 14 de The Diff. Consultez la playlist AR et VR qui propose des entretiens plus récents avec des développeurs et des développeuses Meta, ainsi que des didacticiels et des ressources dans cet espace.
2022 a été une grande année pour PyTorch, avec de nouveaux modèles Meta AI conçus aussi bien pour la recherche que pour la création. Voici comment Meta a fait avancer l’entraînement, l’optimisation et le déploiement des modèles d’IA.
Après son transfert à la fondation PyTorch (dépendante de la fondation Linux), PyTorch 2.0 a été lancé lors de la conférence dédiée qui s’est tenue en décembre à la Nouvelle-Orléans. Les chiffres présentés à cette occasion montrent à quel point PyTorch et sa communauté se sont développés en 2022 : 63 % des projets de recherche utilisant l’IA ont implémenté PyTorch et, selon les données de GitHub, le nombre de dépôts GitHub utilisant PyTorch a augmenté de 45 % par rapport à l’année précédente.
PyTorch 2.0 est le résultat de nombreuses années de recherche qui ont amélioré les performances de son compilateur, sans incidence sur l’expérience PyTorch que les utilisateurs et utilisatrices apprécient. Ces mises à jour incluent les accélérations à l’aide d’une simple ligne torch.compile, la rétrocompatibilité intégrale et un compilateur entièrement codé en Python.
Découvrez les autres contenus de 2022 relatifs à PyTorch créés par les contributeur·ices et les représentant·es des équipes de développement Meta :
Playlist de vidéos : Série de séances de questions/réponses en direct sur PyTorch 2.0
Didacticiels vidéo : Entraînement parallèle de données distribuées dans PyTorch
Publication de blog : Créer une IA plus efficace avec PyTorch
Les frameworks d’entraînement et d’optimisation permettent de créer des modèles d’IA capables d’accomplir des tâches concrètes qui sont complémentaires des compétences humaines. Cette réciprocité est mise en évidence dans le domaine de la traduction, où les modèles d’IA peuvent apprendre des centaines de langues, y compris celles que très peu de gens parlent. En 2022, Meta AI a lancé le modèle d’IA No Language Left Behind qui traduit 200 langues différentes avec des résultats exceptionnels, accompagné d’un ensemble de données d’évaluation et du code Open Source associé. Ces initiatives Open Source peuvent contribuer à l’amélioration des modèles et permettre de traduire des documents critiques, sans mettre de côté les langues pour lesquelles les ressources sont rares.
Le projet Open Source CICERO de Meta est le premier agent d’IA qui égale les performances d’un être humain dans Diplomatie, un jeu de stratégie complexe basé sur le langage naturel.* C’est d’une intégration, associant un modèle linguistique à des algorithmes d’apprentissage de la planification et du renforcement, que CICERO tire sa capacité à raisonner et à définir des stratégies en fonction des motivations des joueurs, puis à utiliser le langage pour parvenir à des accords et ainsi atteindre des objectifs communs, former des alliances et coordonner des plans. Les domaines de l’IA et de l’Open Source ont connu de nombreux autres moments clés que nous n’aborderons pas ici. Vous trouverez d’autres articles traitant de ces sujets sur le blog de Meta AI.
Découvrez les autres avancées de Meta AI en 2022 :
Démocratiser l’accès aux modèles linguistiques de grande envergure avec OPT-175B
Data2vec 2.0 : apprentissage autosupervisé hautement efficace pour la vision, la voix et le texte
Entraînement significativement plus rapide des transformateurs de vision
* Tous les droits afférents à Diplomatie sont détenus par Hasbro Inc.
En plus de l’annonce du transfert progressif de Jest à la fondation OpenJS, Jest 29 a été lancé en août. Le projet a cumulé plus de 40 000 étoiles sur GitHub dans la deuxième moitié de cette année. Autre moment clé pour les univers web et mobile : le lancement de React 18, avec le soutien du groupe de travail React 18 public. Cette nouvelle version inclut des mises à jour pour le rendu simultané, ainsi que de nouvelles fonctionnalités et API prises en charge. Nous vous invitons à découvrir tout le travail d’actualisation accompli sur le site React Docs Beta pour cette nouvelle version, avec notamment la documentation sur les effets et la section Quick Start (Mise en route).
En septembre, les équipes React Technologies de Meta ont rejoint les principaux acteurs en matière de contribution et de maintenance de bibliothèques lors de l’évènement React Native Core Contributor Summit. Durant ce sommet, les débats ont porté sur les écosystèmes actuels et futurs de React Native et Metro, et les participants et participantes ont défini des plans d’action pour améliorer l’écosystème React Native.
Entre autres projets web et mobile Meta passés en Open Source, citons Js-flipper, un package NPM qui expose un client Flipper aux applications JavaScript et permet aux équipes de développement de créer facilement de nouveaux plugins Flipper ou de réutiliser des plugins Flipper existants. Mentionnons également MemLab, un outil de test de mémoire JavaScript qui automatise la détection des fuites de mémoire.
Enfin, les équipes de développement Meta ont partagé leurs points de vue sur le développement avec et pour les technologies web et mobiles Open Source. Une publication de blog a fait l’analyse d’un rapport de bug Hermes et montré comment ce rapport a conduit l’équipe concernée à programmer un exploit permettant d’exécuter la version de 1993 de Doom dans Hermes. Une autre publication a présenté une nouvelle webview basée sur Chromium qui améliore l’expérience utilisateur·ice du navigateur intégré dans l’application Facebook pour Android.
Découvrez la série Meet the Developers: Mobile Edition :
Interview de Pritesh Nandgaonkar
Interview de Vadims Savjolovs
Interview de Aleksandr Sergeev
Interview de Derick Zhang
Les équipes de développement Meta utilisent des outils Open Source que l’entreprise a créés pour soutenir son infrastructure. Ces outils sont généralement testés et améliorés dans le cadre du travail quotidien chez Meta et produisent des projets Open Source qui permettent de relever des défis uniques en termes d’échelle et de vitesse.
En 2022, l’équipe Sapling a présenté un nouveau client de contrôle du code source compatible avec Git. Conçu dans un souci de simplicité d’utilisation et d’évolutivité, Sapling est un système de contrôle du code source que les équipes de développement Meta affinent depuis plus de 10 ans et que nous publions pour inciter des développeurs et des développeuses à approfondir ce travail et pour leur montrer ce que pourrait être l’avenir des systèmes de contrôle du code source. En août a été lancé Docusaurus 2.0, un générateur de sites statiques performant qui, dans cette nouvelle version, exploite plus largement React et ne se limite plus à la création de sites web de documentation.
Parmi les autres mises à jour de projets, citons le nouveau détecteur d’interblocage pour Android, l’ajout des importations optimisées dans Cinder et un aperçu de l’éditeur OpenStreetMap nouvelle génération RapiD 2.0. Un autre projet, Hermit, a introduit un système d’exploitation déterministe pratique permettant aux équipes de développement de résoudre différents problèmes tels que les tests bancals et le contrôle des entrées implicites comme la planification des threads et la génération de nombres aléatoires, entre autres.
Une publication plus généraliste explique comment les outils de développement Meta, souvent Open Source, fonctionnent en synergie dans le cadre d’un processus de développement plus large. Cela inclut des projets tels que le système de build Buck, SuperConsole, EdenFS (un système de fichiers étroitement intégré avec Sapling) et le framework de test Jest, entre autres.
Découvrez d’autres articles et publications de 2022 à propos des outils de développement.
La bibliothèque C++ Open Source Velox a été annoncée en août 2022. Velox représente une évolution dans la réduction de la consommation d’énergie et l’amélioration des performances énergétiques des moteurs de données. Cette bibliothèque exploite l’exécution native et est intégrée dans de nombreux outils chez Meta sous la forme d’une couche de moteur d’exécution unifiée.
Velox permet de réduire significativement la maintenance du code et d’obtenir des performances 2 à 10 fois supérieures dans différents cas d’utilisation. Pour en apprendre davantage sur Velox, sa communauté en plein essor et sa refactorisation innovante de l’exécution des requêtes de données par les moteurs et les bases de données, lisez l’article intitulé Velox: Meta’s Unified Execution Engine (Velox, le moteur d’exécution unifiée de Meta) publié à l’occasion de VLDB 2022.
Au cours de l’année dernière seulement, le projet Open Source Presto a enregistré sur GitHub 21 mises en production, près de 2 000 nouvelles étoiles, 600 nouveaux forks et 152 nouveaux contributeurs ou nouvelles contributrices. La fondation Presto a organisé son premier évènement présentiel, PrestoCon, au Musée de l’Histoire de l’ordinateur à Mountain View en Californie. À cette occasion, Tim Meehan a fait une présentation en tant que président du comité de direction technique, et Philip Bell a annoncé les orientations de Presto pour l’année à venir.
En décembre, l’équipe RocksDB a repris ses rencontres présentielles annuelles au siège de Meta à Menlo Park où des ingénieur·es Meta et des collaborateur·ices externes ont pu discuter des cas d’utilisation, des dernières innovations et de leurs aspirations pour ce projet.
La sécurité et le matériel jouent un rôle important dans le travail des équipes de développement. Des outils de débug au matériel réseau, l’Open Source chez Meta permet de s’assurer que les systèmes et le code sont solides, sécurisés et fiables.
En début d’année, un témoignage de contributeur·ice présentait le travail réalisé sur Pysa, un outil Python d’analyse statique développé dans le cadre du projet Pyre-check. L’article explique que la formation de communautés Open Source saines a un impact direct sur la réussite de projets comme Pysa qui a permis de renforcer la sécurité du code.
Dans le domaine du matériel, PTP (Precision Time Protocol) a été déployé sur l’ensemble des réseaux et centres de données Meta. Cette technologie offre des niveaux inédits d’exactitude et de précision pour la synchronisation des horloges dans les systèmes distribués. Conjointement avec l’Open Compute Project, les architectures matérielles et logicielles conçues pour prendre en charge ce protocole ont été publiées en Open Source pour favoriser leur adoption dans le secteur.
En 2022, Meta a continué de publier des travaux en Open Source au sein de produits tels que WhatsApp et Messenger. Ainsi, Code Verify, publié en Open Source au mois de mars, est une extension de navigateur qui permet aux équipes de développement de protéger l’intégrité du code dans la version web de WhatsApp et dans Messenger en affichant des signaux visuels qui indiquent si le code d’une page web a été falsifié ou altéré.
Nous n’avons abordé ici que quelques-uns des projets Open Source de Meta qui en compte plus de 1 000 avec leurs mises à jour en 2022. Si vous souhaitez découvrir d’autres de ces projets Open Source, consultez le site web Meta Open Source et suivez-nous sur Facebook, Instagram, Twitter et LinkedIn. Nous tenons tout particulièrement à remercier les contributeur·ices de la communauté, les utilisateur·ices, les organisations et les partenaires qui collaborent avec Meta sur des projets Open Source.
Chez Meta, nous pensons que l’Open Source est un moteur d’innovation dans le monde. En partageant notre code, notre pile logicielle et même nos conceptions de matériel, nous espérons faire avancer le secteur tout en offrant aux particuliers et aux entreprises la chance d’utiliser nos solutions à grande échelle plus rapidement et de créer des produits remarquables.
Cette publication a été rédigée en collaboration avec les représentant·es des équipes de développement Dmitry Vinnik, Suraj Subramanian et Cami Williams.