{"id":923,"date":"2023-11-01T22:08:11","date_gmt":"2023-11-01T21:08:11","guid":{"rendered":"https:\/\/artificiellementintelligent.wordpress.com\/?p=923"},"modified":"2023-11-01T22:08:11","modified_gmt":"2023-11-01T21:08:11","slug":"lart-de-converser-avec-les-modeles-de-langage-le-prompting","status":"publish","type":"post","link":"https:\/\/artificiellementintelligent.eu\/index.php\/2023\/11\/01\/lart-de-converser-avec-les-modeles-de-langage-le-prompting\/","title":{"rendered":"L&rsquo;art de converser avec les mod\u00e8les de langage : le prompting"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Aujourd&rsquo;hui, nous pouvons discuter avec l&rsquo;intelligence artificielle et lui permettre de g\u00e9n\u00e9rer des r\u00e9ponses semblables \u00e0 celles des humains. Les mod\u00e8les de langage combinent les informations contenues dans l&rsquo; invite (en anglais : le <em>prompt<\/em>)  avec celles int\u00e9gr\u00e9es dans le mod\u00e8le pendant l&rsquo;entra\u00eenement pour g\u00e9n\u00e9rer leurs r\u00e9ponses. Les informations contenues dans l&rsquo; invite peuvent \u00eatre vues comme une forme compl\u00e9mentaire d&rsquo; apprentissage limit\u00e9e au dialogue en cours.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La formulation du prompt est donc d\u00e9terminante et forme le socle d&rsquo; une discipline naissante appel\u00e9e <em>prompt engineering<\/em>. Le prompt engineering comprend \u00e0 la fois des techniques de bases que j&rsquo; illustre ici, mais aussi des techniques plus avanc\u00e9es que je couvrirai ult\u00e9rieurement. Il faut bien noter que toutes ces techniques sont de nature empirique, elles se sont constitu\u00e9es au fil des exp\u00e9rimentations des utilisateurs sur les mod\u00e8les. Il n&rsquo; y a pas de th\u00e9orie formelle sous-jacente. D\u00e8s lors, il est tout \u00e0 fait possible que de nouvelles approches plus efficaces soient identifi\u00e9es \u00e0 l&rsquo; avenir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Plus concr\u00e8tement, je vous pr\u00e9sente dans cet article une m\u00e9thodologie structur\u00e9e de construction d&rsquo; une invite efficace, applicable \u00e0 tous les mod\u00e8les conversationnels actuels (ChatGPT, Bing chat, Claude, Llama 2, Bard&#8230;).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Structure<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nous allons construire notre <em>prompt<\/em> suivant une structure en six parties. Ces parties, par ordre d&rsquo;importance d\u00e9croissante sont :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>La <strong>t\u00e2che<\/strong> : d\u00e9crit ce que vous voulez obtenir comme information du mod\u00e8le. C&rsquo;est \u00e9videment l&rsquo;information fondamentale;<br><\/li>\n\n\n\n<li>Le <strong>contexte<\/strong> : reprend des informations compl\u00e9mentaires expliquant les circonstances et l&rsquo;environnement dans lesquels la t\u00e2che doit \u00eatre ex\u00e9cut\u00e9e;<br><\/li>\n\n\n\n<li>La <strong>guidance<\/strong> : guide le mod\u00e8le \u00e0 fournir le contenu de r\u00e9ponse que vous attendez;<br><\/li>\n\n\n\n<li>La <strong>personnalit\u00e9<\/strong> : d\u00e9crit la personnalit\u00e9 que le mod\u00e8le va chercher \u00e0 incarner dans sa r\u00e9ponse;<br><\/li>\n\n\n\n<li>Le <em><strong>format<\/strong><\/em> : d\u00e9crit le format de la r\u00e9ponse;<br><\/li>\n\n\n\n<li>Le <strong>ton<\/strong> : d\u00e9crit l&rsquo;humeur et la tonalit\u00e9 de la r\u00e9ponse : formelle, humoristique, enthousiaste..<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">A l&rsquo; exception de la t\u00e2che, aucune partie n&rsquo; est absolument requise mais elles contribuent \u00e0 la qualit\u00e9 de la r\u00e9ponse en fonction de leur importance respective. L&rsquo; ordre dans lequel les diff\u00e9rentes parties sont r\u00e9dig\u00e9es dans l&rsquo; invite peut varier, pour autant que l&rsquo; ensemble reste coh\u00e9rent et mette l&rsquo; emphase sur les \u00e9l\u00e9ments les plus importants.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voici une illustration de prompt complet montrant la contribution de chaque partie \u00e0 l&rsquo; ensemble :<\/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\/2023\/11\/image-20231101a.png\" alt=\"\" class=\"wp-image-928\" \/><figcaption class=\"wp-element-caption\">Figure 1 : Un prompt complet avec illustration des parties<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;en profite pour faire un lien avec les instructions personnalis\u00e9es de ChatGPT que j&rsquo;avais mentionn\u00e9es dans <a href=\"https:\/\/artificiellementintelligent.wordpress.com\/2023\/10\/24\/la-personnalisation-des-dialogues-avec-chatgpt\/\">un article pr\u00e9c\u00e9dent<\/a> :  Il vous est possible de placer certaines des parties de l&rsquo;invite que vous r\u00e9utilisez syst\u00e9matiquement dans les <em>Custom Instructions<\/em>, comme la personnalit\u00e9, le format, le ton et potentiellement certains \u00e9lements de contexte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voyons maintenant chaque partie plus en d\u00e9tail.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. D\u00e9finition de la t\u00e2che<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La <em>t\u00e2che<\/em> est le coeur de l&rsquo; invite: elle indique au mod\u00e8le ce qu&rsquo; il doit faire en retour. Il est essentiel d&rsquo; \u00eatre clair et concis pour garantir que le mod\u00e8le comprend votre demande.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quelques verbes typiques de la description d&rsquo;une t\u00e2che : <em>traduis, r\u00e9sume, analyse, trie, classe, r\u00e9dige, g\u00e9n\u00e8re, explique, d\u00e9cris, planifie, organise, demande<\/em>&#8230;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pensez \u00e0 bien d\u00e9crire l&rsquo; objectif que vous recherchez, et n&rsquo; h\u00e9sitez pas \u00e0 d\u00e9tailler si n\u00e9cessaire.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"text-decoration: underline\">Exemples :<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>simple<\/strong> : <em>G\u00e9n\u00e8re un programme d&rsquo;entra\u00eenement appropri\u00e9 pour courir un marathon<\/em>;<br><\/li>\n\n\n\n<li><strong>complexe<\/strong> : <em>Analyse le retour des abonn\u00e9es \u00e0 notre lettre d&rsquo;information, r\u00e9sume les trois points d&rsquo;am\u00e9lioration principaux et cat\u00e9gorise le reste par ordre d&rsquo;importance d\u00e9croissante<\/em>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3. D\u00e9finition du contexte<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Comme dans toute conversation, plus vous fournissez de contexte lors de la r\u00e9daction des invites, plus les r\u00e9sultats d&rsquo; un mod\u00e8le linguistique comme ChatGPT seront pertinents. Votre contexte devrait reprendre des informations sur l&rsquo; environnement et des circonstances dans lequel se fait la demande ainsi que la situation des intervenants et leurs objectifs. Si possible, reliez cela \u00e0 l&rsquo; objectif de votre demande et les facteurs de succ\u00e8s qui y sont li\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"text-decoration: underline\">Exemples :<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>sportif<\/strong> : <em>Je suis un homme de 54 ans qui court environ 10 kilom\u00e8tres tous les deux jours. J&rsquo;ai d\u00e9j\u00e0 couru deux marathons il y a environ 15 ans et je voudrais recommencer. Cependant je n&rsquo;ai plus du tout l&rsquo;habitude de courir de longues distances. Mon but pour le marathon est de terminer dans le temps imparti (4h30 minutes) pour ne pas \u00eatre disqualifi\u00e9.<\/em><br><\/li>\n\n\n\n<li><strong>ing\u00e9ni\u00e9rie<\/strong> : <em>Nous sommes un bureau d&rsquo;\u00e9tudes en charge de r\u00e9nover un pont ferroviaire sur la Meuse. Ce pont de 165 m\u00e8tres de long a \u00e9t\u00e9 construit dans les ann\u00e9es 1970. Il compte cinq piles qui portent six trav\u00e9es et poss\u00e8de un tablier en b\u00e9ton. Le pont montre des signes d&rsquo;usure et des r\u00e9novations sont n\u00e9cessaires au niveau du b\u00e9ton, des joints \u00e9tanches sous les voies et des supports entre les tabliers de pont et les piles. Lors de la r\u00e9novation, il est essentiel que les passants et les riverains subissent le moins de d\u00e9sagr\u00e9ments possible.<\/em><br><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">4. D\u00e9finition de la guidance<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La guidance a pour but d&rsquo;aider le mod\u00e8le \u00e0 fournir une r\u00e9ponse correcte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo; approche la plus simple est de recourir \u00e0 une <em>description<\/em> du contenu que vous attendez. La guidance vient \u00e9pauler la d\u00e9finition de la t\u00e2che et se confond parfois avec elle. La guidance n&rsquo;est pas toujours n\u00e9cessaire, cela d\u00e9pend du type de t\u00e2che demand\u00e9 par l&rsquo;utilisateur. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"text-decoration: underline\">Exemple<\/span> : <em>dans votre r\u00e9ponse, listez les trois causes les plus probables de la panne de courant et pour chacune, expliquez votre raisonnement en mettant en concordance les causes propos\u00e9es avec le d\u00e9roulement des \u00e9v\u00e9nements.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo; autre approche est de fournir un ou plusieurs <em>exemples<\/em> reprenant une s\u00e9quence questions\/r\u00e9ponses qui va offrir un cadre au mod\u00e8le. Les exemples aident le mod\u00e8le \u00e0 raisonner et\/ou \u00e0 imiter la structure textuelle recherch\u00e9e. La fourniture d&rsquo; exemples peut fortement aider le mod\u00e8le \u00e0 aller dans la bonne direction et constitue une base des techniques avanc\u00e9es de <em>prompt engineering<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Incarnation d&rsquo;une personnalit\u00e9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En d\u00e9finissant une personnalit\u00e9, vous demandez au mod\u00e8le de r\u00e9pondre selon une perspective particuli\u00e8re, ce qui peut fortement impacter la qualit\u00e9 de la r\u00e9ponse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est une technique tr\u00e8s efficace et facile \u00e0 mettre en oeuvre : si vous cherchez des informations historiques, demandez au mod\u00e8le d&rsquo;agir comme professeur d&rsquo;histoire. Si vous cherchez \u00e0 perdre du poids, demandez au mod\u00e8le d&rsquo;agir comme coach de fitness. Si vous \u00eates enseignant et cherchez \u00e0 tester une approche p\u00e9dagogique, demandez au mod\u00e8le de se comporter comme un enfant de l&rsquo;\u00e2ge appropri\u00e9. Les possibilit\u00e9s sont presque infinies&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u00e9tail amusant, vous pouvez m\u00eame demander au mod\u00e8le d&rsquo;incarner une personnalit\u00e9 connue, comme Albert Einstein, Winston Churchill, Paul Bocuse ou Albert Camus. Il est fascinant de reprendre le m\u00eame prompt et de varier la personnalit\u00e9 \u00e0 l&rsquo;infini pour voir les variations&#8230;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. D\u00e9finition du format de la r\u00e9ponse<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ceci consiste \u00e0 sp\u00e9cifier le format de la r\u00e9ponse. Les mod\u00e8les sont en effet assez dou\u00e9s pour formatter leur r\u00e9ponse selon un format particulier comme :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>une table<\/li>\n\n\n\n<li>une liste num\u00e9rot\u00e9e<\/li>\n\n\n\n<li>un email<\/li>\n\n\n\n<li>un texte structur\u00e9 au format <em>Markdown<\/em><\/li>\n\n\n\n<li>un tweet (n&rsquo;h\u00e9sitez pas \u00e0 demander d&rsquo;ajouter les hashtags pertinents)<\/li>\n\n\n\n<li>un bloc de code informatique : proc\u00e9dure, fonction&#8230;<\/li>\n\n\n\n<li>un fichier structur\u00e9 (csv, json, yaml&#8230;)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Il suffit de mentionner un texte du style :<em> formate le r\u00e9sultat sous forme de table \/ de code&#8230;.<\/em><br>Le but est ici de vous faciliter la vie pour l&rsquo; exploitation de la r\u00e9ponse&#8230;autant qu&rsquo; elle soit d\u00e9j\u00e0 dans le format qui vous int\u00e9resse pour la suite.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. D\u00e9finition du ton de la r\u00e9ponse<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le ton d\u00e9finit l&rsquo;humeur et le sentiment de la r\u00e9ponse: attendez-vous une r\u00e9ponse structur\u00e9e et analytique ou une r\u00e9ponse enthousiaste et motivante ? Voulez-vous que le ton soit formel et professionel ou familier et informel ? L&rsquo;humour ou l&rsquo;ironie sont-ils acceptables ? D\u00e9sirez-vous que la r\u00e9ponse exprime un sentiment comme l&rsquo;affection, la compassion ou l&rsquo;inqui\u00e9tude ?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quelques exemples :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>R\u00e9ponds dans un style formel<\/em><\/li>\n\n\n\n<li><em>Utilise un style familier dans la r\u00e9ponse<\/em><\/li>\n\n\n\n<li><em>Fournis une r\u00e9ponse ironique ou sarcastique<\/em><\/li>\n\n\n\n<li><em>Sois enthousiaste dans la r\u00e9ponse<\/em><\/li>\n\n\n\n<li><em>Donne une r\u00e9ponse pessimiste<\/em><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A vous de jouer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. Limitations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Soyez toujours conscients des limitations des mod\u00e8les :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bien que les mod\u00e8les de langage soient capables de pr\u00e9senter une liste de <strong>sources<\/strong> d&rsquo;apparence plausible, il arrive souvent que ces sources soient invent\u00e9es. Il est imp\u00e9ratif de rev\u00e9rifier syst\u00e9matiquement les sources et r\u00e9f\u00e9rences mentionn\u00e9es par le mod\u00e8le.<br><\/li>\n\n\n\n<li>Leurs r\u00e9ponses peuvent \u00eatre <strong>biais\u00e9es<\/strong> ou contenir des <strong>pr\u00e9jug\u00e9s<\/strong> qui ne font que refl\u00e9ter ceux existants dans la masse des donn\u00e9es d&rsquo;entra\u00eenement.<br><\/li>\n\n\n\n<li>Ils peuvent <strong>halluciner<\/strong> et g\u00e9n\u00e9rer un contenu incorrect lorsque la r\u00e9ponse n&rsquo;est pas claire pour eux, au lieu de reconna\u00eetre leur ignorance.<br><\/li>\n\n\n\n<li>Leurs comp\u00e9tences en <strong>math\u00e9matiques<\/strong> restent tr\u00e8s limit\u00e9es, et ils ont du mal \u00e0 r\u00e9soudre des probl\u00e8mes math\u00e9matiques m\u00eame \u00e9l\u00e9mentaires comme la multiplication de deux nombres.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Enfin, gardez en m\u00e9moire que tout ceci est un processus it\u00e9ratif, n&rsquo; h\u00e9sitez pas \u00e0 exp\u00e9rimenter avec diff\u00e9rentes d\u00e9finitions de t\u00e2ches, contextes, guidance afin de voir ce qui fonctionne le mieux dans chaque cas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. Notes et r\u00e9f\u00e9rences<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>The Prompting guide<\/em> : <a href=\"https:\/\/promptingguide.ai\">https:\/\/promptingguide.ai<\/a><br><\/li>\n\n\n\n<li><em>Learn prompting<\/em> : <a href=\"https:\/\/learnprompting.org\/\">https:\/\/learnprompting.org\/<\/a><br><\/li>\n\n\n\n<li><em>Prompt engineering guidelines<\/em>, Haystack : <a href=\"https:\/\/docs.haystack.deepset.ai\/docs\/prompt-engineering-guidelines\">https:\/\/docs.haystack.deepset.ai\/docs\/prompt-engineering-guidelines<\/a><br><\/li>\n\n\n\n<li>Rowan Cheung, thread sur Twitter\/X : <a href=\"https:\/\/pic.twitter.com\/I8MIqoaqHf\">https:\/\/pic.twitter.com\/I8MIqoaqHf<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Aujourd&rsquo;hui, nous utilisons des mod\u00e8les de langage pour dialoguer avec l&rsquo;intelligence artificielle. Le \u00ab\u00a0prompt engineering\u00a0\u00bb est crucial pour formuler des questions efficaces. Structurer une demande en six parties aide \u00e0 obtenir des r\u00e9ponses pertinentes.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-923","post","type-post","status-publish","format-standard","hentry","category-modeles-de-langage","post-preview"],"_links":{"self":[{"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/posts\/923","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=923"}],"version-history":[{"count":0,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/posts\/923\/revisions"}],"wp:attachment":[{"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/media?parent=923"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/categories?post=923"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/tags?post=923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}