Echos de la recherche #2
Suivi de la recherche, 21/04
Mais quelles sont les valeurs de la nouvelle génération ?
La recherche ne s’arrête jamais, surtout dans notre domaine chéri du Deep Learning. Le suivi de cette recherche étant une condition nécessaire (mais non suffisante) de qualité, nous nous devons de rester aux aguets et continuons de vous proposer une restitution sur les dernières semaines. Nous parlions la dernière fois de chatGPT (et du tintamare médiatico-technique qui l’accompagne). Nous proposons aujourd’hui deux sujets différents qui ont connu ces derniers temps des travaux très innovants : l’augmentation de donnée par modèles de diffusion, et le Segment Anything de MetaAI qui s’est très vite imposé comme une nouvelle référence.
Donnée synthétique, data augmentation & modèles de diffusion
Depuis le Stable Diffusion de Rombach et al en juin dernier, on ne peut qu’observer l’explosion de ces approches génératives qui ont, en quelques mois, fait quasiment disparaître nos bons vieux Generative Adversarial Networks du radar. Même NVIDIA, ancien promoteur des GANs (et auteur des StyleGANs) s’est converti à cette approche itérative.
Une forme d’application est apparue ces dernières semaines et semble particulièrement intéressante pour nous autres, humbles ingénieurs à la recherche de nouveaux outils. Je veux parler ici de l’utilisation de ces modèles pour enrichir un dataset, soit sur une approche de data augmentation, soit sur une approche de génération de données synthétiques. Deux travaux récents sont à considérer :
Effective Data Augmentation With Diffusion Models [https://arxiv.org/abs/2302.07944] de Trabucco et al est très intéressant en ceci qu’il propose une spécialisation de la data augmentation (visant à robustifier un modèle contre une variance simple) via des modèles de diffusion. Cette approche permet de générer depuis une image une nouvelle image où, potentiellement, le sujet principal ou le background sera modifié. La nouvelle image gardera le photo-réalisme propre à la diffusion, mais ajoutera une très forte variance bénéfique contre l’overfitting. Notons que les auteurs abordent en détail l’équilibre entre donnée synthétique et réelle, et qu’ils proposent notamment une approche d’object centric augmentation pouvant être très qualitative pour des problèmes de segmentation d’instance par exemple.
Un second travail, issu des équipes de Google Brain, est Synthetic Data from Diffusion Models Improves ImageNet Classification [https://arxiv.org/abs/2304.08466]. Dans cette approche, les auteurs arrivent à augmenter le score de classification sur le célèbre ImageNet vie la fine-tuning d’un modèle text-to-image de type ImageGen (le modèle de diffusion interne de Google). On pourrait sourire du gain observé (de 0.83 à 1.78 points de précision gagnés), mais rappelons que l’ImageNet étant un dataset académique très connu, tout a déjà été tenté pour augmenter le score du State of the art. Gagner un point relève donc déjà d’un exploit.
Pourquoi ces travaux nous intéressent-ils ? La donnée synthétique est déjà identifiée comme un élément important de toute approche Deep Learning. D’ordinaire, il est conseillé d’éviter les modèles génératifs comme les GANs qui sont surtout des “machines à biais” (on rappelle le problème du CycleGan qui hallucine des tumeurs en imagerie médicale), d’autant que depuis le travail d’OpenAI sur la Domain Randomization [https://arxiv.org/abs/1703.06907], on sait qu’on ne veut pas forcément la donnée la plus réaliste possible, mais plutôt une forte variance permettant de “noyer” la distribution cible en généralisant.
Une des contraintes d’un générateur de donnée synthétique est de pouvoir être parfaitement contrôlé afin de viser une variance particulière dans la donnée. Hors, les modèles de diffusion sont de plus en plus contrôlables (par exemple, via la version 1.1 du ControlNet récemment). Le photo-réalisme ajouté à la possibilité de contrôle donne un nouvel outil qui, s’il n’est pas recommandé pour tout problème, pourrait dans certains cas débloquer des déficits de données dans certains sujets. Nous travaillons donc à analyser les opportunités de cette nouvelle approche, afin de vous les proposer au plus vite.
Segment Anything (Anything)
MetaAI a encore frappé un très grand coup ces derniers temps en proposant un nouveau travail Segment Anything [https://ai.facebook.com/research/publications/segment-anything/], qui s’est très vite imposé comme un incontournable de la segmentation.
Au-delà de résultats impressionnants, le plus important est déjà que ce travail de MetaAI consistant en un modèle et un dataset est diffusé sous une licence Apache permettant une ré-utilisation sereine dans un cadre professionnel. Les auteurs, Kirillov et al, proposent ici le plus gros dataset de segmentation existant avec plus d’un milliard de masques sur plus de onze millions d’images. Considérant l’importance de datasets volumineux et de qualité, ce point est déjà en soi très important, permettant un pretraining plus efficace sur des sujets particuliers. Les auteurs proposent aussi un modèle qui, au-delà d’être état de l’art sur ce dataset et ses grands frères académiques, peut être utilisé d’une manière très intéressante.
Le modèle peut en effet être interrogé sur une image avec trois types de données complémentaires : un ou plusieurs points d’attention, une bounding box, ou un texte. Si ce dernier point est dans l’air du temps, le premier est très intéressant, car il permet directement de se projeter dans une mise en production du modèle, où un utilisateur requête le modèle en indiquant uniquement quelques localisations qui permettront de générer le masque de sortie. Ce type d’approche est toujours un peu plus intéressant que les approches globales end to end, car laissant la porte ouverte à une interaction itérative avec un utilisateur humain.
Notons aussi que le modèle peut être adapté sur du zero shot transfert, soit, une nouvelle problématique adressée sans entraînement particulier. Les auteurs expérimentent ainsi la détection de contours, la proposition d’objets “intéressants”, la segmentation d’instances ou la génération text to mask comme applications directes.
Dire que ce modèle a remué le monde académique est un euphémisme. En quelques semaines, plusieurs extensions sont apparues. Notons parmi elles :
- Inpaint Anything [https://arxiv.org/pdf/2304.06790v1.pdf] en application directe à de l’inpainting (re-créer un contenu au sein d’une image)
- SAMM (Segment Any Medical Model) [https://arxiv.org/pdf/2304.05622v1.pdf]: une adaptation (peut être un peu dangereuse) à l’imagerie médicale
- Can SAM Segment Anything? When SAM Meets Camouflaged Object Detection [https://arxiv.org/pdf/2304.04709v2.pdf] : une critique bienvenue (comme toute itération dans la recherche) sur les limites de SAM, notamment en cas d’occultations
SAM est en cours de test chez nous. S’il ne s’adaptera pas à tous les problèmes industriels (notamment sur des questions d’optimisation), il s’annonce en effet comme un nouvel outil fondamental en segmentation que nous pourrons vous proposer si cela est adéquat.
En vrac
Notons deux autres travaux récents dignes d’intérêt, mais quelque peu hors sujet par rapport aux thèmes exposés ci-dessus :
- DINOv2 [https://arxiv.org/pdf/2304.07193v1.pdf]: DINO était un modèle fondamental dans la famille contrastée (et critiquée) des Vision Transformers, tout lecteur suivant ce domaine ne pourra rater la nouvelle version de MetaAI
- A Method for Animating Children’s Drawings of the Human Figure [https://arxiv.org/pdf/2303.12741v2.pdf]. Encore MetaAI (promis, nous surveillons nos biais, mais MetaAI a récemment été très actif sur des travaux de qualité), cette fois ci sur l’animation automatique et charmante de dessins d’enfants. Parce que parfois, cela fait du bien de moins se prendre au sérieux 🙂