
À la veille de la naissance de Transformer : pourquoi huit chercheurs de Google ont-ils osé abandonner complètement les réseaux de neurones récurrents ?
TechFlow SélectionTechFlow Sélection

À la veille de la naissance de Transformer : pourquoi huit chercheurs de Google ont-ils osé abandonner complètement les réseaux de neurones récurrents ?
Jetez la béquille, ne gardez que l'attention.
Auteur : Robonaissance
Traduction : TechFlow
Note de la rédaction TechFlow : Avant 2017, tout le monde pensait que les réseaux de neurones récurrents étaient indispensables pour la traduction automatique, et que le mécanisme d'attention n'était qu'un outil auxiliaire. Huit chercheurs de Google ont misé sur une idée radicale : jeter les béquilles et ne garder que l'attention. Le fondement théorique de ce pari audacieux est en réalité une phrase écrite par William James dans *Les Principes de la psychologie* en 1890.
En 1985, Jeffrey Moran et Robert Desimone ont inséré une microélectrode dans le cortex visuel d'un macaque, puis ont attendu.
Ce singe avait été entraîné à faire une chose simple et étrange. Deux stimuli apparaissaient dans le champ récepteur d'un seul neurone, l'un situé à l'endroit où l'animal était invité à prêter attention, l'autre à l'endroit où il était instructed d'ignorer. Cette cellule pouvait voir les deux. La question était de savoir si cette cellule s'en souciait.
Elle s'en souciait beaucoup. Lorsque le singe prêtait attention à l'un des deux stimuli, la réponse des neurones de la zone V4 était à peu près comme si l'autre stimulus n'existait pas du tout. La réponse aux objets non attendus, pour citer les auteurs, était significativement réduite. Les cellules du cortex strié de la phase précédente ne présentaient absolument pas ce comportement. L'attention n'est pas une métaphore de ce à quoi l'animal pense. C'est un événement mesurable dans une cellule unique, dont le mécanisme est la soustraction. Le cerveau n'amplifie pas les choses importantes. Il supprime tout le reste.
Il y a 95 ans, sans microélectrode ni singe, William James avait dit la même chose dans le même ordre. Dans le chapitre 11 des *Principes de la psychologie*, il a écrit que tout le monde savait ce qu'était l'attention, puis a quand même donné une définition : l'esprit s'empare de l'un des plusieurs objets ou trains de pensée possibles simultanés. Puis vient la phrase la plus importante. James a écrit que l'attention implique de se retirer de certaines choses afin de traiter efficacement d'autres choses.
Se retirer. Pas amplifier. La définition la plus ancienne de ce domaine et le premier enregistrement unicellulaire s'accordent : l'attention est ce que vous soustrayez.
Gardez cette idée en tête. Elle reviendra dans environ deux mille mots, vêtue de symboles différents.
Le coût que tout le monde acceptait de payer
En 2016, la traduction automatique était figée. Vous preniez une phrase, la faisiez passer mot par mot through un réseau de neurones récurrents, accumuliez un état caché pour porter tout ce qui avait été vu jusqu'à présent, puis utilisiez cet état pour générer la traduction mot par mot à l'autre extrémité. Les variantes principales étaient les LSTM et les unités récurrentes à porte. Elles fonctionnaient. Google les avait déjà mises en production.
Cette architecture avait une caractéristique, souvent discutée dans le domaine mais non considérée comme un problème. Les modèles récurrents calculent l'état caché à la position t comme une fonction de l'état caché à la position t moins un. Ce n'est pas un détail d'implémentation. C'est la définition. La position cinq doit attendre que la position quatre existe pour être calculée, la position quatre doit attendre la position trois.
La section d'introduction du papier Transformer elle-même énonce les conséquences avec une franchise inhabituelle — pour un chapitre censé être protocolaire. Les auteurs écrivent que cette nature intrinsèquement séquentielle exclut la parallélisation au sein des exemples d'entraînement, et que ce problème devient critique pour des longueurs de séquence plus longues, car la mémoire limite le nombre d'échantillons que vous pouvez batcher pour compenser.
Réfléchissez à ce que cela signifie lorsque le matériel dans la salle est des GPU. Un GPU est une machine qui fait des milliers de choses simultanément. Un réseau récurrent est une machine qui fait les choses une par une. Faire tourner ce dernier sur le premier, c'est comme embaucher un orchestre mais leur donner une partition écrite pour un violon solo. Tout le monde est là. La plupart des gens attendent.
Le domaine le savait. Il y avait des correctifs. Le papier citait des techniques de factorisation et du calcul conditionnel, qui amélioraient tous deux l'efficacité, et l'un améliorait aussi la qualité. Puis il a donné la phrase qui a défini tout ce qui a suivi : cependant, la contrainte fondamentale du calcul séquentiel demeure.
C'est ainsi qu'un domaine intègre le coût dans sa vision du monde. Personne ne pensait que les récurrents étaient gratuits. Tout le monde pensait qu'ils étaient nécessaires.
L'attention arrive en tant qu'assistant
L'attention est entrée dans la traduction automatique en 2014, en tant que correctif.
Le problème qu'elle corrigeait était concret, mérite d'être précisé exactement, car la forme de ce premier correctif a déterminé comment le domaine a pensé l'attention pendant les trois années suivantes. Dans les modèles encodeur-décodeur de l'époque, l'encodeur lisait la phrase source entière et la compressait en un seul vecteur de longueur fixe. Le décodeur générait ensuite la traduction uniquement à partir de ce vecteur. Chaque mot d'une phrase de quarante mots devait survivre dans un tableau de nombres, dont la taille ne changeait pas quelle que soit la longueur de la phrase.
Dzmitry Bahdanau, alors à l'Université Jacobs de Brême, en collaboration avec Kyunghyun Cho et Yoshua Bengio à Montréal, a nommé cela un goulot d'étranglement. Leur proposition était d'arrêter de forcer la compression. Laisser l'encodeur conserver un état pour chaque position d'entrée, laisser le décodeur calculer un ensemble de poids pour tous ces états à chaque étape de sortie et prendre une somme pondérée. Le modèle apprendrait où regarder. Leur titre énonçait clairement la capacité qui en résultait : Traduction automatique neuronale en apprenant conjointement l'alignement et la traduction. L'alignement, une machine que les systèmes de traduction statistique devaient construire à la main pour approximer, tombait du réseau comme un sous-produit de l'apprentissage.
Ce mécanisme fonctionnait, et s'est propagé. Un an plus tard, Minh-Thang Luong, Hieu Pham et Christopher Manning ont publié un ensemble d'améliorations, le rendant moins cher et plus général. En 2016, l'attention était devenue la configuration standard de presque chaque système de traduction compétitif.
Et dans chacun de ces systèmes, il était assis au sommet des réseaux récurrents.
C'est le détail du tournant de toute l'histoire, que le papier Transformer a marqué en une phrase dans l'introduction. Les auteurs notent que les mécanismes d'attention sont devenus une partie intégrante de la modélisation de séquences, permettant la modélisation des dépendances sans tenir compte de la distance. Cependant, dans tous les cas sauf quelques-uns, ces mécanismes sont utilisés en combinaison avec des réseaux récurrents.
Relisez, en notant ce qu'il ne dit pas. Il ne dit pas que l'attention était sous-estimée. Il dit que pendant trois ans, le domaine possédait un mécanisme reliant directement n'importe quelles deux positions, en une étape, quelle que soit leur distance, mais l'avait attaché à une architecture qui ne pouvait précisément pas faire cela. L'attention était le passager. Le récurrent était la voiture.
Personne n'a demandé si cette voiture supportait la charge.
Celui qui a posé la question
Presque personne, de toute façon.
Jakob Uszkoreit n'avait pas l'intention d'étudier le langage. Il est entré dedans par accident. Son père, Hans Uszkoreit, était un linguiste computationnel, avait passé quinze mois dans une prison est-allemande dans son adolescence pour avoir protesté contre l'invasion soviétique de la Tchécoslovaquie, s'était échappé vers l'Ouest après sa libération, avait étudié l'informatique et la linguistique à Berlin, et avait finalement trouvé son chemin vers un laboratoire d'intelligence artificielle à Menlo Park, où son fils est né. La famille est retournée en Allemagne. Jakob y a fait l'université, a fait un stage au bureau de Google à Mountain View, et a atterri dans le groupe de traduction. Il a décrit cela comme entrer finalement dans les affaires familiales. Il n'a jamais terminé son doctorat.
En 2012, il a rejoint une équipe chez Google pour construire un système capable de répondre directement aux questions sur la page de recherche. Apple venait de publier Siri, et la direction de Google a décidé que c'était une urgence. Uszkoreit, rétrospectivement, a estimé que cette panique était sans fondement. Mais elle a investi des ressources derrière une équipe dédiée à des machines capables de conversations similaires, et c'est là qu'il a heurté un mur.
Les réseaux récurrents, même avec la mémoire à long court terme, ne pouvaient pas relier de longs paragraphes. La démonstration classique est une phrase où un fait énoncé tôt détermine le sens d'une phrase énoncée plus tard, et le modèle progresse de gauche à droite, devant encore porter les faits précoces lorsqu'il atteint les phrases tardives. Les LSTM ont rendu cela possible sur des spans plus longs que ce que les récurrents ordinaires permettaient. Ils ne l'ont pas fait fonctionner à l'échelle qu'Uszkoreit voulait. Son auto-évaluation de la boîte à outils du domaine à l'époque était que les méthodes qu'il appliquait étaient, pour citer ses mots, "essentiellement des pansements".
Vers 2014, il a commencé à développer une alternative qu'il a appelée auto-attention : laisser le modèle traduire un mot en se référant directement à n'importe quelle autre partie du paragraphe, en pondérant chaque partie selon son degré de clarification du mot en question. Il doutait de deux choses à ce sujet. La première était que cela pourrait simplement fonctionner mieux. La seconde, moins évidente mais qui s'est avérée plus importante. L'auto-attention regarde de nombreuses entrées simultanément plutôt que séquentiellement, ce qui signifie que sa forme correspond exactement aux puces de traitement parallèle que le boom du machine learning produisait en masse. Le mécanisme et le matériel étaient faits l'un pour l'autre. Personne n'avait conçu ainsi.
La réaction a été froide. Abandonner les récurrents signifiait jeter toute l'architecture que le domaine avait passée des années à perfectionner, et selon Uszkoreit, les gens levaient un sourcil devant cette suggestion. Les sceptiques incluaient son père, pour utiliser sa propre description, avec lequel il n'était pas tout à fait d'accord autour de la table du dîner.
Il a convaincu quelques collègues de faire l'expérience de toute façon. Les résultats étaient suffisamment prometteurs pour être publiés à petite échelle en 2016, en utilisant uniquement des spans de texte courts. Ce papier était d'Ankur Parikh, Oscar Täckström, Dipanjan Das et Jakob Uszkoreit, "Un modèle d'attention décomposable", publié à l'EMNLP 2016. Il exécutait l'inférence en langage naturel avec de l'attention et sans aucun récurrent.
Puis ses collaborateurs sont passés à autre chose. La technologie était assez bonne pour être déployée, alors ils l'ont déployée, partout dans la recherche Google et finalement la publicité. Selon les standards, c'était un succès. Uszkoreit était le seul à penser que la petite expérience impliquait une grande expérience.
C'est pourquoi, lorsque « Attention Is All You Need » est apparu un an plus tard, dont l'introduction admettait que l'attention était presque toujours combinée avec des réseaux récurrents, la citation attachée à la phrase sauf quelques cas était ce papier de 2016. L'exception à la règle, assise à la référence vingt-sept de la bibliographie, était le travail de celui qui allait la briser.
Un café, un couloir, une machine à café
Transformer a été assemblé à partir de conversations entendues par hasard. Ce n'est pas une figure de style ; c'est ainsi que les participants l'ont décrit.
Lors d'un déjeuner au café de Google en 2016, Uszkoreit a entendu Illia Polosukhin se plaindre que l'équipe construisant des réponses directes pour la page de recherche devait renvoyer des résultats en millisecondes mais n'y arrivait pas. La suggestion d'Uszkoreit était l'auto-attention. Polosukhin collaborait parfois avec Ashish Vaswani, qui était venu à Google Brain pour un doctorat en traduction automatique de l'Université de Californie du Sud, et cherchait un grand problème. Le bâtiment de Vaswani était juste à côté de celui de Polosukhin. Il a entendu parler de l'idée et a rejoint.
Les trois ont écrit un document de conception. Les noms dans le titre ont été choisis dès le début, la théorie étant que le mécanisme transformait l'information qui le traversait, et aussi parce qu'Uszkoreit avait possédé deux jouets Transformers dans son enfance. Le document se terminait par un dessin d'eux six se tirant dessus avec des lasers dans les montagnes. La phrase d'ouverture disait au lecteur que les auteurs étaient géniaux.
Niki Parmar a rejoint depuis la recherche Google, où elle avait construit des variantes de modèles avec Uszkoreit. Llion Jones a entendu parler de l'auto-attention de son collègue Mat Kelcey et a rejoint ; Kelcey a ensuite écouté le briefing du projet, a dit à Jones qu'il doutait que cela fonctionnerait, et décrit maintenant cela comme sa prédiction la plus incorrecte de sa vie. Łukasz Kaiser est arrivé d'un effort séparé sur les modèles de langage à Google Brain, avec son stagiaire Aidan Gomez, un étudiant de premier cycle, qui est entré dans un poste réservé aux doctorants par la conversation, et ne le découvrirait pas avant plusieurs mois. Kaiser et Gomez ont décidé de fusionner leur projet dans un autre projet.
Polosukhin a quitté Google début 2017 pour créer sa propre entreprise, c'est pourquoi la ligne d'affiliation du papier ne porte pas son nom.
Puis le groupe a heurté un mur. Ils ont construit un modèle de traduction par auto-attention, l'ont mesuré selon des benchmarks standards, et ont发现 qu'il était à peu près à égalité avec les meilleurs systèmes LSTM de l'époque. À égalité. Pas en tête. Une architecture radicale qui jetait les a priori accumulés par le domaine et revenait à l'égalité n'était pas un résultat. C'était une façon coûteuse de rester sur place.
Le mur s'est effondré parce qu'une personne a traversé une porte.
Noam Shazeer était chez Google depuis 2000 et avait une réputation remontant aux systèmes publicitaires des débuts de l'entreprise. Il avait passé cinq ans sur le deep learning, s'était intéressé aux modèles de langage, qui, à son avis, étaient loin de la fluidité qu'il pensait réalisable. En traversant le couloir du bâtiment 1965, il est passé devant l'espace de travail de Kaiser, et a entendu par hasard Vaswani et Parmar parler vivement de l'auto-attention. Il trouvait les réseaux récurrents ennuyeux. La proposition de les remplacer lui semblait à la fois correcte et intéressante.
L'affirmation d'Uszkoreit sur la contribution de Shazeer mérite d'être énoncée cuidadosamente, car elle décrit quelque chose dont le domaine parle rarement. Dans les mécanismes théoriquement sound, a-t-il dit, il faut souvent que quelques personnes expérimentées les implémentent très cuidadosamente pour montrer any signe de fonctionnement. Shazeer n'a pas débogué le code de l'équipe. Il a lu l'idée, a écrit sa propre implémentation from scratch, a vérifié occasionnellement avec Kaiser, a disparu pendant un moment, puis est revenu avec une version fonctionnelle. Ses collègues ont décrit ce qu'il a fait avec des mots comme magie et alchimie. Jones l'a simplement appelé un sorcier.
Les choses spécifiques que Shazeer a ajoutées sont le sujet des trois prochains articles de cette série. La note de bas de page des crédits du papier attribue l'attention par produit scalaire mis à l'échelle, l'attention multi-têtes et les représentations positionnelles sans paramètres à lui, qui sont les textes d'ancrage des parties 2, 3 et 4. Une personne, dans un sprint, a produit trois des quatre composants décomposés dans cette série.
En quoi consistait réellement le pari
L'abstract énonce la position en une phrase. Les auteurs proposent une nouvelle architecture de réseau simple basée uniquement sur des mécanismes d'attention, abandonnant complètement les récurrents et les convolutions.
Le mot qui fonctionne ici est complètement.
Supprimer les récurrents
Supprimer les récurrents eux-mêmes n'était pas la partie radicale. D'autres essayaient aussi. La section 2 du papier les énumère : Extended Neural GPU, ByteNet et ConvS2S, qui ont tous remplacé les récurrents par des convolutions pour calculer les représentations de toutes les positions en parallèle. Les auteurs admettent que l'objectif de réduire le calcul séquentiel était lui-même la base de ces travaux.
Mais les convolutions ont échangé la parallélisation contre un coût, et le papier a une description précise de ce coût. Dans ces modèles, le nombre d'opérations nécessaires pour associer deux positions arbitraires augmente avec la distance : linéaire pour ConvS2S, logarithmique pour ByteNet. Toujours pas gratuit. Connecter deux mots aux extrémités opposées d'une longue phrase restait coûteux, le papier citait la conclusion standard : des chemins plus longs rendent les dépendances à longue portée plus difficiles à apprendre.
L'auto-attention a compressé ce problème à un niveau constant. N'importe quelle position à n'importe quelle autre position, une étape, quelle que soit la distance. Le tableau 1 montre trois types de couches côte à côte, la colonne importante est la longueur maximale du chemin : les récurrents sont d'ordre n, les convolutions d'ordre log n, l'auto-attention d'ordre 1.
C'est là le pari. Pas que l'attention est utile — l'industrie le croyait déjà. Le pari était que la valeur de la longueur de chemin constante était assez grande pour abandonner tous les autres a priori structurels accumulés par l'industrie, et gagner quand même.
Le papier n'a pas caché ce qu'il abandonnait. Deux phrases après la déclaration du coût constant, il y avait un aveu, rarement conservé dans les résumés ultérieurs : le coût constant se fait au prix d'une réduction de la résolution effective, car l'attention fait la moyenne des positions pondérées. L'existence de l'attention multi-têtes est justement pour contrer cela. Le papier vous dit dès la deuxième page que son mécanisme central causera du flou, et que l'un de ses composants les plus acclamés est en fait un correctif. La partie 3 reviendra sur ce problème.
Il y a un deuxième coût, écrit dans le tableau 1 et défendu dans la section 4, que le papier considérait comme un compromis raisonnable, et que la décennie suivante a considéré comme un problème central de l'infrastructure IA. La complexité par couche de l'auto-attention est n² fois d. La défense du papier est que pour les entrées de longueur de phrase en traduction, n est généralement inférieur à d, ce qui était vrai en 2017, mais ne l'est plus quand quelqu'un veut nourrir un livre au modèle. La partie 7 présentera la facture.
Douze heures
La date limite était le 19 mai, pour soumission à la conférence de décembre. Les deux dernières semaines ont été passées dans le bâtiment 1965, en partie parce que certaines personnes de l'équipe y avaient des bureaux, en partie parce que la machine à expresso y était meilleure que dans le bâtiment 1945. Le stagiaire Gomez a décrit une période de débogage continu, où personne ne dormait beaucoup, retirant systématiquement des composants pour voir si le modèle pouvait encore fonctionner sans eux. Ce qui est maintenant appelé Transformer est en grande partie le résidu de ce processus : les parties qui ne pouvaient pas être retirées.
Puis les chiffres sont arrivés.
Le modèle de base a été entraîné pendant 100 000 étapes sur une seule machine avec 8 GPU NVIDIA P100. Temps réel 12 heures. Ce modèle a surpassé tous les modèles anglais-allemands et ensembles publiés précédemment. Le grand modèle a été entraîné pendant trois jours et demi sur la même machine à 8 GPU, atteignant 28,4 BLEU, dépassant le meilleur résultat précédent (y compris les ensembles) de plus de deux points entiers. Uszkoreit a ouvert une bouteille de champagne qu'il gardait dans son camion d'expédition de montagne pour célébrer.
Regardez maintenant le tableau 2, le tableau le plus silencieux et le plus meurtrier du papier. Il liste le coût d'entraînement en opérations en virgule flottante. Les systèmes ensembles compétitifs de l'époque étaient entre 1,1×10²¹ et 7,7×10¹⁹. Le grand modèle Transformer est de 2,3×10¹⁹, le modèle de base est encore un ordre de grandeur en dessous. Le nouveau meilleur résultat a été créé par le système le moins cher du tableau.
Un domaine qui avait passé des années à échanger de l'échelle contre de la qualité, s'est vu montrer un modèle qui échangeait de la structure contre de la qualité. Et parce que cette structure pouvait être mappée proprement sur du matériel parallèle, la même architecture deviendrait plus tard le véhicule idéal pour dépenser du calcul, une fois qu'il y aurait du calcul à dépenser. Les résultats de 2017 se lisent comme une histoire d'efficacité. En regardant en arrière, c'est une histoire de capacité déguisée en histoire d'efficacité.
Il restait environ deux minutes lors de la soumission du papier. Parmar a dit que les chiffres anglais-français sont arrivés environ cinq minutes avant la soumission, elle était assise dans la petite cuisine en attendant le dernier chiffre. Cela explique peut-être une petite incohérence qui existe encore dans le papier publié : l'abstract et le tableau 2 rapportent un score anglais-français de 41,8, tandis que la section 6.1 rapporte 41,0. Le papier le plus influent du machine learning moderne contient un nombre contradictoire, parce que les expériences ont été terminées après que le corps du texte a été écrit.
Le titre a été fixé quelques soirées avant la date limite. Jones, le Gallois, a noté que l'équipe avait rejeté la pratique acceptée par l'industrie pour une technologie unique, et que les Beatles avaient écrit cette phrase pour eux. Il a dit que l'idée a pris environ cinq secondes, il ne s'attendait pas à ce que quelqu'un l'utilise.
Ils l'ont utilisée.
Retour au singe
Transformer calcule pour chaque position une somme pondérée de toutes les autres positions, les poids étant produits par softmax. softmax ne fait pas que trier. Il supprime. Augmenter un score fait baisser tous les autres scores dans la distribution, car la somme est fixée à 1. Ce mécanisme au cœur de l'architecture est compétitif, sa sortie est définie à la fois par ce qu'il pousse vers zéro et ce qu'il élève.
C'est exactement ce que Moran et Desimone ont trouvé dans les neurones V4, lorsque deux objets étaient dans leur champ récepteur. C'est exactement ce que James a décrit comme se retirer de certaines choses pour traiter efficacement d'autres choses.
Prétendre que les auteurs de 2017 implémentaient James serait exagéré. Ils ne l'ont pas fait. Requête, clé et valeur viennent de la recherche d'information et non de la psychologie, la partie 2 retracera correctement cette généalogie. Mais les mots qu'ils ont choisis n'étaient pas non plus accidentels, ce domaine avait poli le concept derrière pendant un siècle. Quand Anne Treisman et Garry Gelade ont publié la théorie de l'intégration des caractéristiques en 1980, ils ont argumenté que les caractéristiques sont enregistrées en parallèle tôt, et que l'attention est l'opération qui les lie en objets. Enregistrement parallèle, puis liaison sélective. C'est une description des couches Transformer, écrite il y a trente-sept ans par des personnes étudiant la vision humaine.
Que cette convergence soit sur des faits réels de l'intelligence ou un accident de vocabulaire est la dernière question de cette série. La partie 8 tentera d'y répondre.
Mais il y a une meilleure fin, qui s'est produite lors de la session d'affiches de la conférence en décembre 2017. La salle était pleine pendant quatre heures. La sécurité a finalement dû évacuer. À un moment donné ce soir-là, un homme s'est approché de l'affiche et a dit aux auteurs qu'il était impressionné par ce travail, cet homme était Sepp Hochreiter.
Hochreiter a co-inventé les réseaux de mémoire à long court terme. Il est venu féliciter ceux qui venaient de les rendre obsolètes.
Le pari. Les récurrents ne sont pas nécessaires pour la modélisation de séquences. Une architecture construite entièrement sur l'attention, sans aucune couche récurrente ou convolutive, peut correspondre et dépasser les niveaux optimaux, la longueur de chemin constante entre deux positions arbitraires vaut plus que tous les a priori structurels abandonnés.
Le retour. Gagné, et plus vite que les auteurs ne l'attendaient. En environ deux ans, cette architecture a remplacé les modèles récurrents en traitement du langage naturel. Tous les modèles de langage de pointe construits depuis sont ses descendants. Le papier a déclaré lui-même dans la conclusion son ambition d'étendre cette méthode à d'autres modalités et de rendre la génération moins séquentielle. Il a obtenu une industrie.
L'état. Réglé, avec un astérisque. Ce pari a été gagné sur les compromis que le papier a explicitement faits et correctement tarifés pour 2017 : échanger un coût quadratique de la longueur de séquence contre une longueur de chemin constante. Tous les problèmes de contexte long dans l'IA aujourd'hui sont le paiement des intérêts de ce compromis. La partie 7 présentera la facture.
Bienvenue dans la communauté officielle TechFlow
Groupe Telegram :https://t.me/TechFlowDaily
Compte Twitter officiel :https://x.com/TechFlowPost
Compte Twitter anglais :https://x.com/BlockFlow_News













