Apprentissage automatique
Bienvenue sur la page d'accueil de l'équipe Apprentissage Automatique (ML - Machine Learning) de la Fondation Wikimedia.
Machine Learning
L'apprentissage automatique à la Fondation Wikimedia
|
Notre équipe supervise le développement et la gestion des modèles d'apprentissage automatique pour les utilisateurs finaux, ainsi que l'infrastructure nécessaire à la conception, à l'entraînement et au déploiement de ces modèles.
Projets actuels
- Cartographie des modèles d'apprentissage automatique
- Projet Modernisation de l'apprentissage automatique
- Lift Wing - infrastructure fournissant un modèle d'apprentissage automatique redimensionnable sur Kubernetes et utilisant KServe.
Pour les projets archivés voir cette liste.
Contactez-nous
Vous avez une question, ou vous souhaitez discuter avec l'équipe ou notre communauté de bénévoles à propos de l'apprentissage automatique ? Voici les meilleures façons de nous rejoindre.
Discutez de l'apprentissage automatique et regardez l'équipe au travail en rejoignant notre canal de discussion public IRC #wikimedia-ml connecter sur irc.libera.chat
.
Vous avez une tâche particulière à discuter ou sur laquelle vous voulez travailler, rejoignez notre groupe public Phabricator . Voir notre tableau de bord
Quoi de neuf ?
-
- Nous continuons à intégrer le modèle du pays de l'article dans Liftwing. Le modèle du pays de l'article prédit pour quels pays un modèle particulier sera applicable, et c'est une extension du modèle du sujet de l'article que nous utilisons depuis des années.
- Nous essayons différentes approches pour construire vllm (un système à haut débit et à haute efficacité mémoire conçu pour servir les grands modèles de langage) et ROCm (le code qui permet au processeur de parler aux GPU AMD) avec Ubuntu. Cela fait partie des travaux rendant possible la production des LLMs sur Liftwing.
- Nous travaillons actuellement à la configuration des serveurs ML Lab. Ils sont pour l'entrainement des modèles.
- Mise à jour du modèle de déploiement de l'image rec-api. Le modèle du besoin de références a été déployé en production.
-
- Suivi du problème récurrent rapporté par l'équipe Contenu structuré : l'API MediaDetection peut atteindre le point d'accès de détection de logo via mwdebug1001.eqiad.wmnet et mwdebug2001.codfw.wmnet, mais ne peut pas sur k8s-mwdebug
- Ajout de la documentation sur la détection du logo aux documents du portail de l'API.
- Enquête sur des requêtes occasionnellement lentes à LiftWing lors de l'utilisation de certains modèles RevScoring
- Continuation des travaux restants sur le modèle de risque d'annulation avant enregistrement. Ce modèle est conçu pour fournir une prédiction de vandalisme avant qu'une modification est sauvegardée sur Wikipedia (et qui n'a donc pas d'identifiant de révision)
- Les travaux se poursuivent sur la mise à jour vers la 0.13
- Initialisation des paramètres d'installation pour les hôtes de GPU dans eqiad
-
- Nos excuses pour le retard dans les mises à jour.
-
- Les travaux se poursuivent sur le modèle de détection du logo. Nous avons fait un exemple de serveur de modèles de détection de logos qui traite des objets d'image base64 au lieu d'URL d'images et l'a envoyé à l'équipe de Contenu structuré pour leurs commentaires.
- Les travaux se poursuivent sur le serveur de modèle HuggingFace.
- Corrections de bogues et améliorations générales.
-
- Le travail continue sur le modèle de détection des logos. Les problèmes discutés cette semaine en équipe étaient de savoir si oui ou non l'image encodée devait être envoyée directement à LiftWing. En patallèle nous avons reçu l'URL de l'emplacement de l'image, ce qui permettrait ensuite à LiftWing d'y accéder ou de la télécharger. Ceci est important car cela conditionne la taille des données de REST, particulièrement avec les requêtes par lot.
- Nous travaillons toujours sur le problème de la GPU du serveur de modèles HuggingFace (par exemple il ne reconnaîtra pas notre GPU AMD). Il y a plusieurs possibilités pour savoir pourquoi, mais nous voulons que ce problème soit résolu avant de finaliser notre commande pour cette année fiscale.
- corrections de différents bogues et améliorations.
-
- Notre grande refactorisation d'Istio est en cours (diapositives) ! Cette refactorisation nous permettra d'éliminer beaucoup de logique liée au réseau des conteneurs de modèles individuels. Par exemple, si actuellement il y avait un changement sur le point d'accès de 'discovery.wmnet' (point d'accès interne de la WMF pour les API), nous devrions mettre à jour des centaines de conteneurs de modèles individuels et les redéployer. Cette refactorisation supprime complètement ce besoin.
- Nous avons déployé la pile de logiciels open source (ROCm) d'AMD à l'intérieur de chaque nœud k8s, mais nous soupçonnons que cela ait été inutile (et a causé des problèmes) parce que PyTorch a déjà une version de ROCm incluse dans la bibliothèque. Ce travail est priorisé parce que son achèvement est une exigence pour faire la grande commande de GPU que nous avons planifiée plus tard dans le trimestre.
- Nous préparons une correction qui permet au serveur de modèle de détection de logos d'accéder aux URL externes en utilisant les points d'accès internes k8s. C'est une partie des changements que nous avons dû apporter pour déployer le modèle.
- Nous continuons à tester l'image du serveur de modèles HuggingFace sur nos nœuds Lift Wing. Ce travail a été suspendu pendant une semaine pendant que l'ingénieur assistait au Hackathon de Wikipédia à Tallinn.
- Le travail du cache pour Lift Wing a été suspendu jusqu'à la fin de la refactorisation de Istio.
-
- Relecture et test de la grosse correction pour l'extension ORES. L'extension ORES fournit un moyen de voir la probabilité qu'une modification particulière soit annulée pour toutes les modifications sur la page des changements récents de nombreux wikis. Nouveau modèle de risque d'annulation dans l'extension afin que les bénévoles puissent utiliser ce nouveau modèle pour parer à un vandalisme potentiel.
- Nous faisons encore quelques ajustements pour le traitement des images pour le modèle de détection du logo, en limitant spécifiquement le traitement des photos aux domaines de confiance qui hébergent les images des commentaires Wikimedia.
- Nous avons une grande proposition de refactorisation en discussion (Istio est l'architecture de service pour k8s qui contrôle comment les microservices partagent les données entre eux). Mardi, l'équipe aura une réunion spéciale pour discuter de la réfactorisation proposée et décider de la voie à suivre. Je publierai les diapositives la semaine prochaine si les gens sont intéressés.
-
- Le modèle de détection du logo va être déplacé vers l'espace de noms expérimental. Ce sera un moment où le modèle pourra être testé dans un environnement de production pour s'assurer qu'il a les performances attendues. Ce travail est coordonné de très près avec l'équipe de contenu structuré pour vérifier qu'il répond à ses besoins.
- ML et le Airflow Pipeline Sprint de la recherche ont commencé cette semaine. Cet effort permet de voir comment utiliser les pipelines Airflow et le GPS sur le Hadoop Cluster existant, pour entraîner les modèles.
- Les travaux se poursuivent sur les grappes Cassandra qui feront partie de la solution de mise en cache.
- Les travaux se poursuivent sur l'image du serveur de modèles Hugging Face. C'est un effort sur lequel nous travaillons qui nous permettra d'héberger facilement de nombreux modèles disponibles de Hugging Face directement sur Lift Wing. C'est en fait un projet vraiment intéressant parce que c'est un moyen facile pour la communauté d'expérimenter les modèles qu'elle pourraient vouloir héberger sur Lift Wing et même proposer des modèles qu'elle souhaiterait avoir sur Lift Wing.
- Nous travaillons avec l'équipe des opérations des centres de données sur l'achat de nouvelles machines avec les GPUs. L'état actuel est que nous travaillons avec le fournisseur sur un problème concernant la disponibilité d'une configuration de serveur particulière et examinons certaines alternatives.
-
- Chris est en vacances. Pas de mise à jour cette semaine.
-
- Grande victoire cette semaine, : notre correction de l'image Docker de HuggingFace a été relue et approuvée. Cette image Docker nous permet de déployer les modèles HuggingFace rapidement sous LiftWing, de sorte à accélérer l'avancement du processus de développement dans son ensemble.
- Suite de l'intégration du prototype de détection de logos dans le serveur de modèles personnalisés KServe qui sera hébergé sous LiftWing
- Le travail sur l'image GPU multilingue avec risque d'annulation assure que le modèle RRML est compatible avec torch 2.x (c'est à dire que les prédictions sont correctes avec un modèle entrainé avec la 1.13)
-
- Nous travaillons toujours sur le modèle de détection du logo pour Wikimedia Commons. L'état actuel est que nous avons confirmé avec l'équipe produits travaillant sur la fonctionnalité que le modèle renvoie bien les résultats attendus. L'étape suivante consiste à examiner la validation des entrées et les limites de taille de l'image. La question ouverte que nous discutons avec l'équipe produits est de savoir si le redimensionnement des images doit être fait dans Lift Wing ou avant l'image ne soit envoyée à Lift Wing. Le redimensionnement est important car le modèle de détection du logo attend une image d'une taille donnée.
- Le travail et le casse-tête continuent avec l'image de base pytorch. Pour ceux qui suivent régulièrement, nous travaillons avec Service Ops pour créer une image docker de taille raisonnable contenant le support pytorch et ROCm. Si l'image de base est trop grande, cela devient un problème pour notre registre Docker et nous essayons d'être de bons administrateurs de cette ressource commune. C'est devenu plus difficile que nous l'avions pensé.
- Il y a encore du travail avec le cache de Lift Wing. Nous travaillons toujours sur la façon dont nous voulons que Lift Wing (en particulier Istio de KServe) discute avec les serveurs Cassandra.
- Une nouvelle version du modèle de risque d'annulation agnostique de la langue a été déployée pour la mise en réserve et passe actuellement les tests de charge.
- Davantage de travail sur l'intégration du serveur de modèle HuggingFace avec Lift Wing. Une fois que nous aurons débloqué ça, nous pourrons déployer la plupart des modèles sur HuggingFace rapidement.
-
- Nous avons créé une communauté de pratique Wikimedia pour ML cette semaine. L'objectif est de fournir un espace pour que chaque personne autour de la WMF qui travaille sur le côté technique de ML puisse partager ses idées et que nous apprenions ensemble. Actuellement, les participants viennent de plusieurs équipes dans la communauté de la pratique, y compris ML, la recherche, la traduction de contenu, et autres.
- Nous attendons encore que nos GPUs de test (un serveur avec deux MI210s) soient installées dans le centre de données. Dès que nous aurons vérifié que les tests sont satisfaisants pour notre infrastructure (ce qui devrait nécessiter que quelques jours) nous pourrons reprendre l'ordre des tâche.
- Je commence à travailler sur un livre blanc qui enquête sur tout le travail que Wikimedia fait concernant l'IA, cela inclut les modèles des hôtes de la WMF, le travail de plaidoyer effectué par la WMF, le travail des bénévoles, etc. Si vous avez des relations avec des personnes auxquelles je pourrais m'adresser, contactez-moi.
- Nous insistons réellement pour que le cache soit déployé. La raison est qu'avec le cache nous pouvons vraiment tirer pleinement parti des processeurs que nous avons actuellement en y enregistrant les prédictions. Le résultat final pour les utilisateurs est qu'une prédiction qui prendrait 500ms ne prendra qu'une fraction de ce temps. L'état actuel exact du travail est que notre SRE essaie de faire dialoguer Lift Wing avec les serveurs Cassandra.
- Nos tableaux de bord de SLO doivent être corrigés. Ils donnent des chiffres qui sont clairement incorrects. Notre équipe travaille avec les collaborateurs pour résoudre cela.
- Le travail continue sur le modèle de la détection du logo. La demande d'hébergement de ce modèle vient de l'équipe du Contenu structuré. L'objectif est de prédire les logos dans Wikimedia Commons parce que les logos représentent une part importante des fichiers qui reçoivent une demande de suppression.
- Nous continuons à essayer de charger le serveur de modèles HuggingFace sur Lift Wing. Une fois terminé, cela offrira le potentiel de charger un modèle hébergé sur HuggingFace dans Lift Wing rapidement et facilement, en ouvrant une énorme et nouvelle bibliothèque de modèles utilisable par tous.
-
- Nous travaillons sur le déploiement d'un modèle pour l'équipe du Contenu structuré qui détecte les téléversements d'images potentiellement protégées par le droit d'auteur sur Commons, en particulier les images avec logos. (T358676)
- Nous continuons à travailler sur l'hébergement du serveur de modèles HuggingFace sur Lift Wing. Cela rendrait très simple le déploiement des modèles HuggingFace.
- Nous avons déployé le cache Dragonfly sur Lift Wing pour aider avec les tailles d'images Docker.
- Nos bases de données Cassandra pour un système de mise en cache est en production. Il reste encore du travail à faire, mais c'est un bon début.
- Mises à jour générales et corrections de bogues.
-
- Désolé pour le retard d'un jour des mises à jour, Chris (I) a assisté à la réunion de la stratégie à New York et écrit cette mise à jour depuis l'avion pendant son retour.
- Un problème que nous avons est que le dépôt docker de WMF est configuré pour les images docker plus petites (~ 2 Go). Cependant, les images docker de l'équipe peuvent devenir assez grandes grâce au ROCm/Pytorch (~6-8 Go). Nous travaillons sur la façon de résoudre ce problème. Il existe un certain nombre de stratégies qui peuvent être utilisées, de l'optimisation des couches de l'image à la demande d'augmentation de la taille maximale de l'image docker.
- Pour résoudre partiellement ce problème, nous avons installé Dragonfly, qui est une couche de pair à pair entre notre grappe Kubernetes et le dépôt docker WMF. Nous allons aussi travailler sur d'autres améliorations.
- Nous continuons à travailler sur l'intégration du serveur de modèles préconstruit de HuggingFace dans Lift Wing. Cela signifie que nous pourrions déployer rapidement n'importe quel modèle sur HuggingFace avec toutes les optimisations que HuggingFace fournit. (T357986). Cela n'est pas encore fait, mais il serait sympa de l'avoir.
- Correction d'un bogue rapporté concernant le type de données incohérent pour les scores de qualité des articles sur ptwiki. L'erreur est due aux schémas mélangés des réponses retournées par ORES. (T358953)
- Nous avons fait notre demande de matériel du serveur pour l'exercice fiscal à venir. La version courte est : les GPU.
-
- L'ordre des GPU est en cours. Nous sommes en train de commander une série de serveurs pour l'entraînement et l'inférence. Chaque serveur aura deux GPU MI210 AMD. La plupart seront réservés pour l'inférence de modèle (en particulier, les modèles plus grands comme les LLM), mais nous utiliserons deux serveurs (4 GPU) pour créer un environnement d'entrainement des modèles. Cet environnement d'entraînement des modèles commencera très petit et délicat mais deviendra, espérons-le, un lieu de ré-entraînement automatisé des modèles et de normalisation des approches d'entrainement des modèles. Les prochaines étapes sont un seul serveur qui arrivera à notre centre de données; une fois qu'il aura été testé nous ferons la commande complète.
- Le travail continue sur le cache de Lift Wing. Nous envisageons dans le processus d'augmenter le nombre de GPUs. Cependant, pour optimiser notre utilisation des ressources, l'une des meilleures stratégies que nous puissions faire est de conduire l'inférence des modèles à l'aide de nos processeurs existants. Ce n'est pas toujours possible, par exemple dans les cas où l'ensemble des entrées de modèle possibles n'est plus un nombre fini. Cependant, dans les cas où les entrées possibles sont en nombre fini, nous pouvons mettre en cache les prédictions pour ces entrées et les servir aux utilisateurs rapidement en utilisant un minimum de calcul. C'est un système similaire à celui qui était initialement utilisé dans ORES.
- Les tests de Lift Wing continuent. Ils sont réalisés par un sous-traitant tiers et vérifient notre vulnérabilité aux attaques de codes malicieux.
- L'équipe de la marque Wikimedia est venue proposer quelques suggestions pour le nom des outils d'apprentissage automatique et des modèles. Nous espérons que notre nommage est plus systématique et moins subjectif.
- Chris a aidé à organiser et à mettre en place un événement à Bellagio (Italie) pour construire un agenda de recherche pour les chercheurs intéressés par Wikipedia. Cet agenda de recherche est disponible ici.