{"id":1168,"date":"2024-03-18T17:52:18","date_gmt":"2024-03-18T16:52:18","guid":{"rendered":"https:\/\/artificiellementintelligent.wordpress.com\/?p=1168"},"modified":"2024-03-18T17:52:18","modified_gmt":"2024-03-18T16:52:18","slug":"des-modeles-de-langage-aux-modeles-multimodaux","status":"publish","type":"post","link":"https:\/\/artificiellementintelligent.eu\/index.php\/2024\/03\/18\/des-modeles-de-langage-aux-modeles-multimodaux\/","title":{"rendered":"Des mod\u00e8les de langage aux mod\u00e8les multimodaux"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Les mod\u00e8les de langage pr\u00e9sentent de remarquables qualit\u00e9s. Leur capacit\u00e9 \u00e0 analyser des demandes complexes en langage humain, qui provient de l&rsquo; entra\u00eenement sur les immenses volumes de donn\u00e9es textuelles accessibles sur Internet, a suffi pour provoquer l&rsquo; enthousiasme. Cependant, ces algorithmes ne mod\u00e9lisent qu&rsquo;une seule composante de la perception humaine : le texte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les mod\u00e8les multimodaux visent \u00e0 s&rsquo; affranchir de cette limite en traitant nativement diff\u00e9rents types de donn\u00e9es comme le texte, les images, les sons voire la vid\u00e9o (ce sont les <em>modalit\u00e9s<\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les premiers mod\u00e8les multimodaux sont d\u00e9j\u00e0 disponibles sur le march\u00e9: <em>OpenAI<\/em> combine ChatGPT4 avec GPT-4V (reconnaissance d&rsquo;images), DALL-E 3 (gen\u00e9ration d&rsquo;image), Whisper (reconnaissance vocale) et TTS (synth\u00e8se vocale) pour r\u00e9pondre aux demandes utilisateur les plus vari\u00e9es. <em>Google<\/em> Gemini Ultra pr\u00e9sente des capacit\u00e9s comparables, et <em>Anthropic<\/em> n&rsquo; est pas en reste puisque le nouveau mod\u00e8le Claude 3 Opus mis sur le march\u00e9 il y a deux semaines est \u00e9galement multimodal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La nouvelle fronti\u00e8re est la vid\u00e9o. OpenAI a r\u00e9cemment r\u00e9v\u00e9l\u00e9 le mod\u00e8le <em>text-to-video<\/em> <strong>Sora<\/strong> qui cr\u00e9e des vid\u00e9os d&rsquo; une dur\u00e9e maximale de 60 secondes sur base d&rsquo;un simple <em>prompt<\/em> textuel. Regardez plut\u00f4t leur d\u00e9monstration, elle est impressionnante : <\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-youtube\"><iframe loading=\"lazy\" title=\"Introducing Sora \u2014 OpenAI\u2019s text-to-video model\" width=\"676\" height=\"380\" src=\"https:\/\/www.youtube.com\/embed\/HK6y8DAPN_0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Un mot de terminologie avant d&rsquo; entrer dans les d\u00e9tails : l&rsquo; acronyme d\u00e9crivant les mod\u00e8les multimodaux est LMM (en Anglais \u00ab\u00a0Large Multimodal Models\u00a0\u00bb), par opposition aux mod\u00e8les de langage appel\u00e9s LLM (\u00ab\u00a0Large Language Models\u00a0\u00bb).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L&rsquo; apprentissage par repr\u00e9sentation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La <em>sauce secr\u00e8te<\/em> qui permet aux mod\u00e8les multimodaux de fonctionner est l&rsquo;apprentissage par repr\u00e9sentation. Il va transformer un concept pr\u00e9sent\u00e9 dans sa forme \u00ab\u00a0humainement intelligible\u00a0\u00bb en un vecteur, soit une s\u00e9quence de nombres de taille fixe. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans le cas d&rsquo;un mod\u00e8le de langage, cette repr\u00e9sentation fera correspondre chaque mot (ou plus pr\u00e9cis\u00e9ment chaque token) \u00e0 un vecteur. Ces vecteurs sont en g\u00e9n\u00e9ral de grande dimension : on parle de 1536 et 3072 dimensions pour les deux mod\u00e8les de repr\u00e9sentation textuelle utilis\u00e9s par OpenAI d\u00e9crits <a href=\"https:\/\/platform.openai.com\/doc\u00d2s\/guides\/embeddings\">ici<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette repr\u00e9sentation est faite de mani\u00e8re \u00e0 pr\u00e9server la correspondance s\u00e9mantique. En d&rsquo;autres mots, la distance entre les vecteurs mesure leur proximit\u00e9 s\u00e9mantique (les vecteurs pour &lsquo;auto&rsquo; et &lsquo;camionnette&rsquo; seront proches l&rsquo; un de l&rsquo; autre). Encore plus fort, les diff\u00e9rences entre vecteurs correspondent \u00e0 d&rsquo; autres concepts plus \u00e9l\u00e9mentaires : la diff\u00e9rence entre les vecteurs \u00ab\u00a0roi\u00a0\u00bb et \u00ab\u00a0reine\u00a0\u00bb est proche de celle entre les vecteurs \u00ab\u00a0homme\u00a0\u00bb et \u00ab\u00a0femme\u00a0\u00bb !<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/artificiellementintelligent.wordpress.com\/wp-content\/uploads\/2024\/03\/image-20240317a.png\" alt=\"\" class=\"wp-image-1171\" \/><figcaption class=\"wp-element-caption\">Figure 1 : Repr\u00e9sentation de l&rsquo;espace des vecteurs lexicaux  <br>(source : <a href=\"https:\/\/www.pinecone.io\/learn\/vector-search-basics\/\">https:\/\/www.pinecone.io\/learn\/vector-search-basics\/<\/a>)<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Cette notion de repr\u00e9sentation se trouve au coeur du fonctionnement de tous les mod\u00e8les de langage g\u00e9n\u00e9ratifs, qui ne sont ni plus ni moins que des machines \u00e0 prolonger des s\u00e9quences de vecteurs. Au coeur du mod\u00e8le de langage se trouve l&rsquo; algorithme appel\u00e9 <em>transformer<\/em> dont l&rsquo; action peut se r\u00e9sumer comme suit :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Repr\u00e9senter le texte en entr\u00e9e en une s\u00e9quence de vecteurs;<br><\/li>\n\n\n\n<li>Transformer la s\u00e9quence de vecteurs \u00e0 travers diff\u00e9rentes op\u00e9rations math\u00e9matiques qui vont enrichir et combiner les vecteurs de la s\u00e9quence de mots de l&rsquo; invite pour en cr\u00e9er de nouveaux;<br><\/li>\n\n\n\n<li>R\u00e9p\u00e9ter l&rsquo; action pr\u00e9c\u00e9dente un certain nombre de fois, jusqu&rsquo; \u00e0 obtention d&rsquo; une s\u00e9quence finale de vecteurs;<br><\/li>\n\n\n\n<li>Utiliser cette s\u00e9quence finale \u00ab\u00a0enrichie\u00a0\u00bb de vecteurs pour pr\u00e9dire le prochain vecteur de la s\u00e9quence et donc le prochain mot;<br><\/li>\n\n\n\n<li>Recommencer tout le processus en ajoutant le mot pr\u00e9dit \u00e0 la fin de la s\u00e9quence ce qui permettra de pr\u00e9dire le mot suivant etc&#8230;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Outre les mod\u00e8les g\u00e9n\u00e9ratifs, la technique de la repr\u00e9sentation textuelle facilite grandement le traitement du language : la recherche textuelle, le regroupement et la classification de texte deviennent beaucoup moins myst\u00e9rieux lorsqu&rsquo; on r\u00e9alise qu&rsquo; on peut les ex\u00e9cuter sur des vecteurs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Encore plus fort, imaginez avoir appris une repr\u00e9sentation pour l&rsquo; ensemble du vocabulaire fran\u00e7ais. Et une autre repr\u00e9sentation pour l&rsquo; Allemand, mais dans une espace de m\u00eame dimensionalit\u00e9&#8230; vous pouvez alors d\u00e9finir une transformation entre les espaces vectoriels qui va permettre de passer d&rsquo;une langue \u00e0 l&rsquo;autre !<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Diff\u00e9rentes modalit\u00e9s de repr\u00e9sentation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ce qui est vrai pour le texte s&rsquo; applique aussi aux images et aux sons. Moyennant un volume de donn\u00e9es d&rsquo; entra\u00eenement suffisant, il est possible de d\u00e9finir une repr\u00e9sentation des images, qui fera elle aussi correspondre \u00e0 chaque image une repr\u00e9sentation dans un espace vectoriel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comme pour le texte, le vecteur capturera le contenu visuel de l&rsquo; image qui pourra \u00eatre utilis\u00e9e pour diverses t\u00e2ches de vision automatis\u00e9e : d\u00e9tection d&rsquo; objets, classification d&rsquo; images, reconnaissance faciale, recherche d&rsquo; image par similarit\u00e9&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Concr\u00e8tement, cela signifie que les images contenant des voitures seront repr\u00e9sent\u00e9es par des vecteurs similaires, tout comme celles qui contiennent des chiens, des b\u00e2timents ou tout autre objet mat\u00e9riel. Id\u00e9alement, la dimensionalit\u00e9 du vecteur sera suffisante pour mod\u00e9liser des situations visuelles complexes contenant plusieurs objets et tenant compte de leur positionnement respectif et d&rsquo; autres caract\u00e9ristiques apparaissant sur l&rsquo; image.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/artificiellementintelligent.wordpress.com\/wp-content\/uploads\/2024\/03\/image-20240317b.webp\" alt=\"\" class=\"wp-image-1180\" \/><figcaption class=\"wp-element-caption\">Figure 2 : Repr\u00e9sentation vectorielle des images, <br>(source : <a href=\"https:\/\/towardsdatascience.com\/image-analytics-for-everyone-image-embeddings-with-orange-7f0b91fa2ca2\">https:\/\/towardsdatascience.com\/image-analytics-for-everyone-image-embeddings-with-orange-7f0b91fa2ca2<\/a>)<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Et ce qui est possible pour les images l&rsquo; est aussi pour les sons. Les repr\u00e9sentations sonores capturent le contenu s\u00e9mantique et contextuel de fichiers audio:  la prononciation du mot voiture ainsi que le bruit d&rsquo; une voiture qui d\u00e9marre seront li\u00e9s dans l&rsquo; espace vectoriel par une relation de proximit\u00e9.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/artificiellementintelligent.wordpress.com\/wp-content\/uploads\/2024\/03\/image-20240317c.png\" alt=\"\" class=\"wp-image-1183\" \/><figcaption class=\"wp-element-caption\">Figure 3 : Repr\u00e9sentation vectorielle de l&rsquo;audio<br>(source : https:\/\/people.csail.mit.edu\/weifang\/project\/spml17-audio2vec\/)<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Il ne reste plus qu&rsquo; \u00e0 mettre tout cela ensemble. Nous disposons maintenant d&rsquo; un m\u00e9canisme pour encoder des donn\u00e9es provenant de diff\u00e9rentes modalit\u00e9s dans un espace vectoriel de repr\u00e9sentation unique et multimodal.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/artificiellementintelligent.wordpress.com\/wp-content\/uploads\/2024\/03\/image-20240317d.png\" alt=\"\" class=\"wp-image-1185\" \/><figcaption class=\"wp-element-caption\">Figure 4 : Repr\u00e9sentations multimodales<br>(source : https:\/\/www.pinecone.io\/learn\/vector-search-basics\/)<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">La derni\u00e8re \u00e9tape consiste \u00e0 int\u00e9grer cela dans un mod\u00e8le, en g\u00e9n\u00e9ral de type <em>transformer<\/em> qui va chercher \u00e0 pr\u00e9dire le prochain vecteur; vous disposez alors d&rsquo; un mod\u00e8le multimodal qui peut s&rsquo; appuyer sur toutes les sources d&rsquo; informations disponibles pour g\u00e9n\u00e9rer les donn\u00e9es en sortie dans le format d\u00e9sir\u00e9.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/artificiellementintelligent.wordpress.com\/wp-content\/uploads\/2024\/03\/image-20240317e.webp\" alt=\"\" class=\"wp-image-1186\" \/><figcaption class=\"wp-element-caption\">Figure 5 : Mod\u00e8le g\u00e9n\u00e9ratif multimodal complet<br>(source : https:\/\/medium.com\/@cout.shubham\/exploring-multimodal-large-language-models-a-step-forward-in-ai-626918c6a3ec)<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Une petite remarque est que le mod\u00e8le multimodal id\u00e9alis\u00e9 \u00ab\u00a0bout \u00e0 bout\u00a0\u00bb que je viens de d\u00e9crire n&rsquo; existe probablement pas encore. Les mod\u00e8les multimodaux actuels comme ceux d&rsquo; OpenAI, de Google ou d&rsquo; Anthropic sont vraisembablement construits comme un assemblage de diff\u00e9rents mod\u00e8les, \u00e0 savoir un mod\u00e8le de langage unimodal qui coordonne et fait appel \u00e0 d&rsquo;autres mod\u00e8les \u00ab\u00a0transmodaux\u00a0\u00bb en fonction des besoins : par exemple, ChatGPT+ fera appel \u00e0 DALL-E 3 si l&rsquo; utilisateur veut g\u00e9n\u00e9rer une image (<em>text-to-image<\/em>), ou \u00e0 GPT4-V si une image doit \u00eatre interpr\u00e9t\u00e9e (<em>image-to-text<\/em>) etc&#8230;on se retrouve donc plut\u00f4t aujourd&rsquo;hui dans un sc\u00e9nario multiagent comme d\u00e9crit dans mon article pr\u00e9c\u00e9dent accessible <a href=\"https:\/\/artificiellementintelligent.wordpress.com\/2024\/03\/04\/les-agents-intelligents\/\">ici<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Applications et perspectives<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Les LMM pr\u00e9sentent un grand attrait pour l&rsquo; automatisation des soins de sant\u00e9, o\u00f9 les donn\u00e9es patient se retrouvent dispers\u00e9es \u00e0 travers du texte manuscrit ou digital, de l&rsquo; imagerie voire des rapports d&rsquo; analyse de laboratoire sous forme de donn\u00e9es tabulaires. La radiologie est souvent cit\u00e9e en exemple puisque sa mati\u00e8re premi\u00e8re est l&rsquo; imagerie (scanner, IRM, radios&#8230;), mais rien n&rsquo; emp\u00eache d&rsquo; entra\u00eener un LMM \u00e0 recevoir et interpr\u00e9ter d&rsquo; autres signaux comme ceux d&rsquo; un \u00e9lectrocardiogramme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un autre domaine o\u00f9 la multimodalit\u00e9 jouera un r\u00f4le essentiel est la robotique o\u00f9 l&rsquo; on va chercher \u00e0 donner aux robots des capacit\u00e9s de percevoir et d&rsquo;interagir avec leur environnement. La consolidation de ces informations visuelles, auditives et textuelles dans un mod\u00e8le unique permettra au robot de naviguer et d&rsquo; agir plus efficacement sur le monde ext\u00e9rieur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le grand d\u00e9fi de la multimodalit\u00e9, notamment pour la robotique, est l&rsquo; int\u00e9gration de la vid\u00e9o dans la cha\u00eene multimodale. Les grands acteurs du secteur planchent dessus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Google poss\u00e8de un avantage important dans ce domaine puisque <em>Youtube<\/em> est une de ses filiales. Avec plus de 500 heures de nouvelles vid\u00e9o sont publi\u00e9es chaque <em>minute<\/em> sur Youtube, cette cha\u00eene constitue un excellent r\u00e9servoir de donn\u00e9es pour l&rsquo; entra\u00eenement des futurs mod\u00e8les multimodaux vid\u00e9o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour conclure, l&rsquo; apprentissage multimodal profond est un domaine passionnant et en pleine \u00e9volution qui rec\u00e8le un grand potentiel pour faire progresser la vision par ordinateur et d&rsquo; autres domaines de l&rsquo; intelligence artificielle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bien que l&rsquo; apprentissage multimodal pr\u00e9sente des difficult\u00e9s, notamment la n\u00e9cessit\u00e9 de disposer de grandes quantit\u00e9s de donn\u00e9es d&rsquo; entra\u00eenement et la difficult\u00e9 de fusionner des informations provenant de modalit\u00e9s multiples, les progr\u00e8s r\u00e9cents des mod\u00e8les d&rsquo; apprentissage profond permettent d&rsquo; am\u00e9liorer consid\u00e9rablement les performances dans toute une s\u00e9rie de t\u00e2ches.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo; est un domaine \u00e0 suivre avec attention en 2024, qui pourrait bien \u00eatre l&rsquo; ann\u00e9e des LMM tout comme 2023 a \u00e9t\u00e9 celui des LLM.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sources et R\u00e9f\u00e9rences<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Multimodal Models and Computer Vision: A Deep Dive<\/em> par Petru Potrimba sur le site de Roboflow le 10 mai 2023 : <a href=\"https:\/\/blog.roboflow.com\/multimodal-models\/\">https:\/\/blog.roboflow.com\/multimodal-models\/<\/a><br><\/li>\n\n\n\n<li><em>Multimodal LLMs &#8211; Beyond the Limits of Language<\/em> par Tim Flilzinger pour Konfuzio le 19 octobre 2023 : <a href=\"https:\/\/konfuzio.com\/en\/multimodal-llm\/\">https:\/\/konfuzio.com\/en\/multimodal-llm\/<\/a><br><\/li>\n\n\n\n<li><em>What are embeddings<\/em> ?, livre en ligne par Vicki Boykis : <a href=\"https:\/\/vickiboykis.com\/what_are_embeddings\/\">https:\/\/vickiboykis.com\/what_are_embeddings\/<\/a><br><\/li>\n\n\n\n<li><em>Exploring Multimodal Large Language Models: A Step Forward in AI<\/em>, par Shubram Karwa le 16 novembre 2023 pour Medium : <a href=\"https:\/\/medium.com\/@cout.shubham\/exploring-multimodal-large-language-models-a-step-forward-in-ai-626918c6a3ec\">https:\/\/medium.com\/@cout.shubham\/exploring-multimodal-large-language-models-a-step-forward-in-ai-626918c6a3ec<\/a><br><\/li>\n\n\n\n<li><em>The Multimodal Evolution of Vector Embeddings<\/em>, par James Le, le 9 ao\u00fbt 2023 pour TwelveLabs : <a href=\"https:\/\/www.twelvelabs.io\/blog\/multimodal-embeddings\">https:\/\/www.twelvelabs.io\/blog\/multimodal-embeddings<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Les mod\u00e8les multimodaux vont au-del\u00e0 des mod\u00e8les de langage en int\u00e9grant des donn\u00e9es telles que textes, images et sons. Des mod\u00e8les tels que ChatGPT4 et Google Gemini Ultra explorent cette voie, ouvrant de nouvelles perspectives.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,11,12],"tags":[],"class_list":["post-1168","post","type-post","status-publish","format-standard","hentry","category-agents","category-modeles-dimage","category-modeles-de-langage","post-preview"],"_links":{"self":[{"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/posts\/1168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1168"}],"version-history":[{"count":0,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/posts\/1168\/revisions"}],"wp:attachment":[{"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/categories?post=1168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/tags?post=1168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}