AI

Guide du débutant sur les LLM : Plongez dans l'IA avec LangChain et l'ingénierie des prompts

A person exploring AI concepts with a computer, illustrating learning and innovation in technology.

Embrasser le monde de l'A.I. : Une introduction pour les débutants aux LLM (presque) sans codage

Le domaine de l'A.I. est vaste et rempli de nombreux outils qui peuvent sembler écrasants pour les nouveaux venus. Avec les nouvelles quotidiennes sur les avancées, les risques potentiels et les applications innovantes, les opinions sur l'A.I. sont divisées. Pour former une opinion éclairée, il est essentiel de plonger dans ce monde fascinant et d'apprendre les concepts intrigants qu'il offre.

Embarquer dans un voyage éducatif

De longues heures d'auto-apprentissage peuvent être difficiles, surtout lorsque les distractions sont abondantes. Pour accélérer mon apprentissage, j'ai participé à un hackathon A.I. - un événement où des chercheurs de connaissances, des experts et des passionnés se réunissent pour apprendre, collaborer et s'amuser.

Les hackathons sont des expériences uniques, combinant souvent compétition et atmosphère de soutien où les participants s'entraident avec enthousiasme. Passer 48 heures entouré d'esprits brillants m'a permis de comprendre les bases et de savoir ce dont j'avais besoin pour créer ma première solution A.I.

Cependant, tout le monde n'a pas l'opportunité d'assister à un hackathon. C'est pourquoi j'ai décidé de partager mes apprentissages dans ce tutoriel, espérant donner un coup d'envoi à votre voyage dans le monde de LangChain et des LLM.

LLM expliqué à un enfant de 5 ans

Imagine que tu as un ami magique qui connaît beaucoup de mots et peut comprendre ce que les gens disent. Cet ami peut t'aider avec tes devoirs, répondre à tes questions et même te raconter des histoires. Un LLM (Large Language Model) est comme cet ami magique, mais il vit dans un ordinateur. Il connaît de nombreux mots et peut comprendre ce que les gens tapent. Il aide les gens à trouver des informations, à répondre à des questions et à faire beaucoup d'autres choses sur l'ordinateur.

Qu'est-ce que LangChain ?

Pour ceux qui ont une expérience technique, LangChain peut être considéré comme une colle qui améliore vos applications existantes avec des capacités A.I. Il vous permet de diffuser de grandes quantités de données de vos applications vers des outils comme des interfaces de chat, permettant l'interaction avec les données, ou l'automatisation de certaines tâches basées sur les informations trouvées dans les données. Imaginez parler à votre base de données et recevoir des réponses - LangChain rend cela possible, vous faisant gagner du temps pour écrire des requêtes de base de données.

Pour les individus non techniques, imaginez les données comme une rivière qui coule. Tout comme une centrale électrique exploite l'énergie de la rivière, LangChain vous aide à déverrouiller le potentiel de vos données en utilisant divers LLM et outils tiers. Ces outils sont comme différents types de centrales électriques pour des terrains et des cas d'utilisation divers, mais sans le temps et les efforts nécessaires pour les construire. LangChain facilite la mise au travail de ces outils, comme s'ils étaient livrés dans une boîte à chaussures.

Exemple de scénario : Requêtes e-commerce assistées par A.I.

Imaginez que vous êtes propriétaire d'un e-commerce avec un magasin prospère et un grand groupe de clients fidèles. Vous souhaitez mieux comprendre vos clients et utiliser l'A.I. pour vous aider. Actuellement, vous pourriez vous appuyer sur la zone d'administration de votre magasin pour les données analytiques, cherchant, triant et filtrant manuellement d'énormes quantités d'enregistrements de table. Si vous n'êtes pas si chanceux, vous devez demander à vos programmeurs ou à des scientifiques des données de le faire pour vous, ce qui peut parfois prendre des jours.

Idéalement, vous aimeriez simplement demander à votre base de données et obtenir la réponse instantanément. Voici un flux utilisateur démontrant comment cela pourrait fonctionner en utilisant LangChain et LLM :

  • Étape 1 : Saisissez votre requête liée à l'analyse des clients.
  • Étape 2 : La requête est traitée par le LLM.
  • Étape 3 : Les réponses sont générées et affichées.

Dans ce flux, vous avez interagi avec vos données, et les données ont répondu. En construisant un flux comme celui-ci à l'aide d'outils comme LangChain, vous permettez à quiconque, même sans connaissances techniques, d'accéder à des informations précieuses en quelques secondes en tapant quelques mots dans une invite.

