2021-01-26
Enorme révolution pour le Deep Learning ? Va-t-on pouvoir limiter le nombre d’architecture à connaître pour pouvoir mieux se concentrer sur leurs applications ? Ou faut-il, au contraire, rester méfiant face à de ces vagues issues du monde académique mais peu applicable concrètement ? Séries temporelles, modèles génératifs par Transformers? Parlons-en.
Cela fait plus d’un an que je cherchais le temps d’un nouvel article (on ne va pas de plaindre, ce temps précieux était consacré à nos clients), mais je profite d’une courte accalmie pour adresser donc le sujet des Transformers. Cette architecture, créée en 2017 via une publication peu lisible de Vaswani et al (https://arxiv.org/abs/1706.03762) et ensuite rendue compréhensible par la merveilleuse équipe de Harvard (https://nlp.seas.harvard.edu/2018/04/03/attention.html) a déjà révolutionné le traitement du langage. Que l’on parle des BERT ou OpenGPT, l’introduction du Transformer a totalement détruit le débat ancien entre réseaux convolutifs et récurrents (so 2017) en les remplaçant totalement.
Depuis ce moment se pose une question majeure dans le monde de la recherche : ces transformers peuvent-ils adresser d’autres sujets ? Classification d’image, gestion de série temporelle, modèle génératif ? Si oui, c’est une excellente nouvelle : l’état de l’art du Deep Learning regorge de raisons de perdre son temps, et une architecture unique est une excellente nouvelle. Mais tout ingénieur ayant pratiqué le domaine a appris aussi la prudence… Combien de travaux académiques en apparence merveilleux, mais finalement inapplicables face à un nouveau dataset ? La réponse n’a pas changé : beaucoup trop. Beaucoup trop dès lors que ce genre d’expérience a un coût et que votre client/supérieur est chatouilleux sur le fait de cramer cordialement de l’argent dans des gradients inutiles.
Nous vous proposons donc de faire un petit tour d’horizon, à date, de ces applications en conservant une approche prudente mais néanmoins opportuniste.
Il y a quelques mois sortait donc le Vision Transformer (https://arxiv.org/pdf/2010.11929.pdf), qui propose d’appliquer la logique du Transformer à la classification d’image. C’est un objectif logique, dans la mesure où la classification d’images est la première application connue en Deep Learning. C’est aussi un objectif intéressant, car cela fait presque dix ans que l’a communauté académique affine ses outils sur ce sujet, notamment nos réseaux convolutifs, allant jusqu’à jouer sur la forme des convolutions ou à chercher de nouvelles architectures via une Neural Architecture Search (comprendre : on ne sait pas optimiser ces trucs tout seuls, donc on va optimiser l’optimisation en convergeant sur différents réseaux de neurones. Vous venez de rajouter un zéro à votre budget GPU).
Le Vision Transformer utiliser quelques tricks pour son architecture. L’image est quadrillée en patchs, chaque patch est normalisé sur une dimension, et un mini MLP apprendra à convertir ces vecteurs en vecteurs d’entrée de l’architecture :
Le principal problème est exposé directement par les auteurs : sur des datasets qualifiés comme « de taille moyenne », comme Imagenet (qui contient tout de même plus d’un million d’images pour mille classes), les résultats sont inférieurs aux réseaux convolutifs. À ce stade, rions un peu des référentiels des équipes de Google : depuis 2014, je n’ai rencontré qu’exceptionnellement un cas où un dataset chez un client déjà approchait cette volumétrie. Les auteurs d’ailleurs rebondissent en expliquant que sur des datasets plus conséquents (entre 14 millions et 300 millions d’images), leur architecture devient compétitive, voire, supérieure aux résultats obtenus via des réseaux convolutifs.
À ce stade, on pourrait croire que le débat est clôt, mais ce serait sous-estimer un intérêt fort des Transformers qui déjà était présent pour le traitement du langage : le concept de pré-entraînement.
En effet, BERT ou ses amis (cédons au marketing, et anthropologisons nos algorithmes) introduisaient cette nouvelle méthode : effectuer un premier entraînement non supervisé très large, et ensuite spécialiser le modèle obtenu sur une tâche particulière. C’est exactement ce que proposent les auteurs, qui pré-entraînent un réseau sur un dataset immense (JFT-300M) pour ensuite l’adapter à d’autres datasets plus petits, pour le coup avec un coût de transfert beaucoup plus petit. Ci-dessous les résultats obtenus, et la comparaison d’entraînement avec les gigantesque Bit-L et Noisy-Student que l’on peut qualifier de monstres convolutifs :
Notons que les auteurs ont la gentillesse (bougez pas, on en reparle) de diffuser leurs modèles pré-entraînés : https://github.com/google-research/vision_transformer. Avertissement : le modèle est configuré pour fonctionner sur des TPUs, donc hors cloud de Google, point de salut. Et c’est une là une bonne introduction du problème principal… En effet, nous nous retrouvons donc dans la même situation que pour le langage. Nous pouvons utiliser ces outils très puissants, mais à moins d’avoir un budget conséquent, sommes obligés de reprendre les modèles pré-entraînés existant. Et nous pouvons lever quelques sourcils :
• On a récemment réussi à extraire des éléments de training set depuis les derniers modèles de langage, posant des questions fortes de protection de la vie privée. Si demain vous utilisez un tel modèle, le problème peut apparaître pour vous pour une utilisation industrielle. • Un modèle a des biais et des défauts par définition. Nous sommes juste, ici, aveugles sur ces biais. Ce constat n’est pas très original en Deep Learning, mais nous n’avons même plus la possibilité d’entraîner un modèle sur nos propres données depuis le début. • Surtout : nous nous déplaçons vers un nouveau paradigme où les architectures sont diffusées librement, mais les modèles pré-entraînés sont rares et coûteux, contrôlés par quelques acteurs limités (Google, OpenAI, etc.). Jusqu’ici, tout va bien. Demain, rien n’empêche un nouveau business model d’apparaître où l’emploi d’un tel modèle aura des conséquences économiques et juridiques. Cette démarche pourrait engager une perte de contrôle vis-à-vis des plus grands acteurs qui n’ont pas, naturellement, une démarche de bien public…
Addendum : sorti en janvier 2021, le tokens-to-token ViT (https://github.com/yitu-opensource/T2T-ViT) prétend adresser le sujet d’entraînement sur un dataset de taille faible. Pas encore assez de recul, mais à lire, donc, quitte à plus tard accepter une nouvelle conclusion. À noter qu’ils ont récemment remplacé le Transformer par le Performer, une dérivation de la première architecture plus efficace.
Force est de reconnaître que les transformers débordent de plus en plus dans les autres domaines. Si nous n’avons pas reproduit ces travaux en interne (pour l’instant), deux recherches récentes sont dignes d’intérêt et confirment que nous sommes face à une vague de fond.
Les séries temporelles sont un sujet dangereux en Deep Learning. Longtemps, les travaux les plus récents n’étaient pas compétitifs avec les bonnes vielles approches statistiques, jusqu’à l’arrivée du exponential smoothing (https://github.com/kdgutier/esrnn_torch) d’un chercheur chez Uber.
Le récent Informer (https://github.com/zhouhaoyi/Informer2020) propose une approche intéressante dédiée notamment à la gestion des séries longues. On retrouve une architecture encodeur/décodeur classique, avec un mécanisme d’attention spécifique ProbSparse diminuant fortement la complexité liée à la longueur des séquences. Autre point d’intérêt, l’usage d’un décodeur capable de générer une séquence à partir d’un unique élément, sans ce besoin de réintroduire en entrée du décodeur l’élément généré.
Autre sujet surprenant, les modèles génératifs se voient concernés. Récemment, Taming Transformers for High Resolution Image Synthesis(https://github.com/CompVis/taming-transformers) a présenté une nouvelle approche combinant le VQ-VAE (qui a révolutionné quelques sujets dont le Jukebox d’OpenAI) et les transformers, pour la génération d’images en haute résolution. La génération haute résolution est un sujet complexe qui a surtout été adressé par NVidia et ses StyleGans, les travaux présentés ici sont bluffants.