{"id":289,"date":"2023-06-11T22:54:43","date_gmt":"2023-06-11T20:54:43","guid":{"rendered":"https:\/\/artificiellementintelligent.wordpress.com\/?p=289"},"modified":"2023-06-11T22:54:43","modified_gmt":"2023-06-11T20:54:43","slug":"bases-des-modeles-conversationnels-i-principes-de-fonctionnement","status":"publish","type":"post","link":"https:\/\/artificiellementintelligent.eu\/index.php\/2023\/06\/11\/bases-des-modeles-conversationnels-i-principes-de-fonctionnement\/","title":{"rendered":"Bases des mod\u00e8les conversationnels I : principes de fonctionnement"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">1. Mod\u00e8les de Langage <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Les Mod\u00e8les de Langage se focalisent sur le traitement des langages humains.  On parle aujourd&rsquo;hui de \u00ab\u00a0Grands\u00a0\u00bb Mod\u00e8les de Langage (GML) vu la taille \u00e9norme tant des jeux de donn\u00e9es d&rsquo;entra\u00eenement (des copies de l&rsquo;ensemble de l&rsquo;Internet!) que du nombre de param\u00e8tres internes du mod\u00e8le.  Ils peuvent \u00eatre unilingues ou multilingues en fonction des donn\u00e9es d&rsquo;entra\u00eenement fournies mais la tendance actuelle est au multilinguisme: ChatGPT \u00ab\u00a0converse\u00a0\u00bb en 95 langues. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les (Grands) Mod\u00e8les de Langage fonctionnent de la mani\u00e8re suivante :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ils ont pour principe de <em>chercher \u00e0 pr\u00e9dire le prochain mot d&rsquo;une s\u00e9quence<\/em> <em>de mots <\/em>fournie par l&rsquo;utilisateur. <\/li>\n\n\n\n<li>Cette pr\u00e9diction se fait sous la forme d&rsquo;une distribution de probabilit\u00e9 qui couvre l&rsquo;ensemble des mots possibles (disons le dictionnaire).<\/li>\n\n\n\n<li>Plusieurs m\u00e9canismes sont possibles pour choisir le mot gagnant. Une approche d\u00e9terministe consiste \u00e0 choisir syst\u00e9matiquement le mot avec la probabilit\u00e9 la plus \u00e9lev\u00e9e. Une approche stochastique constituera \u00e0 tirer au hasard dans la distribution de probabilit\u00e9. Le type d&rsquo;approche d\u00e9pend du mod\u00e8le et peut parfois \u00eatre modifi\u00e9 par l&rsquo;utilisateur.<\/li>\n\n\n\n<li>le mot pr\u00e9dit est alors ajout\u00e9 \u00e0 la s\u00e9quence  et le mod\u00e8le est ex\u00e9cut\u00e9 \u00e0 nouveau avec la s\u00e9quence compl\u00e9t\u00e9e avec le mot g\u00e9n\u00e9r\u00e9, pour pr\u00e9dire le mot suivant.<\/li>\n\n\n\n<li>Ce m\u00e9canisme est ex\u00e9cut\u00e9 r\u00e9p\u00e9titivement autant de fois que n\u00e9cessaire jusqu&rsquo;\u00e0 l&rsquo;occurence d&rsquo;un mot sp\u00e9cial qui signifie la fin du texte (pensez au \u00ab\u00a0STOP\u00a0\u00bb des t\u00e9l\u00e9grammes).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Vous trouverez ci-dessous une illustration simple de ce m\u00e9canisme pour la s\u00e9quence initiale \u00ab\u00a0J&rsquo;ai une voiture&#8230;\u00a0\u00bb que le mod\u00e8le compl\u00e9tera en trois \u00e9tapes en \u00ab\u00a0J&rsquo;ai une voiture depuis hier.\u00a0\u00bb.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/artificiellementintelligent.wordpress.com\/wp-content\/uploads\/2023\/06\/image-6.png?w=1024\" alt=\"\" class=\"wp-image-355\" \/><figcaption class=\"wp-element-caption\">Figure 1 &#8211; Premi\u00e8re \u00e9tape<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/artificiellementintelligent.wordpress.com\/wp-content\/uploads\/2023\/06\/image-5.png?w=1024\" alt=\"\" class=\"wp-image-354\" \/><figcaption class=\"wp-element-caption\">Figure 2 : Deuxi\u00e8me \u00e9tape<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/artificiellementintelligent.wordpress.com\/wp-content\/uploads\/2023\/06\/image-7.png?w=1024\" alt=\"\" class=\"wp-image-360\" \/><figcaption class=\"wp-element-caption\">Figure 3 : Troisi\u00e8me et derni\u00e8re \u00e9tape<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">L&rsquo; explication ci-dessus est conceptuellement correcte, mais les mod\u00e8les actuels contiennent une astuce suppl\u00e9mentaire : ils ne pr\u00e9disent pas des mots mais des <em>tokens <\/em>qui sont des parties de mots. Ils ressemblent plut\u00f4t \u00e0 des syllabes que des mots. C&rsquo;est notamment ce qui permet le multilinguisme.  Nous y reviendrons dans un article ult\u00e9rieur. Mais c&rsquo;est un detail technique qui ne doit pas nous distraire du principe expliqu\u00e9 ci-dessus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les grands mod\u00e8les de langage sont aussi des g\u00e9n\u00e9ralistes au niveau du type de narration;  ils ne privil\u00e9gient pas le dialogue sur d&rsquo;autres formes discursives. En d&rsquo;autres termes, ils ne r\u00e9pondront pas n\u00e9cessairement \u00e0 une question par une r\u00e9ponse. Ils sont donc tout \u00e0 fait capables de ne pas r\u00e9pondre \u00e0 la question voire de r\u00e9pondre par une autre question si cela leur semble plus plausible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tournons-nous maintenant vers les mod\u00e8les de langage sp\u00e9cialis\u00e9s en question-r\u00e9ponse et conversationnels, qui adressent pr\u00e9cis\u00e9ment ce point.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Mod\u00e8les de langages question\/r\u00e9ponse et conversationnels<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Les mod\u00e8les <em>Question\/r\u00e9ponse<\/em> sont des mod\u00e8les d\u00e9riv\u00e9s ayant re\u00e7u un entra\u00eenement compl\u00e9mentaire qui les pousse \u00e0 fournir une r\u00e9ponse lorsqu&rsquo;une question est pos\u00e9e, en utilisant la base de connaissance int\u00e9gr\u00e9e dans le mod\u00e8le lors de l&rsquo;entra\u00eenement g\u00e9n\u00e9raliste. Ceci rend ce genre de mod\u00e8le beaucoup plus appropri\u00e9 pour une interaction avec des \u00eatres humains.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les mod\u00e8les <em>conversationnels <\/em>sont un raffinement suppl\u00e9mentaire consiste \u00e0 entra\u00eener le mod\u00e8le \u00e0 tenir compte de l&rsquo;ensemble d&rsquo;un dialogue pass\u00e9 avec l&rsquo;utilisateur -soit potentiellement plusieurs questions-r\u00e9ponses- lors de l&rsquo;\u00e9laboration de la r\u00e9ponse. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour prendre le cas concret d&rsquo;OpenAI, Les mod\u00e8les GPT2,3 et 4 sont des mod\u00e8les g\u00e9n\u00e9ralistes de puissance expressive croissante; <em>InstructGPT<\/em> est un mod\u00e8le Question\/R\u00e9ponse d\u00e9rive de GPT et <em>ChatGPT<\/em> est un mod\u00e8le conversationnel d\u00e9riv\u00e9 d&rsquo; InstructGPT.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. V\u00e9racit\u00e9 et hallucinations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lors de l&rsquo;entra\u00eenement compl\u00e9mentaire, les d\u00e9veloppeurs du syst\u00e8me vont \u00e9galement tenter de privil\u00e9gier les r\u00e9ponses v\u00e9ridiques, honn\u00eates et inoffensives. Mais ce n&rsquo;est pas si simple que cela en a l&rsquo;air. Le but du syst\u00e8me est de compl\u00e9ter la s\u00e9quence de la mani\u00e8re la plus plausible selon son propre mod\u00e8le, ce comportement se rapproche plus du baratin que de l&rsquo;honn\u00eatet\u00e9. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ces mod\u00e8les sont donc de brillants baratineurs et l&rsquo;utilisateur sera bien averti de TOUJOURS revalider et v\u00e9rifier le texte g\u00e9n\u00e9r\u00e9. Ne faites pas comme cet avocat aux USA qui a remis une plaidoierie g\u00e9n\u00e9r\u00e9e par ChatGPT sans la relire, qui contenait toute une jurisprudence invent\u00e9e de toutes pi\u00e8ces par notre espi\u00e8gle serviteur informatique. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On dit dans le jargon de l&rsquo;IA que le mod\u00e8le hallucine. Une <em>hallucination<\/em> est une d\u00e9claration du mod\u00e8le qui semble plausible mais s&rsquo;av\u00e8re \u00eatre fausse. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Apprentissage sp\u00e9cialis\u00e9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Les mod\u00e8les de langage \u00e9tant \u00e0 la base entra\u00een\u00e9s sur un corpus de texte g\u00e9n\u00e9raliste, il peut \u00eatre int\u00e9ressant de leur fournir un entra\u00eenement compl\u00e9mentaire dans un domaine sp\u00e9cifique si vous avez une application pr\u00e9cise en t\u00eate. Par exemple un entra\u00eenement sur les codes de loi pour une application juridique ou des ouvrage m\u00e9dicaux de r\u00e9f\u00e9rence pour une application dans le secteur de la sant\u00e9, afin d&rsquo;enrichir la puissance expressive du mod\u00e8le dans la direction recherch\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cela reste un exercice relativement complexe qui va demander de faire appel \u00e0 des experts : un corpus sp\u00e9cialis\u00e9 de texte va devoir \u00eatre identifi\u00e9, pr\u00e9trait\u00e9 puis les param\u00e8tres du mod\u00e8le modifi\u00e9s sur base de l&rsquo;entra\u00eenement sur ce jeu de donn\u00e9es, suivi d&rsquo;une phase de test et de validation. L&rsquo; avantage de cette approche est que la connaissance du mod\u00e8le est d\u00e9finitivement enrichie. Les interactions futures entre un utilisateur et le mod\u00e8le sur le sujet seront plus fructueuses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une solution plus rudimentaire consiste \u00e0 fournir un petit nombre d&rsquo;exemples (de questions et r\u00e9ponses correctes) dans le texte de la question initiale afin d&rsquo; orienter le mod\u00e8le dans la bonne direction pendant l&rsquo;ex\u00e9cution. On appelle cela l&rsquo;apprentissage dans le contexte (<em>in-context learning<\/em>). Il s&rsquo;agit d&rsquo;une des techniques de <em>prompting<\/em> que nous verrons dans le prochain article.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les Mod\u00e8les de Langage se concentrent sur le traitement des langues humaines, utilisant des \u00ab Grands \u00bb Mod\u00e8les de Langage fonctionnant par pr\u00e9diction de mots. Les mod\u00e8les sp\u00e9cialis\u00e9s en question-r\u00e9ponse et conversationnels offrent une interaction plus adapt\u00e9e \u00e0 l&rsquo;humain. Certains mod\u00e8les peuvent g\u00e9n\u00e9rer des r\u00e9ponses trompeuses, n\u00e9cessitant une validation par l&rsquo;utilisateur. Des possibilit\u00e9s d&rsquo;entra\u00eenement sp\u00e9cialis\u00e9 dans un domaine sp\u00e9cifique sont \u00e9galement envisageables pour enrichir les capacit\u00e9s des mod\u00e8les.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-289","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\/289","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=289"}],"version-history":[{"count":0,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/posts\/289\/revisions"}],"wp:attachment":[{"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/media?parent=289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/categories?post=289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artificiellementintelligent.eu\/index.php\/wp-json\/wp\/v2\/tags?post=289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}