Plan de mise en œuvre du scénario

Nous voulons créer un bot qui peut recevoir des requêtes, les exécuter contre nos données stockées dans une base de données SQL, et retourner des informations sous une forme courte et concise. Discutons de l'idée et des leçons apprises pendant le hackathon.

Leçons apprises pendant le hackathon

Le plan de notre équipe pendant l'événement était de construire un bot conversationnel qui poserait à l'utilisateur un nombre fixe de questions prédéfinies, calculerait un score basé sur les réponses, et servirait ensuite à l'utilisateur quelques conseils sur la manière dont il/elle peut s'améliorer.

Nous avons initialement abordé le problème avec un état d'esprit de développeur web, voulant créer une liste de questions avec des réponses attendues, attribuer des poids aux réponses et fournir la liste des questions au LLM à l'avance. Nous avions prévu d'alimenter les questions au LLM, de lui faire obtenir les réponses de l'utilisateur, puis d'exécuter un algorithme pour calculer un score final basé sur les poids des réponses de l'utilisateur. Cela donnerait à l'utilisateur des aperçus stockés dans un guide prédéfini, initialement stockés sous forme de page Notion. À un certain moment, nous voulions également déplacer la page Notion vers une base de données.

Cependant, cette approche s'est révélée trop complexe et confuse. La solution était beaucoup plus simple :

Dans notre tentative de résoudre le problème, nous avons essayé de contrôler le processus de haut en bas, ce qui était notre plus grande erreur. Après avoir parlé à des experts, nous avons découvert deux choses importantes :

  • Le prompt engineering peut faire des merveilles.
  • Les agents peuvent prendre beaucoup de travail à notre place.

En laissant l'A.I. conduire et en se concentrant sur le prompt engineering, nous pouvons créer une solution plus efficace et efficace pour notre bot conversationnel.

Afin d'appliquer ces découvertes, nous avons complètement renoncé à essayer de créer une table avec des questions et des réponses prédéfinies, et nous avons simplement instruit le LLM par le biais d'un modèle de prompt sur ce que nous voulons accomplir.

Prompt Engineering expliqué à un enfant de 5 ans

Imagine que tu as un jouet magique qui peut répondre à tes questions et t'aider avec beaucoup de choses. Mais pour faire fonctionner le jouet, tu dois lui poser des questions d'une manière spéciale. Le prompt engineering est comme trouver la meilleure façon de poser des questions à ton jouet magique afin qu'il puisse te comprendre et te donner les meilleures réponses. C'est comme apprendre à parler à ton jouet pour que vous puissiez tous les deux avoir une conversation amusante et utile.

Agent expliqué à un enfant de 5 ans

Imagine que tu as un robot ami serviable qui peut faire beaucoup de choses pour toi, comme trouver tes jouets, répondre à tes questions ou même t'aider avec tes devoirs. Cet ami robot s'appelle un "agent". Un agent est comme un assistant qui vit dans un ordinateur ou un appareil et peut faire des tâches pour toi. Il écoute ce que tu dis ou tapes, et essaie ensuite de t'aider du mieux qu'il peut.

Solution finale du hackathon

Au lieu de mettre en place des bases de données, des APIs, et d'écrire des algorithmes pour calculer le score, nous avons trouvé une solution plus simple en utilisant le prompt engineering :

Étonnamment, cette solution a été développée presque entièrement par la seule personne non-programmateur de notre équipe. Un grand merci à Iwo Szapar, notre senior prompt engineer de l'équipe du hackathon !

Ça a fonctionné comme par magie :

Application des découvertes du hackathon à notre exemple de scénario

La solution du hackathon et le scénario exemple partagent des hypothèses communes. D'abord, l'utilisateur produit une requête. Ensuite, nous renvoyons la requête au LLM, en nous assurant que le LLM connaît notre guide et peut comparer le score reçu avec des données fixes stockées dans la base de données vectorielle pour produire une réponse significative.

Nous l'avons résolu de cette manière :

Maintenant, laissez-moi expliquer ce qui s'est passé ici, car je viens de mentionner un nouveau concept appelé "base de données vectorielle" et ensuite partagé un code.

Base de données vectorielle expliquée à un enfant de 5 ans

Imagine que tu as une grande boîte de jouets, et que tu veux trouver un jouet spécifique rapidement. Une base de données vectorielle est comme une carte magique qui t'aide à trouver le jouet que tu cherches dans la grande boîte. Elle sait où se trouvent tous les jouets et peut te montrer le bon jouet en fonction de ce que tu lui dis.

