{"id":1148,"date":"2024-03-04T15:22:28","date_gmt":"2024-03-04T14:22:28","guid":{"rendered":"https:\/\/artificiellementintelligent.wordpress.com\/?p=1148"},"modified":"2024-03-04T15:22:28","modified_gmt":"2024-03-04T14:22:28","slug":"les-agents-intelligents","status":"publish","type":"post","link":"https:\/\/artificiellementintelligent.eu\/index.php\/2024\/03\/04\/les-agents-intelligents\/","title":{"rendered":"Les agents intelligents"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Les mod\u00e8les de langage sont souvent per\u00e7us comme d&rsquo; excellents g\u00e9n\u00e9rateurs de texte. Cet engouement pour les capacit\u00e9s litt\u00e9raires des mod\u00e8les ne doit cependant pas faire oublier que leur vraie promesse se situe dans leurs capacit\u00e9s cognitives plus abstraites comme le raisonnement et la planification.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ces derni\u00e8res sont encores imparfaites mais les progr\u00e8s constants dans le domaine laissent entrevoir un nouveau domaine d&rsquo; application aux possibilit\u00e9s presque infinies : les <em>agents<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les \u00eatres humains sont remarquables dans leur capacit\u00e9 \u00e0 absorber constamment de nouvelles informations, prendre des d\u00e9cisions, ex\u00e9cuter des actions, puis observer l&rsquo; impact de ces actions pour prendre de nouvelles d\u00e9cisions. Notre vie peut se voir -de mani\u00e8re un peu r\u00e9ductrice- comme un cycle sans fin d&rsquo; observations, de raisonnements et d&rsquo; actions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo; id\u00e9e des <em>agents<\/em> est pr\u00e9cis\u00e9ment de mettre en place des cycles similaires au coeur desquels on trouve un mod\u00e8le de langage \u00e0 la place d&rsquo; un \u00eatre humain. Cet agent interagira avec l&rsquo;environnement soit de mani\u00e8re physique (robotique, v\u00e9hicule autonome&#8230;), soit de mani\u00e8re informatis\u00e9e (appels de fonction via interface de programmation).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Composants d&rsquo;un agent<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Au c\u0153ur de l&rsquo; agent intelligent se trouve le mod\u00e8le de langage, un \u00e9l\u00e9ment crucial qui analyse les situations et sugg\u00e8re des actions. Ce mod\u00e8le est soutenu par une vari\u00e9t\u00e9 de modules qui facilitent sa communication avec l&rsquo;ext\u00e9rieur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour tirer pleinement parti de ses capacit\u00e9s, le mod\u00e8le de langage doit \u00eatre sollicit\u00e9 de mani\u00e8re pr\u00e9cise, une pratique connue sous le nom de <em>prompt engineering<\/em>. \u00c0 travers des consignes m\u00e9ticuleusement \u00e9labor\u00e9es, on d\u00e9finit l&rsquo; identit\u00e9, l&rsquo; expertise et la conduite du mod\u00e8le, en y int\u00e9grant contexte, param\u00e8tres et parfois des indications sur le r\u00f4le sp\u00e9cifique \u00e0 jouer dans des simulations multi-agents, un sujet dont nous reparlerons plus bas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La capacit\u00e9 de raisonnement du mod\u00e8le repose sur une connaissance approfondie du monde, structur\u00e9e autour de trois piliers :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>la <em>connaissance g\u00e9n\u00e9rale<\/em>, acquise lors de l&rsquo; entra\u00eenement initial sur un vaste corpus textuel, fournit une base solide;<br><\/li>\n\n\n\n<li>la <em>connaissance sp\u00e9cialis\u00e9e<\/em>, qui vient enrichir la base g\u00e9n\u00e9rale avec des notions, des m\u00e9thodes de raisonnement et un vocabulaire sp\u00e9cifique au domaine d&rsquo; application;<br><\/li>\n\n\n\n<li>la <em>connaissance proc\u00e9durale<\/em>, qui \u00e9quipe le mod\u00e8le des savoirs n\u00e9cessaires pour agir sur l&rsquo; environnement ext\u00e9rieur, comme conna\u00eetre et comprendre les param\u00e8tres des interfaces de programmation.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ces connaissances sont transmises au mod\u00e8le via diverses techniques de m\u00e9morisation, telles que le contexte des prompts, la r\u00e9cup\u00e9ration augment\u00e9e de g\u00e9n\u00e9ration (RAG) et l&rsquo;affinage. Pour en savoir plus sur ces m\u00e9thodes, je vous renvoie \u00e0 mon article pr\u00e9c\u00e9dent, disponible <a href=\"https:\/\/artificiellementintelligent.wordpress.com\/2024\/02\/20\/techniques-d-exploitation-des-modeles-de-langage\/\">ici<\/a>.<\/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-20240304a.png\" alt=\"\" class=\"wp-image-1151\" \/><figcaption class=\"wp-element-caption\">Figure 1 : Architecture d&rsquo;un agent IA<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Dans la grande majorit\u00e9 des cas, l&rsquo; agent comprend \u00e9galement une <em>interface utilisateur<\/em>, permettant une interaction directe avec l&rsquo; humain pour recevoir des missions, rapporter les r\u00e9sultats, poser des questions ou fournir des mises \u00e0 jour interm\u00e9diaires.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enfin, les <em>interfaces de programmation (API)<\/em> constituent un \u00e9l\u00e9ment cl\u00e9, permettant au mod\u00e8le d&rsquo; interagir avec le monde ext\u00e9rieur. Elles peuvent servir de sources d&rsquo; information ou de moyens d&rsquo; action, comme l&rsquo; acc\u00e8s \u00e0 des moteurs de recherche en ligne ou \u00e0 des plateformes de commerce \u00e9lectronique pour effectuer des r\u00e9servations ou passer des commandes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Exemples d&rsquo; application<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Apr\u00e8s avoir explor\u00e9 l&rsquo;architecture de l&rsquo;agent, int\u00e9ressons-nous \u00e0 certains cas d&rsquo; application embl\u00e9matiques :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prenons d&rsquo; abord l&rsquo; exemple de l&rsquo; <em>agent de programmation<\/em>, qui illustre parfaitement l&rsquo; utilisation des capacit\u00e9s des mod\u00e8les de langage dans le domaine informatique. Voici comment il op\u00e8re : un utilisateur soumet une requ\u00eate de programmation au mod\u00e8le, qui g\u00e9n\u00e8re ensuite du code. Ce code est ex\u00e9cut\u00e9 dans un environnement d\u00e9di\u00e9, et le mod\u00e8le re\u00e7oit en retour le r\u00e9sultat de cette ex\u00e9cution, ou un message d&rsquo; erreur si le programme ne fonctionne pas comme pr\u00e9vu. Le mod\u00e8le peut alors renvoyer le code g\u00e9n\u00e9r\u00e9 \u00e0 l&rsquo; utilisateur, ou le retravailler et le soumettre \u00e0 nouveau, jusqu&rsquo;\u00e0 obtenir un r\u00e9sultat satisfaisant.<\/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-20240304b.png\" alt=\"\" class=\"wp-image-1154\" \/><figcaption class=\"wp-element-caption\">Figure 2 : Agent de programmation<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Approfondissons l&rsquo; id\u00e9e pour construire un processus professionnel de d\u00e9veloppement logiciel, o\u00f9 divers acteurs jouent des r\u00f4les sp\u00e9cifiques : directeur, responsable produit, architecte technique, chef de projet, d\u00e9veloppeur, testeur&#8230; Imaginez maintenant que chaque poste est occup\u00e9 par un mod\u00e8le de langage sp\u00e9cialis\u00e9, interagissant entre eux selon un processus \u00e9tabli jusqu&rsquo; \u00e0 la livraison finale du produit. Il suffirait de fournir une description de haut niveau au \u00ab\u00a0directeur IA\u00a0\u00bb et de laisser le processus se d\u00e9rouler de mani\u00e8re autonome, aboutissant \u00e0 la cr\u00e9ation d&rsquo; un produit fini.<\/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-20240304c-1.png\" alt=\"\" class=\"wp-image-1164\" \/><figcaption class=\"wp-element-caption\">Figure 3 : Processus de d\u00e9veloppement logiciel MetaGPT<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Cette vision avant-gardiste est au c\u0153ur des syst\u00e8mes multiagents. <em>MetaGPT<\/em>, comme d\u00e9crit pr\u00e9c\u00e9demment, simule un tel processus de d\u00e9veloppement logiciel, une approche pouvant \u00eatre \u00e9tendue \u00e0 de nombreux autres sc\u00e9narios d\u00e8s lors qu&rsquo;une structure organisationnelle et un processus existent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour illustration, voici une vid\u00e9o de l&rsquo;utilisation de MetaGPT pour d\u00e9velopper automatiquement un jeu de <em>snake<\/em> : <\/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=\"How To Install MetaGPT - Build A Startup With One Prompt!!\" width=\"676\" height=\"380\" src=\"https:\/\/www.youtube.com\/embed\/uT75J_KG_aY?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\">Passons \u00e0 une autre id\u00e9e brillante, cette fois dans le domaine de l&rsquo; interaction avec le monde ext\u00e9rieur : la plupart des applications informatiques avec lesquelles nous interagissons utilisent une interface graphique qui r\u00e9pond \u00e0 des principes relativement uniformes : barre de menus, boutons, utilisation de la souris pour cliquer sur les zones \u00e0 s\u00e9lectionner etc&#8230;. la technique d&rsquo;interaction avec ces interfaces peut \u00eatre apprise \u00e0 un mod\u00e8le de langage capable d&rsquo; interpr\u00e9ter les images (comme GPT4 ou Gemini Pro).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le mod\u00e8le pourra alors interagir de mani\u00e8re \u00ab\u00a0g\u00e9n\u00e9raliste\u00a0\u00bb avec de nombreuses applications utilisateur moyennant quelques informations compl\u00e9mentaires comme le mode d&rsquo; emploi des applications. La puissance de cette approche ne doit pas \u00eatre sous-estim\u00e9e : des milliers d&rsquo; applications interactives deviennent ainsi directement accessibles au mod\u00e8le, multipliant d&rsquo; autant sa capacit\u00e9 d&rsquo;action.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette id\u00e9e a donn\u00e9 naissance au <em>Rabbit r1<\/em>, la grande r\u00e9v\u00e9lation du CES \u00e0 Las Vegas qui s&rsquo; est tenu en janvier. Ce petit appareil r\u00e9volutionnaire contient simplement un micro et un haut-parleur permettant \u00e0 l&rsquo; utilisateur de donner des instructions vocales \u00e0 un mod\u00e8le de langage qui va directement interagir avec de nombreuses applications mobiles&#8230;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour plus d&rsquo;informations, voici un lien vers la pr\u00e9sentation officielle du <em>Rabbit r1<\/em> : <\/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 r1\" width=\"676\" height=\"380\" src=\"https:\/\/www.youtube.com\/embed\/22wlLy7hKP4?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<h2 class=\"wp-block-heading\">3. Risques<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pouvoir agir directement dans le monde r\u00e9el offre bien s\u00fbr un grand potentiel mais pr\u00e9sente aussi des risques significatifs. D\u00e9tenir une telle capacit\u00e9 d&rsquo;action peut provoquer des dommages involontaires. Un sc\u00e9nario trivial verrait un agent placer une r\u00e9servation ou une commande erron\u00e9e par internet&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Plus pr\u00e9occupant, il est possible d&rsquo; imaginer des agents volontairement construits \u00e0 des fins nuisibles. Le <em>hacking<\/em> autonome illustre bien ce risque : un agent disposant d&rsquo; une large biblioth\u00e8que d&rsquo; outils de hacking pourra sonder sa cible informatique, choisir les outils les plus appropri\u00e9s voire les adapter pour en maximiser l&rsquo; impact, puis engager un sc\u00e9nario d&rsquo; attaque complexe afin d&rsquo; atteindre les buts sp\u00e9cifi\u00e9s par le <em>hacker<\/em> : prise de contr\u00f4le de la machine, destruction ou vol de donn\u00e9es, d\u00e9ni de service etc&#8230;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce risque n&rsquo; est pas que th\u00e9orique : des chercheurs ont montr\u00e9 qu&rsquo; une telle approche fonctionne et est capable de <em>hacker<\/em> efficacement des sites web.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Comme vous pouvez le voir, les agents IA pr\u00e9sentent d&rsquo; \u00e9normes potentialit\u00e9s, et il y a gros \u00e0 parier que 2024 verra de nouveaux d\u00e9veloppements dans ce domaine&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mais c&rsquo; est surtout en conjonction avec les nouveaux progr\u00e8s attendus comme la multimodalit\u00e9 que les agents pourront montrer toute leur puissance. Imaginez ce que pourrait faire un agent capable d&rsquo; interpr\u00e9ter \u00e0 la fois le son, les images et le texte de mani\u00e8re consolid\u00e9e&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il ne reste qu&rsquo; \u00e0 placer le mod\u00e8le dans un robot et lui donner la capacit\u00e9 d&rsquo; agir sur les actuateurs (bras, mains, jambes) et vous poss\u00e9dez un robot avec des capacit\u00e9s tout \u00e0 fait in\u00e9dites. Ce n&rsquo; est pas pour rien que plusieurs g\u00e9ants de la tech (dont Tesla) se sont r\u00e9cemment lanc\u00e9s dans la r\u00e9alisation de robots humano\u00efdes&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le grand b\u00e9mol \u00e0 toutes ces promesses reste la tendance des mod\u00e8les \u00e0 halluciner. Ne pas pouvoir faire totalement confiance aux informations issues du mod\u00e8le est un souci g\u00e9rable dans un sc\u00e9nario conversationnel, un utilisateur averti en valant deux. Mais un agent IA agissant directement sur le monde ext\u00e9rieur sans validation humaine pr\u00e9sente un risque bien plus grand. Cette contrainte pourrait bien voir le d\u00e9ploiement d&rsquo;agents limit\u00e9s \u00e0 des sc\u00e9narios d&rsquo; utilisation subalternes et inoffensifs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comme souvent, difficile de faire des pr\u00e9dictions. Le tableau des agents IA est contrast\u00e9. Les promesses sont importantes mais les risques aussi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Notes et r\u00e9f\u00e9rences<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li> <em>What is LLM Agent? Ultimate Guide to LLM Agent [With Technical Breakdown]<\/em> par Moumita Roy et Pranav Patel pour Ionio.ai : <a href=\"https:\/\/www.ionio.ai\/blog\/what-is-llm-agent-ultimate-guide-to-llm-agent-with-technical-breakdown\">https:\/\/www.ionio.ai\/blog\/what-is-llm-agent-ultimate-guide-to-llm-agent-with-technical-breakdown<\/a><br><\/li>\n\n\n\n<li><em>LLM Agents can Autonomously Hack Websites<\/em>, par Daniel Kang le 13 f\u00e9vrier 2024 pour Medium : <a href=\"https:\/\/medium.com\/@danieldkang\/llm-agents-can-autonomously-hack-websites-ab33fadb3062\">https:\/\/medium.com\/@danieldkang\/llm-agents-can-autonomously-hack-websites-ab33fadb3062<\/a><br><\/li>\n\n\n\n<li><em>LLM-based Autonomous Agents &#8211; LLM Apps that perform Human-like Tasks<\/em>, tweet de Bindu Reddy : <a href=\"https:\/\/twitter.com\/bindureddy\/status\/1697386242936385909?s=20\">https:\/\/twitter.com\/bindureddy\/status\/1697386242936385909?s=20<\/a><br><\/li>\n\n\n\n<li><em>Understanding AI Agents in the age of LLMs!<\/em>, tweet de Akshay Pachaar : <a href=\"https:\/\/twitter.com\/akshay_pachaar\/status\/1697950190756585700?s=20\">https:\/\/twitter.com\/akshay_pachaar\/status\/1697950190756585700?s=20<\/a><br><\/li>\n\n\n\n<li><em>LLM Powered Autonomous Agents<\/em> sur le blog de Lilian Weng, le 23 juin 2023 : <a href=\"https:\/\/lilianweng.github.io\/posts\/2023-06-23-agent\/\">https:\/\/lilianweng.github.io\/posts\/2023-06-23-agent\/<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Les mod\u00e8les de langage ont des capacit\u00e9s litt\u00e9raires, mais leur vraie promesse r\u00e9side dans le raisonnement et la planification. Ils sont au c\u0153ur des agents intelligents, qui peuvent interagir physiquement ou informatiquement avec leur environnement. Ces agents peuvent \u00eatre appliqu\u00e9s dans divers domaines, tels que la programmation informatique ou l&rsquo;interaction avec des applications utilisateur. Cependant, ces capacit\u00e9s offrent \u00e9galement des risques, notamment en termes de potentiel de dommages involontaires ou d&rsquo;utilisation malveillante. Malgr\u00e9 ces d\u00e9fis, les agents IA pr\u00e9sentent d&rsquo;\u00e9normes potentialit\u00e9s, et avec les progr\u00e8s attendus tels que la multimodalit\u00e9, leur puissance pourrait \u00eatre encore plus d\u00e9cupl\u00e9e.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1148","post","type-post","status-publish","format-standard","hentry","category-agents","post-preview"],"_links":{"self":[{"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/posts\/1148","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=1148"}],"version-history":[{"count":0,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/posts\/1148\/revisions"}],"wp:attachment":[{"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/categories?post=1148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/tags?post=1148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}