Économiser 732k€ par an en résolvant des captchas avec l’IA
@ MDG
Principales réalisations
- Construction d’une IA pouvant faire économiser 732k€ par an en automatisant la résolution de reCaptchas. Elle pouvait résoudre les challenges les plus fréquents avec une précision entre 87 et 96%.
- Construction et gestion d'une petite équipe pour monter en compétence dans un nouveau domaine tout en respectant un délai serré.
Client
Massive Data Guardian (MDG) était, au moment de notre collaboration, une startup en lancement basée au Luxembourg. Elle visait à lutter contre la diffusion illégale de films par des sites pirates.
Son “Minimum Viable Product” (MVP) devait être capable de fournir en direct les liens mis à disposition par les principaux sites pirates pour une liste de films donnée.
Enjeu
Les sites pirates utilisent des Captchas - ces petits défis permettant de prouver que l’utilisateur est humain - pour empêcher les robots de parcourir leurs pages et identifier les liens pirates.
Au moment du projet, en 2018, le type de Captcha le plus courant était le reCaptcha V2 (voir un exemple sur l’image).
Il existait des services permettant de faire résoudre ces challenges par des humains en temps réel, mais le tarif était trop élevé pour que le Business Model de la Startup soit viable en utilisant cette méthode.
Le fondateur de la startup m’a donc confié la responsabilité de monter une équipe pour développer un programme de Deep Learning (IA utilisant des réseaux de neurones) capable de résoudre ces reCaptchas.
Après avoir identifié deux collaborateurs pour m’aider, nous nous sommes mis d’accord pour travailler sur ce projet six mois, à côté de nos emplois, pour tester sa faisabilité.
Solution & Process
1.
Montée en compétence en Deep Learning
Aucun des membres de l’équipe n’avait de connaissances en Deep Learning. Nous avons dû nous répartir les tâches d'apprentissage afin d’accélérer le processus.
Nous avons utilisé, entre autres, les cours de Stanford sur les réseaux de neurones convolutifs (CNN) pour la reconnaissance visuelle.
2.
Choix et conception de la solution technique
Nous avons choisi d’utiliser Python avec Pytorch, bien qu’en 2018, cette solution n’était pas aussi développée que son principal concurrent, Tensorflow. Cette solution était décrite comme plus rapide à prendre en main, ce qui nous semblait une bonne option au regard du temps limité dont nous disposions.
Pour plus de précisions, nous avons construit un modèle de CNN pour chaque type de challenge de reCaptcha (un pour déterminer si une image est une voiture ou non, s’il s’agit d’une route ou non, …).
Pour obtenir le plus de résultats à partir d’un minimum d’efforts, nous avons commencé à travailler sur les challenges les plus fréquents (reconnaissance de voiture, routes, bus, devantures de magasin, …).
J’ai également déterminé l’architecture logicielle et l’interface pour permettre au module de communiquer avec le reste du programme sur lequel travaillait la startup.
3.
Développement d’un framework Python
À l’époque, je travaillais en tant que data engineer à industrialiser du code de machine learning en production.
Des trois collaborateurs, j’étais le plus à même de développer un framework Python permettant de simplifier l'entraînement et l’utilisation de modèles à partir de paramètres. Cela nous a permis de gagner beaucoup de temps, d’autant qu’aucun de nous n'avait codé en python avant ce projet.
4.
Construction du jeu de données et des modèles
Bien sûr, aucun jeu de données répondant à notre besoin n’existait.
Nous avons dû “scraper” les images depuis l’API des reCaptchas pour construire un jeu de données pour chaque challenge.
Nous avons ensuite dû catégoriser les images manuellement, ce qui représentait une tâche très chronophage et rébarbative.
Nous avons donc décidé de construire des jeux de données minimalistes, construire des modèles les utilisant, trier de nouvelles images en utilisant nos modèles et vérifier les résultats. Cela a grandement accéléré le processus de tri d’images et nous a permis d’améliorer nos modèles de manière itérative.
Nous avons ainsi labellisé plus de 60k images.
5.
Identification des meilleurs modèles et paramètres
Nous avons entraîné et testé différents modèles et paramètres au fur et à mesure que nos jeux de données se constituaient, afin de trouver le modèle le plus performant sur chaque challenge.
Nous avions une puissance de calcul et une quantité de mémoire vive limitée, ce qui nous a forcé à ne conserver que les modèles les plus optimisés en termes d’utilisation de ressources.
6.
Manager l’équipe
Motiver une équipe à travailler de manière continue sur un projet en parallèle de leur emploi sur six mois n’a pas été chose facile.
Pour maintenir l'engagement de tous, l'expérience devait permettre à chacun de ressortir grandi sur un aspect qui faisait sens pour lui.
J’ai donc sélectionné des personnes de confiance pour faire partie de l'équipe, et ai eu des conversations avec chacun pour comprendre leurs motivations profondes. J’ai ensuite réparti les tâches de manière à ce que chacun puisse y trouver son compte.
J'ai planifié l'ensemble du projet et ai suivi les progrès réalisés afin que l’équipe reste organisée et sente l’avancement du projet.
Résultats
Au bout des six mois, nous avons construit un logiciel capable de résoudre en temps réel les challenges les plus fréquents de reCaptchas au fur et à mesure que le logiciel de MDG les rencontrait.
Nous avons atteint une précision entre 87% et 96% pour les catégories d’images les plus fréquentes.
Nous avons également identifié des axes de progression pour permettre d’améliorer encore les résultats par la suite :
- simuler le comportement d’un navigateur utilisé par un humain et utiliser un pool tournant d’adresses IP pour utiliser la validation automatique des Captchas, sans challenge à résoudre, autant que possible.
- Utiliser des scores de certitude et ajouter plus d’images difficiles à catégoriser dans les bases d'entraînement du modèle
- Utiliser plusieurs modèles en parallèle pour voter pour la meilleure réponse
- Utiliser un matériel plus performant pour permettre d’utiliser des modèles plus performants
En résolvant ces captchas avec notre programme plutôt qu’en faisant appel à un service de résolution, MDG pouvait gagner un potentiel d’économies de 732k€ par an, prix qu'aurait coûté le traitement par des entreprises externes de la résolution des 800k reCaptchas journaliers nécessaires au fonctionnement du programme.
Il aurait également été possible de vendre la solution à ces entreprises de labellisation de reCaptchas, pour leur permettre d'accélérer le traitement par des humains, tout en bénéficiant de leur immense base de challenges résolus.
Méthodes et outils :
Deep Learning, Réseaux de neurones convolutifs (Convolutional Neural Network / CNN), ResNet, GoogLeNet, Python, Pytorch
Vous souhaitez échanger sur vos problématiques ou collaborer ?