Image par l'éditeur
Les grands modèles linguistiques (LLM) comme GPT-3 d'OpenAI, BERT de Google et LLaMA de Meta révolutionnent divers secteurs avec leur capacité à générer un large éventail de textes, depuis les textes marketing et les scripts de science des données jusqu'à la poésie.
Même si l'interface intuitive de ChatGPT a réussi à s'intégrer aujourd'hui dans la plupart des appareils, il existe encore un vaste potentiel inexploité pour l'utilisation des LLM dans diverses intégrations logicielles.
Le problème principal?
La plupart des applications nécessitent une communication plus fluide et native avec les LLM.
Et c’est précisément là que LangChain entre en jeu !
Si vous êtes intéressé par l'IA générative et les LLM, ce tutoriel est fait sur mesure pour vous.
Alors… commençons !
Juste au cas où vous vivez dans une grotte et n'avez pas reçu de nouvelles ces derniers temps, je vais vous expliquer brièvement les grands modèles linguistiques ou LLM.
Un LLM est un système d’intelligence artificielle sophistiqué conçu pour imiter la compréhension et la génération de textes de type humain. En s'entraînant sur d'énormes ensembles de données, ces modèles discernent des modèles complexes, saisissent les subtilités linguistiques et produisent des résultats cohérents.
Si vous vous demandez comment interagir avec ces modèles basés sur l’IA, il existe deux manières principales de le faire :
- La manière la plus courante et la plus directe consiste à parler ou à discuter avec le modèle. Cela implique de créer une invite, de l'envoyer au modèle basé sur l'IA et d'obtenir une sortie textuelle en réponse.
- Une autre méthode consiste à convertir du texte en tableaux numériques. Ce processus implique de composer une invite pour l'IA et de recevoir un tableau numérique en retour. Ce qu’on appelle communément un « embedding ». Il a récemment connu un essor dans les bases de données vectorielles et la recherche sémantique.
Et ce sont précisément ces deux problèmes principaux que LangChain tente de résoudre. Si vous êtes intéressé par les principales problématiques d'interaction avec les LLM, vous pouvez consulter cet article ici.
LangChain est un framework open source construit autour des LLM. Il apporte un arsenal d'outils, de composants et d'interfaces qui rationalisent l'architecture des applications pilotées par LLM.
Avec LangChain, interagir avec des modèles de langage, relier divers composants et incorporer des actifs tels que des API et des bases de données devient un jeu d'enfant. Ce cadre intuitif simplifie considérablement le parcours de développement d'applications LLM.
L'idée centrale de Long Chain est que nous pouvons connecter ensemble différents composants ou modules, également appelés chaînes, pour créer des solutions plus sophistiquées basées sur le LLM.
Voici quelques fonctionnalités remarquables de LangChain :
- Modèles d'invite personnalisables pour standardiser nos interactions.
- Composants de maillons de chaîne adaptés aux cas d'utilisation sophistiqués.
- Intégration transparente avec les principaux modèles de langage, y compris les GPT d'OpenAI et ceux de HuggingFace Hub.
- Composants modulaires pour une approche mix-and-match pour évaluer tout problème ou tâche spécifique.
Image par auteur
LangChain se distingue par l'accent mis sur l'adaptabilité et la conception modulaire.
L'idée principale derrière LangChain est de décomposer la séquence de traitement du langage naturel en parties individuelles, permettant aux développeurs de personnaliser les flux de travail en fonction de leurs besoins.
Une telle polyvalence positionne LangChain comme un choix de premier ordre pour créer des solutions d’IA dans différentes situations et secteurs.
Certains de ses composants les plus importants sont…
Image par auteur
1. LLM
Les LLM sont des composants fondamentaux qui exploitent de grandes quantités de données de formation pour comprendre et générer du texte de type humain. Ils sont au cœur de nombreuses opérations au sein de LangChain, fournissant les capacités de traitement linguistique nécessaires pour analyser, interpréter et répondre à la saisie de texte.
Usage: Alimenter des chatbots, générer du texte de type humain pour diverses applications, faciliter la récupération d'informations et effectuer d'autres traitements linguistiques
2. Modèles d'invite
Les invites sont fondamentales pour interagir avec LLM, et lorsque vous travaillez sur des tâches spécifiques, leur structure a tendance à être similaire. Les modèles d'invites, qui sont des invites prédéfinies utilisables dans toutes les chaînes, permettent la standardisation des « invites » en ajoutant des valeurs spécifiques. Cela améliore l’adaptabilité et la personnalisation de tout LLM.
Usage: Standardiser le processus d'interaction avec les LLM.
3. Analyseurs de sortie
Les analyseurs de sortie sont des composants qui récupèrent la sortie brute d’une étape précédente de la chaîne et la convertissent dans un format structuré. Ces données structurées peuvent ensuite être utilisées plus efficacement dans les étapes ultérieures ou fournies en réponse à l'utilisateur final.
Usage: Par exemple, dans un chatbot, un analyseur de sortie peut extraire la réponse textuelle brute d’un modèle de langage, extraire des informations clés et les formater en une réponse structurée.
4. Composants et chaînes
Dans LangChain, chaque composant agit comme un module responsable d'une tâche particulière dans la séquence de traitement du langage. Ces composants peuvent être connectés pour former Chaînes pour des flux de travail personnalisés.
Usage: Génération de chaînes de détection de sentiments et de génération de réponses dans un chatbot spécifique.
5. Mémoire
La mémoire dans LangChain fait référence à un composant qui fournit un mécanisme de stockage et de récupération des informations au sein d'un flux de travail. Ce composant permet le stockage temporaire ou persistant de données accessibles et manipulables par d'autres composants lors de l'interaction avec le LLM.
Usage: Ceci est utile dans les scénarios où les données doivent être conservées à différentes étapes du traitement, par exemple pour stocker l'historique des conversations dans un chatbot pour fournir des réponses contextuelles.
6. Agents
Les agents sont des composants autonomes capables d'entreprendre des actions en fonction des données qu'ils traitent. Ils peuvent interagir avec d'autres composants, systèmes externes ou utilisateurs, pour effectuer des tâches spécifiques au sein d'un flux de travail LangChain.
Usage: Par exemple, un agent peut gérer les interactions des utilisateurs, traiter les demandes entrantes et coordonner le flux de données à travers la chaîne pour générer des réponses appropriées.
7. Index et récupérateurs
Les index et les récupérateurs jouent un rôle crucial dans la gestion et l’accès efficace aux données. Les index sont des structures de données contenant des informations et des métadonnées provenant des données d'entraînement du modèle. D'un autre côté, les récupérateurs sont des mécanismes qui interagissent avec ces index pour récupérer des données pertinentes en fonction de critères spécifiés et permettent au modèle de mieux répondre en fournissant un contexte pertinent.
Usage: Ils jouent un rôle déterminant dans la récupération rapide de données ou de documents pertinents à partir d'un vaste ensemble de données, ce qui est essentiel pour des tâches telles que la recherche d'informations ou la réponse à des questions.
8. Transformateurs de documents
Dans LangChain, les transformateurs de documents sont des composants spécialisés conçus pour traiter et transformer les documents de manière à les rendre adaptés à une analyse ou un traitement ultérieur. Ces transformations peuvent inclure des tâches telles que la normalisation du texte, l'extraction de fonctionnalités ou la conversion du texte dans un format différent.
Usage: Préparer les données textuelles pour les étapes de traitement ultérieures, telles que l'analyse par des modèles d'apprentissage automatique ou l'indexation pour une récupération efficace.
9. Intégration de modèles
Ils sont utilisés pour convertir des données textuelles en vecteurs numériques dans un espace de grande dimension. Ces modèles capturent les relations sémantiques entre les mots et les phrases, permettant une représentation lisible par machine. Ils constituent la base de diverses tâches de traitement du langage naturel (NLP) en aval au sein de l'écosystème LangChain.
Usage: Faciliter les recherches sémantiques, les comparaisons de similarité et d'autres tâches d'apprentissage automatique en fournissant une représentation numérique du texte.
10. Magasins de vecteurs
Type de système de base de données spécialisé dans le stockage et la recherche d'informations via des intégrations, analysant essentiellement les représentations numériques de données de type texte. VectorStore sert d'installation de stockage pour ces intégrations.
Usage: Permettre une recherche efficace basée sur la similarité sémantique.
L'installer à l'aide de PIP
La première chose que nous devons faire est de nous assurer que LangChain est installé dans notre environnement.
pip install langchain
Configuration de l'environnement
Utiliser LangChain signifie généralement s'intégrer à divers fournisseurs de modèles, magasins de données, API, entre autres composants. Et comme vous le savez déjà, comme pour toute intégration, la fourniture des clés API pertinentes et correctes est cruciale pour le fonctionnement de LangChain.
Imaginez que nous souhaitions utiliser notre API OpenAI. Nous pouvons facilement y parvenir de deux manières :
- Configuration de la clé en tant que variable d'environnement
OPENAI_API_KEY="..."
or
import os
os.environ['OPENAI_API_KEY'] = “...”
Si vous choisissez de ne pas établir de variable d'environnement, vous avez la possibilité de fournir la clé directement via le paramètre nommé openai_api_key lors du lancement de la classe OpenAI LLM :
- Configurez directement la clé dans la classe concernée.
from langchain.llms import OpenAI
llm = OpenAI(openai_api_key="...")
Passer d’un LLM à l’autre devient simple
LangChain fournit une classe LLM qui nous permet d'interagir avec différents fournisseurs de modèles de langage, tels que OpenAI et Hugging Face.
Il est assez facile de démarrer avec n'importe quel LLM, car la fonctionnalité la plus basique et la plus simple à mettre en œuvre de n'importe quel LLM consiste simplement à générer du texte.
Cependant, poser la même invite à différents LLM en même temps n’est pas si simple.
C’est là que LangChain entre en jeu…
Pour revenir à la fonctionnalité la plus simple de n'importe quel LLM, nous pouvons facilement créer une application avec LangChain qui obtient une invite de chaîne et renvoie la sortie de notre LLM désigné.
Code par auteur
Nous pouvons simplement utiliser la même invite et obtenir la réponse de deux modèles différents en quelques lignes de code !
Code par auteur
Impressionnant… non ?
Donner de la structure à nos invites avec des modèles d'invite
Un problème courant avec les modèles de langage (LLM) est leur incapacité à faire évoluer des applications complexes. LangChain résout ce problème en proposant une solution pour rationaliser le processus de création d'invites, qui est souvent plus complexe que la simple définition d'une tâche car cela nécessite de décrire la personnalité de l'IA et de garantir l'exactitude des faits. Une partie importante de cela implique du texte passe-partout répétitif. LangChain atténue ce problème en proposant des modèles d'invites, qui incluent automatiquement du texte standard dans les nouvelles invites, simplifiant ainsi la création d'invites et garantissant la cohérence entre les différentes tâches.
Code par auteur
Obtenir des réponses structurées avec les analyseurs de sortie
Dans les interactions basées sur le chat, la sortie du modèle est simplement du texte. Cependant, dans les applications logicielles, il est préférable d'avoir une sortie structurée car elle permet d'effectuer d'autres actions de programmation. Par exemple, lors de la génération d'un ensemble de données, il est souhaité de recevoir la réponse dans un format spécifique tel que CSV ou JSON. En supposant qu’une invite puisse être conçue pour obtenir une réponse cohérente et correctement formatée de la part de l’IA, des outils sont nécessaires pour gérer cette sortie. LangChain répond à cette exigence en proposant des outils d'analyse de sortie pour gérer et utiliser efficacement la sortie structurée.
Code par auteur
Tu peux aller vérifier tout le code sur mon GitHub.
Il n’y a pas si longtemps, les capacités avancées de ChatGPT nous ont impressionnés. Pourtant, l’environnement technologique est en constante évolution et des outils comme LangChain sont désormais à notre portée, nous permettant de créer des prototypes exceptionnels à partir de nos ordinateurs personnels en quelques heures seulement.
LangChain, une plate-forme Python disponible gratuitement, offre aux utilisateurs un moyen de développer des applications ancrées par des LLM (Language Model Models). Cette plate-forme offre une interface flexible pour une variété de modèles fondamentaux, rationalisant la gestion des invites et agissant comme un lien pour des éléments tels que des modèles d'invite, davantage de LLM, des informations externes et d'autres ressources via des agents, à partir de la documentation actuelle.
Imaginez des chatbots, des assistants numériques, des outils de traduction linguistique et des utilitaires d'analyse des sentiments ; toutes ces applications compatibles LLM prennent vie avec LangChain. Les développeurs utilisent cette plate-forme pour créer des solutions de modèles de langage sur mesure répondant à des exigences distinctes.
À mesure que l’horizon du traitement du langage naturel s’élargit et que son adoption s’approfondit, le domaine de ses applications semble sans limites.
Joseph Ferrier est un ingénieur analytique de Barcelone. Il est diplômé en génie physique et travaille actuellement dans le domaine de la science des données appliquée à la mobilité humaine. Il est un créateur de contenu à temps partiel axé sur la science et la technologie des données. Vous pouvez le contacter sur LinkedIn, Twitter or Moyenne.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- La source: https://www.kdnuggets.com/how-to-make-large-language-models-play-nice-with-your-software-using-langchain?utm_source=rss&utm_medium=rss&utm_campaign=how-to-make-large-language-models-play-nice-with-your-software-using-langchain
- :possède
- :est
- :ne pas
- :où
- $UP
- 7
- a
- capacité
- accédé
- accès
- accomplir
- précision
- à travers
- intérim
- actes
- actes
- ajoutant
- propos
- adresses
- adresser
- Adoption
- Avancée
- Agent
- agents
- depuis
- AI
- Alimenté par l'IA
- Tous
- permettre
- Permettre
- permet
- déjà
- aussi
- parmi
- quantités
- an
- selon une analyse de l’Université de Princeton
- analytique
- il analyse
- l'analyse
- ancrés dans
- ainsi que
- tous
- api
- Apis
- Application
- Le développement d'applications
- applications
- appliqué
- une approche
- approprié
- architecture
- SONT
- autour
- tableau
- Arsenal
- article
- artificiel
- intelligence artificielle
- AS
- demandant
- Evaluer
- Outils
- assistants
- At
- autonome
- disponibles
- ADMIRATION
- RETOUR
- Barcelona
- basé
- Essentiel
- BE
- devenez
- devient
- était
- derrière
- Améliorée
- jusqu'à XNUMX fois
- Illimité
- Rupture
- brièvement
- Apportez le
- construire
- Développement
- construit
- by
- CAN
- capacités
- capable
- capturer
- maisons
- cas
- répond
- grotte
- chaîne
- Chaînes
- Chatbot
- Chatbots
- ChatGPT
- bavardage
- vérifier
- le choix
- Selectionnez
- classe
- code
- COHÉRENT
- comment
- Commun
- communément
- Communication
- comparaisons
- complexe
- composant
- composants électriques
- ordinateurs
- NOUS CONTACTER
- connecté
- cohérent
- contact
- contenu
- contexte
- Conversation
- Conversion
- convertir
- conversion
- coordonner
- Core
- correct
- élaborer
- Fabriqué
- engendrent
- La création
- création
- créateur
- critères
- crucial
- Courant
- Lecture
- personnalisation
- personnaliser
- sont adaptées
- données
- science des données
- ensembles de données
- Base de données
- bases de données
- approfondit
- définir
- livré
- offre
- Conception
- désigné
- un
- voulu
- Détection
- développer
- mobiles
- Développement
- Compatibles
- différent
- numérique
- directement
- discerner
- distinct
- Distingué
- plusieurs
- do
- document
- Documentation
- INSTITUTIONNELS
- down
- pendant
- chacun
- plus facile
- même
- Easy
- risque numérique
- de manière efficace
- efficace
- efficacement
- éléments
- enrobage
- permettant
- fin
- engageant
- ingénieur
- ENGINEERING
- Améliore
- énorme
- assurer
- Environment
- intensifier
- essential
- essentiellement
- établir
- Ether (ETH)
- en constante évolution
- exemple
- se développe
- expérimenté
- Expliquer
- externe
- extrait
- extraction
- Visage
- Facilité
- Les faits
- Fonctionnalité
- Fonctionnalités:
- few
- champ
- bout des doigts
- Prénom
- flexible
- flux
- fluide
- Focus
- concentré
- Pour
- formulaire
- le format
- Fondation
- Fondatrice
- Framework
- librement
- De
- fondamental
- plus
- générer
- générateur
- génération
- génératif
- IA générative
- générateur
- obtenez
- obtention
- Go
- saisir
- main
- manipuler
- Maniabilité
- Vous avez
- ayant
- he
- lui
- Histoire
- tenue
- horizon
- HEURES
- Comment
- How To
- HTTPS
- Moyeu
- Étreindre
- humain
- MAUVAIS
- idée
- if
- importer
- important
- in
- incapacité
- comprendre
- Y compris
- Nouveau
- incorporation
- index
- individuel
- secteurs
- d'information
- initier
- contribution
- installer
- instance
- instrumental
- Intégration
- l'intégration
- intégrations
- Intelligence
- interagir
- interagissant
- l'interaction
- interactions
- intéressé
- Interfaces
- interfaces
- interconnexion
- développement
- complexe
- intuitif
- implique
- aide
- IT
- SES
- chemin
- json
- juste
- KDnuggetsGenericName
- ACTIVITES
- clés
- Kicks
- Savoir
- connu
- paysage d'été
- langue
- gros
- conduisant
- apprentissage
- à gauche
- Levier
- VIE
- comme
- lignes
- LINK
- vie
- Flamme
- Location
- click
- machine learning
- Entrée
- a prendre une
- FAIT DU
- gérer
- gérés
- les gérer
- manipulé
- de nombreuses
- Stratégie
- Mai..
- veux dire
- mécanisme
- mécanismes
- seulement
- Métadonnées
- méthode
- pourrait
- mobilité
- modèle
- numériques jumeaux (digital twin models)
- application
- module
- Modules
- PLUS
- (en fait, presque toutes)
- my
- Nommé
- indigène
- Nature
- Langage naturel
- Traitement du langage naturel
- nécessaire
- Besoin
- Besoins
- Nouveauté
- nouvelles
- lien
- agréable
- nlp
- maintenant
- of
- offrant
- souvent
- on
- une fois
- open source
- OpenAI
- opération
- Opérations
- Option
- or
- OS
- Autre
- nos
- décrivant
- sortie
- sorties
- exceptionnel
- paramètre
- partie
- particulier
- les pièces
- motifs
- Personnes
- effectuer
- effectuer
- personnel
- Ordinateur personnel
- les expressions clés
- Physique
- pièces
- plateforme
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Jouez
- Poésie
- positions
- défaillances
- précisément
- préférable
- Prime
- Problème
- d'ouvrabilité
- processus
- traitement
- produire
- Programmation
- instructions
- prototypes
- fournir
- fournisseurs
- fournit
- aportando
- Python
- question
- vite.
- assez
- raw
- royaume
- recevoir
- récent
- se réfère
- Les relations
- pertinent
- répétitif
- répondre
- représentation
- demandes
- exigent
- exigence
- Exigences
- a besoin
- Resources
- Réagir
- réponse
- réponses
- responsables
- retenu
- retourner
- Retours
- Révolutionnement
- bon
- Rôle
- s
- même
- scénarios
- Sciences
- Science et technologie
- scripts
- Rechercher
- recherches
- Secteurs
- semble
- envoi
- sentiment
- Séquence
- sert
- set
- Sets
- mise
- significative
- similaires
- simplifie
- simplifiant
- simplement
- situations
- So
- Logiciels
- sur mesure
- Solutions
- quelques
- sophistiqué
- Space
- spécialisé
- spécialise
- groupe de neurones
- spécifié
- Étape
- étapes
- standardisation
- j'ai commencé
- Encore
- storage
- Boutique
- STORES
- rationaliser
- la rationalisation
- Chaîne
- structure
- structuré
- structures
- ultérieur
- substantiellement
- tel
- convient
- approvisionnement
- sûr
- se pose
- combustion propre
- Système
- table
- Prenez
- prise
- parlant
- Tâche
- tâches
- technologique
- Technologie
- modèles
- temporaire
- tendance
- texte
- textuel
- que
- qui
- La
- leur
- Les
- puis
- Là.
- Ces
- l'ont
- chose
- this
- ceux
- bien que?
- Avec
- Ainsi
- à
- aujourd'hui
- ensemble
- les outils
- Formation
- Transformer
- transformations
- transformateurs
- Traduction
- tutoriel
- deux
- typiquement
- comprendre
- compréhension
- inexploité
- us
- utilisable
- utilisé
- d'utiliser
- Utilisateur
- utilisateurs
- en utilisant
- les services publics
- utiliser
- Valeurs
- variable
- variété
- divers
- Vaste
- la versatilité
- très
- via
- souhaitez
- Façon..
- façons
- we
- Quoi
- Qu’est ce qu'
- quand
- qui
- la totalité
- large
- comprenant
- dans les
- se demander
- des mots
- workflow
- workflows
- de travail
- encore
- you
- Votre
- zéphyrnet