Dans la base de données vectorielle, chaque jouet reçoit un "vecteur" - une liste de nombres qui décrivent le jouet et sa similitude ou différence par rapport aux autres jouets. La base de données vectorielle utilise des mathématiques spéciales pour trouver les similitudes entre les vecteurs. Donc, si tu lui dis que tu cherches une voiture jouet rouge, la base de données filtrerait les jouets avec un score de similitude élevé pour "voiture jouet rouge" basé sur leurs vecteurs.

Pour construire la base de données vectorielle, tu dois d'abord "enseigner" à chaque jouet en lui donnant des détails comme la couleur, la forme, la taille, la fonction, et plus encore. La base de données transforme ces détails en nombres pour créer un vecteur pour le jouet. En comparant comment les vecteurs sont similaires et différents, la base de données construit une "carte" de la façon dont tous les jouets se rapportent.

Quand tu recherches dans la base de données, elle examine les vecteurs pour trouver les jouets les plus similaires à ce que tu as décrit. Plus elle apprend sur les jouets et devient meilleure pour trouver des relations entre eux, plus ses capacités semblent magiques. Mais en réalité, tout cela est basé sur les mathématiques !

Dans notre code, nous utilisons une base de données vectorielle pour aider l'A.I. à trouver les bonnes informations pour répondre à tes questions. En enseignant à la base de données des détails sur des fragments de connaissances, elle peut trouver les fragments les plus pertinents pour la requête d'un utilisateur. La "magie" de la base de données vient de sa capacité à quantifier les similitudes entre les connaissances qu'elle contient.

Explication du code

Ce code définit un agent A.I. conversationnel appelé PlaybookChat qui peut interagir avec les utilisateurs et fournir des informations basées sur un playbook. L'agent dispose d'un ensemble d'outils qu'il peut utiliser pour aider les utilisateurs. Dans ce cas, il y a un outil appelé query_playbook qui permet à l'agent de rechercher des informations dans un "guide pour managers de personnes".

Lorsqu'une conversation commence, l'agent est initialisé avec les outils et d'autres paramètres. Il utilise un modèle de langage sous-jacent appelé "ChatOpenAI" pour générer des réponses. L'agent a également un composant de mémoire pour suivre l'historique de la conversation.

Pour commencer une conversation, la méthode start_conversation est appelée avec un score utilisateur en entrée. L'agent exécute ensuite et répond aux requêtes de l'utilisateur en fonction des informations du playbook. La réponse comprend le score de l'utilisateur et l'encourage à poser des questions éclairantes.

Dans l'ensemble, ce code met en place un agent A.I. conversationnel qui peut fournir des informations et engager une conversation avec les utilisateurs en fonction du contenu du playbook.

Solution finale pour notre exemple

Nous avons déjà une solution fonctionnelle, alors remettons-la un peu en contexte.

Modèle de prompt :

Avez-vous besoin d'un endroit pour expérimenter un peu plus avec le prompt engineering ? OpenAI vous fournit un terrain de jeu génial pour faire cela ! N'hésitez pas à copier & coller le code et à commencer à expérimenter là-bas.

Solution de chaîne finale pour notre exemple

Utilisation exemple :

  • Devoirs : La tâche restante pour vous est de mettre en place une base de données et de l'approvisionner avec des données pertinentes. Bien que je ne fournisse pas d'instructions détaillées dans cet article, vous pouvez vous référer à notre guide complet sur la recherche de similitudes et les bases de données vectorielles, qui fournit des instructions étape par étape. Vous pouvez trouver les instructions détaillées dans l'un de nos autres tutoriels A.I.

Résumé

Embarquer dans un voyage A.I. peut sembler difficile, mais le véritable pouvoir de l'A.I. réside dans sa capacité à vous soutenir à chaque étape. Il n'y a qu'une exigence clé : "Laissez l'A.I. prendre le volant", pendant que vous la guidez dans la bonne direction.

Pour résumer tout ce dont j'ai parlé, il est crucial de comprendre des concepts clés tels que le prompt engineering, les chaînes, les agents et les bases de données vectorielles avant de commencer. Avec une bonne compréhension de ces concepts, vous serez en mesure d'accomplir des exploits remarquables !

Je vous souhaite bonne chance dans votre parcours de création d'applications A.I., et merci pour votre temps précieux.

En lire plus

Cohere API tutorial for product description generation
Building a Text Improver App with AI21 Labs tutorial

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés.

Ce site est protégé par hCaptcha, et la Politique de confidentialité et les Conditions de service de hCaptcha s’appliquent.