Utilisation de LangChain pour créer un robot Q&R basé sur une base de données (3) : ReAct

Bonjour à tous, je suis Jambo. Nous avons appris à utiliser certaines fonctions de base de LangChain, et nous devrions combiner ces fonctions pour faire des choses complexes. Mais avant cela, afin que les étudiants comprennent mieux ce que LangChain a fait, je voudrais introduire quelques connaissances sur l'utilisation de GPT.

Au début de l'ouverture de ChatGPT, en plus des grandes entreprises concurrentes dans les algorithmes d'IA, de nombreuses personnes étudient comment faire en sorte que GPT-3 fasse de meilleures réponses uniquement en modifiant l'invite.Cette méthode s'appelle "prompt engineering (Prompt Engineering)". Si le LLM est assimilé à un cerveau doté de bon sens, alors le projet d'astuce lui apprend à penser, de manière à combiner plus efficacement les connaissances pour obtenir des réponses. Comme AutoGPT, il peut laisser GPT-4 effectuer diverses tâches par lui-même grâce à une invite bien conçue. Afin de permettre aux étudiants de comprendre les idées impliquées, nous commençons par l'introduction de la "chaîne de pensée".

Chaîne de pensée

La chaîne de pensée (Chain of Thought) a été proposée peu de temps après le lancement de ChatGPT. Plus précisément, il s'agit de laisser GPT-3 générer le processus de réflexion de la question en écrivant manuellement des exemples. De cette façon, l'effet de la réponse GPT-3 sera be Il y a une augmentation substantielle. Tout comme nous écrivons des questions de calcul plus compliquées, le taux correct d'écriture du processus étape par étape sera plus élevé que d'écrire la réponse directement.

Texte alternatif

Plus tard, quelqu'un a découvert que le même effet pouvait être obtenu en ajoutant simplement l'indice magique "Réfléchissons étape par étape." Pas besoin d'écrire des exemples. Et sur cette base, il a également demandé à GPT de résumer une réponse plus concise basée sur la réponse avec le processus de réflexion devant, ce qui équivaut à cacher le processus de réflexion.

Texte alternatif

Ce que je veux souligner ici, c'est que lorsque nous utilisons LLM pour créer des applications, nous pouvons utiliser LLM pour analyser, désassembler et résoudre des problèmes plusieurs fois avant de produire la réponse finale. Tout comme la couche cachée entre l'entrée et la sortie dans le réseau d'apprentissage en profondeur, nous pouvons ajouter plus de logique ici, afin que le LLM puisse mieux comprendre le problème et trouver une meilleure réponse.

Réagir

Quelle que soit la manière dont nous ajustons l'invite, LLM souffre toujours d'un défaut majeur : il génère toujours des réponses basées sur l'ensemble de données au moment de la formation et les informations fournies dans l'invite. Si des questions sont posées sur la météo, l'actualité ou des documents internes, etc., LLM ne pourra pas répondre ou produira de fausses réponses (« illusion »).

Bien sûr, une fois que l'utilisateur a posé une question, nous pouvons d'abord utiliser un moteur de recherche ou une base de données interne pour rechercher la question, puis utiliser les résultats de la recherche dans le cadre de l'invite. Mais en pratique, cette approche ne fonctionne pas toujours bien, et peut même être trompeuse dans certains cas. Par exemple, si nous voulons que LLM nous aide à réviser un article, dans le cadre de ce processus, le programme utilisera d'abord un moteur de recherche pour rechercher l'article, mais il est probable qu'aucun résultat pertinent ne puisse être trouvé. Cela mettrait le LLM en grève directe, car nous demandons généralement au LLM de générer du contenu basé uniquement sur les informations fournies par l'invite, pour garantir l'exactitude.

Afin de résoudre ce problème, nous pouvons laisser LLM décider de rechercher et quoi rechercher, tout comme l'optimisation de l'instruction de recherche avec LLM mentionnée dans le didacticiel précédent. Le système ReAct a donc été proposé, indiquant à LLM quels outils peuvent être utilisés à travers des exemples dans l'invite, puis laissant LLM décider d'utiliser ou non ces outils et comment les utiliser. Il y a trois parties dans ReAct :

  1. Réfléchir : Réfléchir aux mesures à prendre en fonction des informations actuelles.
  2. Action : Effectuez les actions correspondantes en fonction des résultats de la réflexion, telles que l'appel d'outils. Le programme peut analyser la chaîne générée à cette étape pour appeler les outils correspondants, similaires aux evalfonctions Python.
  3. Observation : stockez les résultats d'une action, telle qu'une recherche, pour la prochaine fois que vous y penserez.

Ces trois étapes continueront à circuler jusqu'à ce que l'étape de réflexion juge que la réponse a été trouvée, et la réponse finale sera donnée dans les actions suivantes.

Texte alternatif

En fait, si vous y réfléchissez bien, ce processus est similaire à notre processus de pensée humaine. Lorsque nous réfléchissons, nous jugeons si nous devons prendre des mesures en fonction des informations actuelles, puis jugeons si nous avons trouvé la réponse en fonction du résultat de l'action. Sinon, nous continuerons à réfléchir jusqu'à ce que nous trouvions la réponse.

Le mode de comportement d'AutoGPT est en fait le même que ReAct, mais l'invite d'AutoGPT est plus détaillée que les étapes de l'article qui proposait ReAct, et fournit plus d'outils à utiliser par LLM. Mais dans tous les cas, vous devez écrire de nombreux exemples pour indiquer à LLM comment penser et agir, et selon les outils fournis, l'effet sera différent et le processus de réflexion de ReAct comportera de nombreuses étapes. Et LangChain nous aide à cacher ces étapes, et encapsule cette série d'actions dans des "agents", et c'est ce que nous allons introduire dans le prochain chapitre.

Dernier article : Utilisation de LangChain pour créer un robot de questions-réponses basé sur une base de données (2) : Extraction d'informations textuelles à partir de sources de données

Je suppose que tu aimes

Origine blog.csdn.net/chenjambo/article/details/131885624
conseillé
Classement