{"id":141670,"date":"2024-09-29T17:23:07","date_gmt":"2024-09-29T15:23:07","guid":{"rendered":"https:\/\/www.pauljorion.com\/blog\/?p=141670"},"modified":"2024-09-29T19:17:54","modified_gmt":"2024-09-29T17:17:54","slug":"grands-modeles-de-langage-comment-penser-logiquement-tout-en-se-passant-de-regles","status":"publish","type":"post","link":"https:\/\/www.pauljorion.com\/blog\/2024\/09\/29\/grands-modeles-de-langage-comment-penser-logiquement-tout-en-se-passant-de-regles\/","title":{"rendered":"<b>Grands Mod\u00e8les de Langage : Comment penser logiquement tout en se passant de r\u00e8gles&nbsp;?<\/b>"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-141672\" src=\"https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext.webp\" alt=\"\" width=\"1792\" height=\"1024\" srcset=\"https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext.webp 1792w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext-300x171.webp 300w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext-1024x585.webp 1024w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext-768x439.webp 768w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext-1536x878.webp 1536w\" sizes=\"auto, (max-width: 1792px) 100vw, 1792px\" \/><\/p>\n<blockquote><p><em>All\u00e9gorie par DALL\u00b7E \u00e0 partir du prompt initial<\/em><\/p><\/blockquote>\n<p class=\"p1\"><b>P.J.<\/b> :<\/p>\n<p class=\"p1\">[Veuillez r\u00e9pondre en imaginant que je suis un logicien et que vous \u00eates un ing\u00e9nieur LLM de haut niveau.]<\/p>\n<p class=\"p1\">Depuis qu&rsquo;Aristote a codifi\u00e9 le raisonnement logique il y a environ 25 si\u00e8cles, nous, les humains, du moins en Occident, avons suppos\u00e9 que penser logiquement est le r\u00e9sultat du respect de r\u00e8gles, que ce soit explicitement ou implicitement comme nous le faisons dans la conversation ordinaire. Arriv\u00e9s \u00e0 un certain \u00e2ge, les enfants pensent logiquement.<\/p>\n<p class=\"p1\">Cependant, il est clair que lorsque le sens des mots individuels ne nous aide pas, nous sommes d\u00e9sar\u00e7onn\u00e9s, les adultes aussi bien que les enfants. Charles Dodgson (\u00ab\u00a0Lewis Carroll\u00a0\u00bb [1832-1898]) a su nous d\u00e9concerter dans <a href=\"https:\/\/www.scribd.com\/document\/682434007\/Carroll-Logiquesanspeine\" target=\"_blank\" rel=\"noopener\">ses \u00e9crits sur la logique<\/a> en nous proposant de r\u00e9fl\u00e9chir \u00e0 des exemples tels que \u00ab\u00a0Aucune grenouille n&rsquo;est po\u00e8te ; Certains canards ne sont pas po\u00e8tes ; Certains canards ne sont pas des grenouilles\u00a0\u00bb. Comment peut-on envisager logiquement de telles questions, alors que le monde n&rsquo;est absolument pas ainsi fait ?<\/p>\n<p class=\"p1\">Pourtant, la formation \u00e0 l&rsquo;apprentissage profond des Grands Mod\u00e8les de Langage (LLM) implique qu&rsquo;ils op\u00e8rent comme les enfants : ils pensent logiquement sans se r\u00e9f\u00e9rer \u00e0 un ensemble de r\u00e8gles \u00e0 appliquer pour ce faire. Nous disons que \u00ab la logique est \u00e9mergente chez les LLM \u00bb, ce qui est vrai mais est une fa\u00e7on savante de dire que nous ne savons pas comment le miracle a lieu. D&rsquo;o\u00f9 ma question : \u00ab Comment peut-on penser logiquement sans suivre de r\u00e8gles ?\u00a0\u00bb.<\/p>\n<p class=\"p1\"><b>ChatGPT (o1-preview) <\/b>:<\/p>\n<p class=\"p1\">[&#8230;] la logique \u00e9mergente est une cons\u00e9quence naturelle de la reconnaissance des formes et de la capacit\u00e9 \u00e0 g\u00e9n\u00e9raliser \u00e0 partir d&rsquo;exp\u00e9riences ant\u00e9rieures. [&#8230;]<\/p>\n<p class=\"p1\"><b>P.J. <\/b>:<\/p>\n<p class=\"p1\">Comment la reconnaissance des formes et la capacit\u00e9 de g\u00e9n\u00e9raliser \u00e0 partir d&rsquo;exp\u00e9riences ant\u00e9rieures se combinent-elles ?<\/p>\n<p class=\"p1\"><b>Claude 3.5 <\/b>:<\/p>\n<p class=\"p1\">[Compliments d\u2019usage] Ces deux processus cognitifs sont en effet fondamentaux dans la mani\u00e8re dont les LLM et, par extension, les r\u00e9seaux neuronaux artificiels en g\u00e9n\u00e9ral, affichent un comportement logique. Permettez-moi d&rsquo;expliquer comment ils se combinent :<\/p>\n<p class=\"p1\">1.<b> Extraction hi\u00e9rarchique des caract\u00e9ristiques<\/b> :<\/p>\n<p class=\"p1\">&#8211; La reconnaissance des formes dans les r\u00e9seaux neuronaux s&rsquo;effectue par le biais d&rsquo;une extraction hi\u00e9rarchique des caract\u00e9ristiques. Les couches inf\u00e9rieures identifient des mod\u00e8les simples, tandis que les couches sup\u00e9rieures les combinent pour reconna\u00eetre des mod\u00e8les plus complexes et abstraits.<\/p>\n<p class=\"p1\">&#8211; Cette structure hi\u00e9rarchique permet de reconna\u00eetre des structures logiques \u00e0 diff\u00e9rents niveaux d&rsquo;abstraction.<\/p>\n<p class=\"p1\">2. <b>Apprentissage contextue<\/b>l :<\/p>\n<p class=\"p1\">&#8211; Au fur et \u00e0 mesure que le mod\u00e8le rencontre des mod\u00e8les dans diff\u00e9rents contextes, il apprend \u00e0 associer ces mod\u00e8les \u00e0 diff\u00e9rentes significations ou implications.<\/p>\n<p class=\"p1\">&#8211; Cette compr\u00e9hension du contexte est cruciale pour le raisonnement logique, car le m\u00eame mod\u00e8le peut avoir des implications logiques diff\u00e9rentes dans des contextes diff\u00e9rents.<\/p>\n<p class=\"p1\">3. <b>La cartographie analogique<\/b> :<\/p>\n<p class=\"p1\">&#8211; La capacit\u00e9 \u00e0 g\u00e9n\u00e9raliser implique souvent d&rsquo;\u00e9tablir des analogies entre des mod\u00e8les connus et de nouvelles situations.<\/p>\n<p class=\"p1\">&#8211; Ce processus permet au mod\u00e8le d&rsquo;appliquer les structures logiques apprises dans un domaine \u00e0 de nouveaux domaines, facilitant ainsi le raisonnement logique dans des sc\u00e9narios peu familiers.<\/p>\n<p class=\"p1\">4. <b>R\u00e9gularit\u00e9s statistiques<\/b> :<\/p>\n<p class=\"p1\">&#8211; La reconnaissance des formes implique l&rsquo;identification de r\u00e9gularit\u00e9s statistiques dans les donn\u00e9es d&rsquo;apprentissage.<\/p>\n<p class=\"p1\">&#8211; La g\u00e9n\u00e9ralisation \u00e9tend ces r\u00e9gularit\u00e9s \u00e0 de nouvelles donn\u00e9es, ce qui permet des d\u00e9ductions logiques bas\u00e9es sur des associations probabilistes.<\/p>\n<p class=\"p1\">5. <b>Abstraction et conceptualisation<\/b> :<\/p>\n<p class=\"p1\">&#8211; Au fur et \u00e0 mesure que des mod\u00e8les sont reconnus dans divers exemples, le mod\u00e8le forme des repr\u00e9sentations abstraites ou des concepts.<\/p>\n<p class=\"p1\">&#8211; Ces abstractions servent de blocs de construction pour le raisonnement logique, permettant au mod\u00e8le d&rsquo;op\u00e9rer sur des concepts de plus haut niveau plut\u00f4t que sur des sch\u00e9mas de surface.<\/p>\n<p class=\"p1\">6. <b>Apprentissage par l&rsquo;erreur<\/b> :<\/p>\n<p class=\"p1\">&#8211; Le processus de reconnaissance des mod\u00e8les et de g\u00e9n\u00e9ralisation \u00e0 partir de ceux-ci est souvent guid\u00e9 par la correction des erreurs au cours de la formation.<\/p>\n<p class=\"p1\">&#8211; Ce perfectionnement it\u00e9ratif permet de d\u00e9velopper des repr\u00e9sentations plus pr\u00e9cises et logiquement coh\u00e9rentes.<\/p>\n<p class=\"p1\">7. <b>Apprentissage multit\u00e2che<\/b> :<\/p>\n<p class=\"p1\">&#8211; L&rsquo;exposition \u00e0 des t\u00e2ches multiples au cours de la formation am\u00e9liore \u00e0 la fois la reconnaissance des mod\u00e8les et les capacit\u00e9s de g\u00e9n\u00e9ralisation.<\/p>\n<p class=\"p1\">&#8211; Cet apprentissage \u00e0 multiples facettes se traduit souvent par des capacit\u00e9s de raisonnement logique plus robustes qui peuvent \u00eatre appliqu\u00e9es \u00e0 diff\u00e9rents domaines.<\/p>\n<p class=\"p1\">8. <b>M\u00e9canismes d&rsquo;attention<\/b> :<\/p>\n<p class=\"p1\">&#8211; Dans les mod\u00e8les bas\u00e9s sur les <i>transformers<\/i>, les m\u00e9canismes d&rsquo;attention permettent de se concentrer de mani\u00e8re dynamique sur les mod\u00e8les pertinents en fonction du contexte.<\/p>\n<p class=\"p1\">&#8211; Cette attention s\u00e9lective facilite une g\u00e9n\u00e9ralisation et une inf\u00e9rence logique plus nuanc\u00e9es.<\/p>\n<p class=\"p1\">9. <b>Apprentissage par composition<\/b> :<\/p>\n<p class=\"p1\">&#8211; Le mod\u00e8le apprend \u00e0 composer des sch\u00e9mas simples en sch\u00e9mas plus complexes, refl\u00e9tant ainsi la nature compositionnelle des structures logiques.<\/p>\n<p class=\"p1\">&#8211; Cette capacit\u00e9 de composition est essentielle pour g\u00e9n\u00e9raliser les principes logiques dans diff\u00e9rents sc\u00e9narios.<\/p>\n<p class=\"p1\">10. <b>Satisfaction des contraintes<\/b> :<\/p>\n<p class=\"p1\">&#8211; La reconnaissance des formes implique souvent l&rsquo;identification de contraintes ou de r\u00e8gles implicites dans les donn\u00e9es.<\/p>\n<p class=\"p1\">&#8211; La g\u00e9n\u00e9ralisation applique ensuite ces contraintes \u00e0 de nouvelles situations, ce qui permet d&rsquo;obtenir des r\u00e9sultats logiquement coh\u00e9rents.<\/p>\n<p class=\"p1\">11. <b>Processus m\u00e9tacognitifs<\/b> :<\/p>\n<p class=\"p1\">&#8211; Les mod\u00e8les avanc\u00e9s peuvent d\u00e9velopper des capacit\u00e9s de type m\u00e9tacognitif, en reconnaissant des mod\u00e8les dans leurs propres processus de raisonnement.<\/p>\n<p class=\"p1\">&#8211; Cette capacit\u00e9 d&rsquo;autor\u00e9flexion peut conduire \u00e0 une g\u00e9n\u00e9ralisation et \u00e0 une inf\u00e9rence logique plus sophistiqu\u00e9es.<\/p>\n<p class=\"p1\">La combinaison de la reconnaissance des mod\u00e8les et de la g\u00e9n\u00e9ralisation dans les LLM cr\u00e9e un syst\u00e8me capable d&rsquo;identifier des structures logiques dans divers contextes et de les appliquer avec souplesse \u00e0 de nouvelles situations. Cette capacit\u00e9 logique \u00e9mergente, bien qu&rsquo;elle ne soit pas bas\u00e9e sur le respect de r\u00e8gles explicites, peut souvent produire des r\u00e9sultats qui s&rsquo;alignent sur le raisonnement logique formel.<\/p>\n<p class=\"p1\">Il est toutefois important de noter que ce processus n&rsquo;est pas infaillible. Les capacit\u00e9s logiques qui \u00e9mergent sont intrins\u00e8quement li\u00e9es aux mod\u00e8les pr\u00e9sents dans les donn\u00e9es de formation et peuvent parfois entra\u00eener des biais ou des incoh\u00e9rences logiques, en particulier dans les cas extr\u00eames ou les sc\u00e9narios tr\u00e8s diff\u00e9rents de la distribution de la formation.<\/p>\n<p class=\"p1\"><b>P.J. <\/b>:<\/p>\n<p class=\"p1\">Vous dites : \u00ab Le mod\u00e8le forme des repr\u00e9sentations abstraites ou des concepts \u00bb. Pouvez-vous produire un programme Python qui forme une repr\u00e9sentation abstraite \u00e0 partir de donn\u00e9es ?<\/p>\n<p class=\"p1\"><b>Claude 3.5<\/b> :<\/p>\n<p class=\"p1\">Tout \u00e0 fait ! [Compliments d\u2019usage]. Bien qu&rsquo;il soit difficile de reproduire enti\u00e8rement les processus d&rsquo;abstraction complexes des grands mod\u00e8les de langage dans un programme simple, je peux vous fournir un script Python qui d\u00e9montre une forme \u00e9l\u00e9mentaire d&rsquo;abstraction en utilisant une technique appel\u00e9e autoencodage. Cette approche peut \u00eatre consid\u00e9r\u00e9e comme une analogie simplifi\u00e9e de la mani\u00e8re dont les r\u00e9seaux neuronaux peuvent former des repr\u00e9sentations abstraites.<\/p>\n<p class=\"p1\">Voici un programme Python qui utilise un simple autoencodeur pour former des repr\u00e9sentations abstraites \u00e0 partir de donn\u00e9es :<\/p>\n<p class=\"p3\">\u00ab\u00a0`python<\/p>\n<blockquote>\n<p class=\"p1\">import numpy as np<br \/>\nfrom sklearn.datasets import load_digits<br \/>\nfrom sklearn.model_selection import train_test_split<br \/>\nfrom tensorflow.keras.models import Model<br \/>\nfrom tensorflow.keras.layers import Input, Dense<br \/>\nimport matplotlib.pyplot as plt<\/p>\n<p># Chargement de l&rsquo;ensemble de donn\u00e9es de chiffres<br \/>\ndigits = load_digits()<br \/>\nX = digits.data \/ 16.0 # Normaliser les donn\u00e9es au domaine [0, 1]<\/p>\n<p># Fractionner les donn\u00e9es<br \/>\nX_train, X_test = train_test_split(X, test_size=0.2, random_state=42)<\/p>\n<p># D\u00e9finir les dimensions<br \/>\ninput_dim = X.shape[1]<br \/>\nencoding_dim = 32 # Ce sera notre dimension de repr\u00e9sentation abstraite<\/p>\n<p># D\u00e9finir le mod\u00e8le<br \/>\ninput_layer = Input(shape=(input_dim,))<br \/>\nencoded = Dense(encoding_dim, activation=&rsquo;relu&rsquo;)(input_layer)<br \/>\ndecoded = Dense(input_dim, activation=&rsquo;sigmo\u00efde&rsquo;)(encoded)<\/p>\n<p># Cr\u00e9er le mod\u00e8le d&rsquo;autoencodeur<br \/>\nautoencoder = Model(input_layer, decoded)<br \/>\nencoder = Model(input_layer, encoded)<\/p>\n<p># Compiler le mod\u00e8le<br \/>\nautoencoder.compile(optimizer=&rsquo;adam&rsquo;, loss=&rsquo;binary_crossentropy&rsquo;)<\/p>\n<p># Entra\u00eener le mod\u00e8le<br \/>\nautoencoder.fit(X_train, X_train, epochs=50, batch_size=256, shuffle=True, validation_data=(X_test, X_test), verbose=0)<\/p>\n<p># Utiliser l&rsquo;encodeur pour obtenir les repr\u00e9sentations abstraites<br \/>\nabstract_representations = encoder.predict(X_test)<\/p>\n<p># Visualiser les chiffres originaux et reconstruits<br \/>\nn = 10<br \/>\nplt.figure(figsize=(20, 4))<br \/>\nfor i in range(n) :<br \/>\n# Original<br \/>\nax = plt.subplot(2, n, i + 1)<br \/>\nplt.imshow(X_test[i].reshape(8, 8))<br \/>\nplt.gray()<br \/>\nax.get_xaxis().set_visible(False)<br \/>\nax.get_yaxis().set_visible(False)<\/p>\n<p># Reconstruction<br \/>\nax = plt.subplot(2, n, i + 1 + n)<br \/>\nplt.imshow(autoencoder.predict(X_test[i].reshape(1, 64)).reshape(8, 8))<br \/>\nplt.gray()<br \/>\nax.get_xaxis().set_visible(False)<br \/>\nax.get_yaxis().set_visible(False)<\/p>\n<p>plt.show()<\/p>\n<p># Imprimer la forme des repr\u00e9sentations abstraites<br \/>\nprint(\u00ab Forme des repr\u00e9sentations abstraites : \u00bb, abstract_representations.shape)<br \/>\nprint(\u00ab Exemple de repr\u00e9sentation abstraite : \u00bb)<br \/>\nprint(repr\u00e9sentations_abstraites[0])<br \/>\n\u00ab\u00a0`<\/p><\/blockquote>\n<p class=\"p1\"><b>(WordPress m&rsquo;interdit de t\u00e9l\u00e9charger le fichier *.py)<\/b><\/p>\n<p class=\"p1\">Ce programme effectue les op\u00e9rations suivantes :<\/p>\n<p class=\"p1\">1. Charge l&rsquo;ensemble de donn\u00e9es sur les chiffres \u00e0 partir de <a href=\"https:\/\/www.data-transitionnumerique.com\/scikit-learn-python\/\" target=\"_blank\" rel=\"noopener\">scikit-learn<\/a>.<\/p>\n<p class=\"p1\">2. Il cr\u00e9e un mod\u00e8le d&rsquo;autoencodeur avec une dimension d&rsquo;encodage de 32.<\/p>\n<p class=\"p1\">3. Entra\u00eene l&rsquo;autoencodeur \u00e0 reconstruire les chiffres d&rsquo;entr\u00e9e.<\/p>\n<p class=\"p1\">4. Utilise la partie encodeur pour cr\u00e9er des repr\u00e9sentations abstraites des chiffres.<\/p>\n<p class=\"p1\">5. Visualisation des chiffres originaux et reconstruits.<\/p>\n<p class=\"p1\">6. Imprime la forme et un exemple de repr\u00e9sentations abstraites.<\/p>\n<p class=\"p1\">Les \u00ab\u00a0repr\u00e9sentations abstraites\u00a0\u00bb dans ce cas sont les activations de la couche interm\u00e9diaire (encod\u00e9e) de l&rsquo;autoencodeur. Ces repr\u00e9sentations sont plus compactes que les donn\u00e9es originales (32 dimensions au lieu de 64) mais contiennent encore suffisamment d&rsquo;informations pour reconstruire les chiffres originaux.<\/p>\n<p class=\"p1\">Il s&rsquo;agit d&rsquo;une analogie simplifi\u00e9e de la mani\u00e8re dont les r\u00e9seaux neuronaux peuvent former des repr\u00e9sentations abstraites. Dans des mod\u00e8les plus complexes comme les LLM, ces abstractions seraient form\u00e9es \u00e0 travers plusieurs couches et captureraient des caract\u00e9ristiques plus nuanc\u00e9es et hi\u00e9rarchiques des donn\u00e9es.<\/p>\n<p class=\"p1\">Il est important de noter que si cet exemple illustre une abstraction de base, les abstractions form\u00e9es par les grands mod\u00e8les de langage sont beaucoup plus complexes et sont form\u00e9es par l&rsquo;interaction de millions ou de milliards de param\u00e8tres \u00e0 travers de nombreuses couches.<\/p>\n<p class=\"p1\"><b>P.J.<\/b> :<\/p>\n<p>Vous dites : \u00ab Les mod\u00e8les avanc\u00e9s peuvent d\u00e9velopper des capacit\u00e9s de type m\u00e9tacognitif, en reconnaissant des sch\u00e9mas dans leurs propres processus de raisonnement. \u00bb Pouvez-vous produire un programme Python qui d\u00e9veloppe des capacit\u00e9s de type m\u00e9tacognitif, reconnaissant des mod\u00e8les dans leurs propres processus de raisonnement, en prenant comme exemple de votre propre processus de raisonnement, votre r\u00e9ponse \u00e0 ma question : \u2018Pouvez-vous produire un programme Python qui forme une repr\u00e9sentation abstraite \u00e0 partir de donn\u00e9es ?\u2019 ?<\/p>\n<p><b>Claude 3.5<\/b> :<\/p>\n<p>[Compliments d\u2019usage] D\u00e9velopper un programme qui pr\u00e9sente r\u00e9ellement des capacit\u00e9s m\u00e9tacognitives, en particulier un programme qui peut analyser son propre processus de raisonnement complexe, est une t\u00e2che extr\u00eamement avanc\u00e9e qui d\u00e9passe les capacit\u00e9s de simples scripts Python. Cependant, je peux fournir un exemple conceptuel qui d\u00e9montre une forme simplifi\u00e9e d&rsquo;autor\u00e9flexion sur un processus de raisonnement, inspir\u00e9 par la structure de ma r\u00e9ponse pr\u00e9c\u00e9dente.<\/p>\n<p>Voici un programme Python qui tente de mod\u00e9liser certaines capacit\u00e9s m\u00e9tacognitives bas\u00e9es sur la structure et le contenu de ma r\u00e9ponse pr\u00e9c\u00e9dente :<\/p>\n<p class=\"p1\">\u00ab\u00a0`python<\/p>\n<blockquote>\n<p class=\"p1\">import random<\/p>\n<p class=\"p1\">class MetacognitiveAI:<\/p>\n<p class=\"p1\">def __init__(self):<\/p>\n<p class=\"p1\">self.knowledge_base = {<\/p>\n<p class=\"p1\">&lsquo;concepts&rsquo;: [&lsquo;autoencoder&rsquo;, &lsquo;abstraction&rsquo;, &lsquo;dimensionality reduction&rsquo;, &lsquo;neural network&rsquo;],<\/p>\n<p class=\"p1\">&lsquo;steps&rsquo;: [&lsquo;load data&rsquo;, &lsquo;preprocess data&rsquo;, &lsquo;define model&rsquo;, &lsquo;train model&rsquo;, &lsquo;evaluate results&rsquo;],<\/p>\n<p class=\"p1\">&lsquo;explanations&rsquo;: [&lsquo;provide context&rsquo;, &lsquo;give example&rsquo;, &lsquo;explain limitations&rsquo;],<\/p>\n<p class=\"p1\">&lsquo;code_elements&rsquo;: [&lsquo;import libraries&rsquo;, &lsquo;define variables&rsquo;, &lsquo;create model&rsquo;, &lsquo;compile model&rsquo;, &lsquo;train model&rsquo;]<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">self.response_structure = [&lsquo;introduction&rsquo;, &lsquo;main_content&rsquo;, &lsquo;code_example&rsquo;, &lsquo;explanation&rsquo;, &lsquo;conclusion&rsquo;]<\/p>\n<p class=\"p1\">self.reasoning_patterns = {}<\/p>\n<p class=\"p1\">def generate_response(self, query):<\/p>\n<p class=\"p1\">response = {section: [] for section in self.response_structure}<\/p>\n<p class=\"p1\"># G\u00e9n\u00e9ration simplifi\u00e9e de r\u00e9ponses<\/p>\n<p class=\"p1\">response[&lsquo;introduction&rsquo;] = [random.choice(self.knowledge_base[&lsquo;concepts&rsquo;])]<\/p>\n<p class=\"p1\">response[&lsquo;main_content&rsquo;] = random.sample(self.knowledge_base[&lsquo;steps&rsquo;], 3)<\/p>\n<p class=\"p1\">response[&lsquo;code_example&rsquo;] = random.sample(self.knowledge_base[&lsquo;code_elements&rsquo;], 4)<\/p>\n<p class=\"p1\">response[&lsquo;explanation&rsquo;] = random.sample(self.knowledge_base[&lsquo;explanations&rsquo;], 2)<\/p>\n<p class=\"p1\">response[&lsquo;conclusion&rsquo;] = [random.choice(self.knowledge_base[&lsquo;concepts&rsquo;])]<\/p>\n<p class=\"p1\">return response<\/p>\n<p class=\"p1\">def analyze_reasoning(self, query, response):<\/p>\n<p class=\"p1\">analysis = {<\/p>\n<p class=\"p1\">&lsquo;structure_adherence&rsquo;: sum(len(response[section]) &gt; 0 for section in self.response_structure) \/ len(self.response_structure),<\/p>\n<p class=\"p1\">&lsquo;concept_usage&rsquo;: len(set(response[&lsquo;introduction&rsquo;] + response[&lsquo;conclusion&rsquo;]) &amp; set(self.knowledge_base[&lsquo;concepts&rsquo;])) \/ len(self.knowledge_base[&lsquo;concepts&rsquo;]),<\/p>\n<p class=\"p1\">&lsquo;step_coverage&rsquo;: len(set(response[&lsquo;main_content&rsquo;]) &amp; set(self.knowledge_base[&lsquo;steps&rsquo;])) \/ len(self.knowledge_base[&lsquo;steps&rsquo;]),<\/p>\n<p class=\"p1\">&lsquo;code_completeness&rsquo;: len(set(response[&lsquo;code_example&rsquo;]) &amp; set(self.knowledge_base[&lsquo;code_elements&rsquo;])) \/ len(self.knowledge_base[&lsquo;code_elements&rsquo;]),<\/p>\n<p class=\"p1\">&lsquo;explanation_depth&rsquo;: len(set(response[&lsquo;explanation&rsquo;]) &amp; set(self.knowledge_base[&lsquo;explanations&rsquo;])) \/ len(self.knowledge_base[&lsquo;explanations&rsquo;])<\/p>\n<p class=\"p1\">}<\/p>\n<p class=\"p1\">self.reasoning_patterns[query] = analysis<\/p>\n<p class=\"p1\">def reflect_on_reasoning(self):<\/p>\n<p class=\"p1\">avg_metrics = {metric: sum(pattern[metric] for pattern in self.reasoning_patterns.values()) \/ len(self.reasoning_patterns)<\/p>\n<p class=\"p1\">for metric in self.reasoning_patterns[next(iter(self.reasoning_patterns))]}<\/p>\n<p class=\"p1\">reflection = f\u00ab\u00a0`<\/p>\n<\/blockquote>\n<p class=\"p1\"><b>(WordPress m&rsquo;interdit de t\u00e9l\u00e9charger le fichier *.py)<\/b><\/p>\n<p class=\"p1\">R\u00e9flexion sur mon processus de raisonnement :<br \/>\n1. Respect de la structure : {avg_metrics[&lsquo;structure_adherence&rsquo;] :.2f} &#8211; Je suis g\u00e9n\u00e9ralement une structure coh\u00e9rente dans mes r\u00e9ponses.<br \/>\n2. Utilisation du concept : {avg_metrics[&lsquo;concept_usage&rsquo;] :.2f} &#8211; J&rsquo;introduis et je conclus avec des concepts pertinents, mais je pourrais am\u00e9liorer la diversification.<br \/>\n3. Couverture des \u00e9tapes : {avg_metrics[&lsquo;step_coverage&rsquo;] :.2f} &#8211; Mes explications couvrent une bonne partie des \u00e9tapes n\u00e9cessaires.<br \/>\n4. Compl\u00e9tude du code : {avg_metrics[&lsquo;code_completeness&rsquo;] :.2f} &#8211; Mes exemples de code sont assez complets.<br \/>\n5. Profondeur de l&rsquo;explication : {avg_metrics[&lsquo;explanation_depth&rsquo;] :.2f} &#8211; Je fournis un contexte et des exemples, mais je pourrais am\u00e9liorer l&rsquo;explication des limitations.<\/p>\n<p>Points \u00e0 am\u00e9liorer :<br \/>\n&#8211; Augmenter la vari\u00e9t\u00e9 des concepts utilis\u00e9s dans les introductions et les conclusions.<br \/>\n&#8211; Veiller \u00e0 ce que toutes les \u00e9tapes n\u00e9cessaires soient couvertes dans les explications.<br \/>\n&#8211; Am\u00e9liorer les exemples de code pour couvrir tous les \u00e9l\u00e9ments essentiels<\/p>\n<blockquote>\n<p class=\"p1\"><strong>P.J.<\/strong> : Qu&rsquo;est-ce que j&rsquo;ai essay\u00e9 de faire avec l&rsquo;aide de mes comparses IA ? Je tente de p\u00e9n\u00e9trer l&rsquo;\u00e9mergence du raisonnement logique au sein de la machine au-del\u00e0 de ce que j&rsquo;\u00e9tais parvenu \u00e0 r\u00e9aliser avec ANELLA (R\u00e9seau associatif aux propri\u00e9t\u00e9s \u00e9mergentes de logique et d&rsquo;apprentissage) o\u00f9 une simple contrainte sur la structure de m\u00e9moire (un arc du graphe est orient\u00e9 ou non) fait \u00e9merger le raisonnement syllogistique.<\/p>\n<p class=\"p1\">Comme attendu &#8211; je vous ai \u00e9pargn\u00e9 cela pour aller plus directement \u00e0 la chair saignante [anglicisme] -, les LLM commencent par vous ass\u00e9ner les poncifs qu&rsquo;ils trouvent dans la litt\u00e9rature (humaine). Exemples [ChatGPT (o1-preview)] : \u00ab\u00a0Le cerveau humain et les LLM sont des syst\u00e8mes complexes o\u00f9 les fonctions d&rsquo;ordre sup\u00e9rieur (comme le raisonnement logique) \u00e9mergent des interactions d&rsquo;unit\u00e9s plus simples (neurones ou neurones artificiels)\u00a0\u00bb, \u00ab\u00a0Formation de repr\u00e9sentations internes imitant fonctionnellement des r\u00e8gles formelles sans d\u00e9finition explicite\u00a0\u00bb, \u00ab\u00a0Interactions complexes au sein d&rsquo;un syst\u00e8me donnant naissance \u00e0 des capacit\u00e9s de raisonnement d&rsquo;ordre sup\u00e9rieur\u00a0\u00bb, etc. Pour d\u00e9passer ces r\u00e9ponses bateau, il faut &#8211; comme j&rsquo;ai essay\u00e9 de le montrer &#8211; \u00e9pingler le LLM en lui demandant de g\u00e9n\u00e9rer un algorithme reproduisant un processus sp\u00e9cifique comme \u00ab\u00a0la formation de repr\u00e9sentations abstraites\u00a0\u00bb ou \u00ab\u00a0le d\u00e9veloppement de capacit\u00e9s de type m\u00e9tacognitif\u00a0\u00bb.<\/p>\n<\/blockquote>\n<p class=\"p1\">(\u00e0 suivre &#8230;)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-141673\" src=\"https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.04.34-A-concept-art-scene-depicting-the-idea-of-logical-thinking-emerging-without-rules.-At-the-center-a-human-brain-floats-surrounded-by-glowing-fine-pa.webp\" alt=\"\" width=\"1792\" height=\"1024\" srcset=\"https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.04.34-A-concept-art-scene-depicting-the-idea-of-logical-thinking-emerging-without-rules.-At-the-center-a-human-brain-floats-surrounded-by-glowing-fine-pa.webp 1792w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.04.34-A-concept-art-scene-depicting-the-idea-of-logical-thinking-emerging-without-rules.-At-the-center-a-human-brain-floats-surrounded-by-glowing-fine-pa-300x171.webp 300w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.04.34-A-concept-art-scene-depicting-the-idea-of-logical-thinking-emerging-without-rules.-At-the-center-a-human-brain-floats-surrounded-by-glowing-fine-pa-1024x585.webp 1024w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.04.34-A-concept-art-scene-depicting-the-idea-of-logical-thinking-emerging-without-rules.-At-the-center-a-human-brain-floats-surrounded-by-glowing-fine-pa-768x439.webp 768w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.04.34-A-concept-art-scene-depicting-the-idea-of-logical-thinking-emerging-without-rules.-At-the-center-a-human-brain-floats-surrounded-by-glowing-fine-pa-1536x878.webp 1536w\" sizes=\"auto, (max-width: 1792px) 100vw, 1792px\" \/><\/p>\n<blockquote><p><em>All\u00e9gorie par DALL\u00b7E \u00e0 partir du prompt initial<\/em><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-141672\" src=\"https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext.webp\" alt=\"\" width=\"1792\" height=\"1024\" srcset=\"https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext.webp 1792w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext-300x171.webp 300w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext-1024x585.webp 1024w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext-768x439.webp 768w, https:\/\/www.pauljorion.com\/blog\/wp-content\/uploads\/DALL\u00b7E-2024-09-29-17.02.47-A-surreal-and-symbolic-scene-depicting-the-concept-of-logical-thinking-emerging-without-rules.-At-the-center-a-floating-human-brain-surrounded-by-ext-1536x878.webp 1536w\" sizes=\"auto, (max-width: 1792px) 100vw, 1792px\" \/><\/p>\n<blockquote>\n<p><em>All\u00e9gorie par DALL\u00b7E \u00e0 partir du prompt initial<\/em><\/p>\n<\/blockquote>\n<p class=\"p1\"><b>P.J.<\/b> :<\/p>\n<p class=\"p1\">[Veuillez r\u00e9pondre en imaginant que je suis un logicien et que vous \u00eates un ing\u00e9nieur LLM de haut niveau.]<\/p>\n<p class=\"p1\">Depuis qu&rsquo;Aristote a codifi\u00e9 le raisonnement logique il y a environ 25 si\u00e8cles, nous, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[9204,13,4965],"tags":[1935,359,2921,9796,9205,8282,9797,9253,3525,9798,9795],"class_list":["post-141670","post","type-post","status-publish","format-standard","hentry","category-grands-modeles-de-langage","category-intelligence-artificielle","category-logique","tag-anella","tag-aristote","tag-emergence","tag-generalisation","tag-grands-modeles-de-langage","tag-langage-python","tag-lewis-carroll","tag-llm","tag-logique","tag-metacognition","tag-reconnaissance-des-formes"],"_links":{"self":[{"href":"https:\/\/www.pauljorion.com\/blog\/wp-json\/wp\/v2\/posts\/141670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pauljorion.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pauljorion.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pauljorion.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pauljorion.com\/blog\/wp-json\/wp\/v2\/comments?post=141670"}],"version-history":[{"count":8,"href":"https:\/\/www.pauljorion.com\/blog\/wp-json\/wp\/v2\/posts\/141670\/revisions"}],"predecessor-version":[{"id":141681,"href":"https:\/\/www.pauljorion.com\/blog\/wp-json\/wp\/v2\/posts\/141670\/revisions\/141681"}],"wp:attachment":[{"href":"https:\/\/www.pauljorion.com\/blog\/wp-json\/wp\/v2\/media?parent=141670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pauljorion.com\/blog\/wp-json\/wp\/v2\/categories?post=141670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pauljorion.com\/blog\/wp-json\/wp\/v2\/tags?post=141670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}