Démystifier ChatGPT : différentes approches pour créer une recherche basée sur l'IA

Par Sherry Ger

Qu'est-ce que ChatGPT ?

Tout d'abord, ChatGPT est génial ! Cela peut vous aider à travailler plus efficacement, du résumé d'un document de 10 000 mots à la fourniture d'une liste des différences entre les produits concurrents, parmi de nombreuses autres tâches. 

ChatGPT est le modèle de grand langage ( LLM ) le plus célèbre basé sur l'architecture Transformer . Mais vous avez peut-être entendu parler d'autres LLM, notamment BERT (Représentation de l'encodeur bidirectionnel de Transformer), Bard (Modèle de langage pour les applications conversationnelles) ou LLaMA (LLM Metaartificial Intelligence). Les LLM ont plusieurs couches de réseaux de neurones qui fonctionnent ensemble pour analyser le texte et prédire la sortie. Ils ont été formés avec des traducteurs de gauche à droite ou bidirectionnels pour maximiser la probabilité de suivre et de précéder les mots dans le contexte pour comprendre ce qui pourrait venir ensuite dans une phrase. Les LLM possèdent également un mécanisme d'attention qui leur permet de se concentrer sélectivement sur certaines parties du texte afin d'identifier les parties les plus pertinentes. Par exemple, Rex est mignon et c'est un chat. Dans cette phrase, "il" fait référence à la fois à "chat" et à "rex".

plus c'est plus

Les grands modèles de langage sont souvent comparés en fonction du nombre de paramètres - plus c'est gros, mieux c'est. Le nombre de paramètres est une mesure de la taille et de la complexité du modèle. Plus un modèle a de paramètres, plus il peut traiter, apprendre et générer de données. Cependant, avoir plus de paramètres signifie également nécessiter plus de ressources de calcul et de mémoire. Pendant la formation, les paramètres sont appris ou mis à jour à l'aide d'un algorithme d'optimisation qui tente de minimiser l'erreur ou la perte entre la sortie prévue et la sortie réelle. En ajustant les paramètres, un modèle peut améliorer ses performances et sa précision sur une tâche ou un domaine donné.

La formation LLM coûte cher

Les LLM modernes ont des milliards de paramètres qui sont formés sur des billions de jetons pour un coût de millions de dollars. La formation d'un LLM implique d'identifier l'ensemble de données, de s'assurer que l'ensemble de données est suffisamment grand pour exécuter des fonctions comme un humain, de déterminer les configurations de la couche réseau, d'utiliser l'apprentissage supervisé pour apprendre les informations dans l'ensemble de données, et enfin d'affiner. Inutile de dire que le recyclage des LLM sur des données spécifiques à un domaine est également très coûteux.

Comment fonctionne le modèle GPT ?

Un modèle GPT (Generative Pretrained Transformer) est un réseau neuronal qui utilise l'architecture Transformer pour apprendre à partir de grandes quantités de données textuelles. Le modèle comporte deux composants principaux : un encodeur et un décodeur. Un encodeur prend le texte d'entrée et le transforme en une séquence de vecteurs appelés incorporations, qui représentent la signification et le contexte de chaque mot/sous-mot du nombre. Cependant, le décodeur génère un texte de sortie en prédisant le mot suivant dans la séquence sur la base des mots incorporés et précédents.

Les modèles GPT utilisent une technique appelée "attention" pour se concentrer sur les parties les plus pertinentes du texte d'entrée et de sortie et capturer les dépendances à long terme et les relations entre les mots. Le modèle est formé en utilisant un grand corpus de texte en entrée et en sortie, et en minimisant la différence entre les mots prédits et réels. Il peut ensuite être affiné ou adapté à des tâches ou à des domaines spécifiques en utilisant des ensembles de données plus petits et plus spécialisés.

marque (marque)

Les jetons sont les unités de base du texte ou du code que LLM utilise pour traiter et générer des langages. Les jetons peuvent être des caractères, des mots, des sous-mots ou d'autres fragments de texte ou de code, selon la méthode ou le schéma de tokenisation choisi. Des valeurs numériques ou des identifiants leur sont attribués et disposés en séquences ou vecteurs, qui sont ensuite entrés ou sortis du modèle. La tokenisation est le processus de segmentation du texte d'entrée et de sortie en unités plus petites qui peuvent être traitées par un modèle LLM.

Par exemple, la phrase « Un renard brun rapide saute par-dessus un chien paresseux » pourrait être symbolisée par les jetons suivants : « a », « quick », « brown », « fox », « jumps », « over », « a ", ", " paresseux" et "chien".

Incrustations

Les incorporations sont des vecteurs ou des tableaux de nombres qui représentent la signification et le contexte des jetons traités et générés par le modèle. Ils sont dérivés des paramètres du modèle et sont utilisés pour coder et décoder le texte d'entrée et de sortie. Les intégrations aident le modèle à comprendre les relations sémantiques et syntaxiques entre les jetons et à générer un texte plus pertinent et cohérent. Ils constituent une partie importante de l'architecture Transformer utilisée par les modèles basés sur GPT. Ils peuvent également varier en taille et en dimensions, selon le modèle et la tâche.

Les LLM pré-entraînés contiennent au moins des dizaines de milliers d'incorporations de mots, de jetons et de termes. Par exemple, ChatGPT-3 a un vocabulaire de 14 735 746 mots et une dimension de 1 536. Ce qui suit provient d'un petit modèle appelé distilbert-based-uncased. Bien qu'il s'agisse d'un petit modèle, sa taille est toujours de 100 mégaoctets.

 

Transformateur - Transformateur

Un modèle Transformer est un réseau de neurones qui apprend le contexte, ou la signification, en suivant les relations dans des données séquentielles, telles que les mots de cette phrase. Dans sa forme la plus simple, un transformateur prendra une entrée et prédira une sortie. À l'intérieur du transformateur, il y a une pile d'encodeurs et une pile de décodeurs.

Creusons dans le bloc codeur et le bloc décodeur. Dans le bloc codeur, il y a deux composants importants : le réseau de neurones d'auto-attention et le réseau de neurones à anticipation.

La couche d'auto-attention est cruciale car elle s'appuie sur la " compréhension " du mot courant par les mots précédents liés au mot courant . Par exemple, "il" fait référence au poulet dans "le poulet a traversé la route parce qu'il veut savoir de quoi parlent les blagues".

Une autre couche importante du codeur est le réseau de neurones à anticipation (FFNN). FFNN prédit les mots qui se produisent après le jeton actuel.

Du côté du décodeur, la couche d'attention de l'encodeur-décodeur vient au premier plan. La couche encodeur-décodeur se concentre sur les parties pertinentes de la phrase d'entrée, en tenant compte de la sortie des couches en dessous et de la pile d'encodeurs.

Mettre tous ensemble:

Graphique abstrait du modèle Transformer

 

Nous prendrons l'entrée, segmenterons l'entrée et obtiendrons l'ID de jeton du jeton, que nous transformerons ensuite en une intégration pour chaque jeton. De là, on passe les encastrements dans le bloc transformateur. À la fin du processus, le transformateur prédira une séquence de jetons de sortie. La figure ci-dessous détaille le modèle de transformateur.

La pile du décodeur produit un vecteur de nombres à virgule flottante. La couche linéaire projette les vecteurs à virgule flottante produits par la pile du décodeur dans des vecteurs plus grands appelés vecteurs logits. Si le modèle a un vocabulaire de 10 000 mots, une couche linéaire mappe la sortie du décodeur sur 10 000 vecteurs unitaires. Une couche Softmax convertit ces scores de vecteurs logit en probabilités (toutes deux positives) et s'additionnent jusqu'à 100 %. La cellule avec la probabilité la plus élevée est sélectionnée et le mot qui lui est associé est généré en sortie de cette étape.

Défis pour ChatGPT et LLM

  • Les données sur lesquelles ils sont formés n'ont aucune connaissance du domaine et peuvent être obsolètes. Par exemple, l'hallucination consiste à donner de mauvaises réponses comme si elles étaient correctes, ce qui est courant dans les LLM.
  • Le modèle lui-même n'a pas la capacité naturelle d'appliquer ou d'extraire des filtres de l'entrée. Les exemples incluent l'heure, la date et les géofiltres.
  • Il n'existe aucun contrôle d'accès sur le contenu du document que les utilisateurs peuvent afficher.
  • Il existe de graves problèmes de confidentialité et de contrôle des données sensibles.
  • S'entraîner sur ses propres données et les tenir à jour est lent et très coûteux.
  • ChatGPT ou d'autres LLM peuvent être lents à répondre. En règle générale, Elasticsearch® répond aux requêtes en quelques millisecondes. Pour les LLM, l'obtention d'une réponse peut prendre jusqu'à quelques secondes. Mais il faut s'y attendre, car les LLM effectuent des tâches complexes. De plus, ChatGPT facture en fonction du nombre de jetons traités. Si vous avez une charge de travail à grande vitesse comme une recherche d'articles Black Friday pour un site de commerce électronique, cela peut devenir très coûteux très rapidement. Sans oublier qu'il peut ne pas être en mesure de respecter le SLA (Service Level Agreement) <10 ms.
  • Expliquer comment ChatGPT ou d'autres LLM arrivent aux résultats de la requête est difficile, voire impossible. En plus des hallucinations, ChatGPT et d'autres LLM peuvent générer des réponses non pertinentes, et il est difficile de déterminer comment le modèle peut générer la mauvaise réponse.

Où Elasticsearch est-il adapté ?

En plus de la recherche vectorielle native via kNN et aNN (kNN est la distance exacte du voisin le plus proche pour tous les documents et aNN est une valeur approximative), Elasticsearch prend également en charge les méthodes de recherche d'informations sac de mots (sac de mots) et BM25 . Pour aNN, Elasticsearch utilise l'algorithme HNSW (Hierarchical Navigable Small World) pour calculer les distances approximatives du voisin le plus proche. Elastic atténue de nombreux problèmes de LLM tout en permettant à nos utilisateurs de profiter de tous les avantages que ChatGPT et d'autres LLM peuvent offrir.

Elasticsearch peut être utilisé comme base de données vectorielle et effectuer des recherches hybrides sur des données textuelles et vectorielles. Lorsqu'Elasticsearch est utilisé avec des LLM, il peut offrir des avantages distincts dans trois modes :

  1. Fournissez un contexte à vos données et intégrez-les à ChatGPT ou à d'autres LLM
  2. Vous permet d'apporter vos propres modèles (tous les modèles tiers)
  3. Utiliser le modèle intégré Elastic Learned Sparse Encoder

Approche 1 : Fournissez un contexte à vos données et intégrez-les à ChatGPT ou à d'autres LLM

Voici comment dissocier les LLM des données tout en s'intégrant à l'IA générative.

Utilisez Elasticsearch comme magasin vectoriel et intégrez-le à LLM

 

Les clients peuvent apporter leurs propres intégrations générées par LLM et ingérer leurs données dans Elasticsearch avec les intégrations. Les clients peuvent ensuite transmettre les résultats de recherche de similarité à partir de leurs propres données stockées dans Elasticsearch (le contexte des questions des utilisateurs) à ChatGPT ou à d'autres LLM pour créer des réponses en langage naturel pour les utilisateurs.

De plus, le nouveau Reciprocal Rank Fusion (RRF) permet aux utilisateurs d'effectuer des recherches hybrides, où les résultats de recherche peuvent être combinés et classés. Par exemple, la méthode BM25 peut filtrer les documents pertinents ainsi que la recherche vectorielle pour fournir les meilleurs documents. Avec RRF, les clients peuvent obtenir les meilleurs résultats de recherche localement via Elasticsearch plutôt que via leurs propres applications, ce qui réduit considérablement la complexité des applications et les coûts de maintenance.

Méthode 2 : apportez votre propre modèle

L' Elasticsearch Relevance Engine ™ ( ESRE ™ ) récemment publié offre la possibilité d'avoir votre propre LLM. Grâce à l'apprentissage automatique, cette fonctionnalité est disponible depuis un certain temps. L'équipe d'apprentissage automatique d'Elasticsearch a construit l'infrastructure pour intégrer les modèles basés sur Transformer. À partir de la version 8.8 , vous pouvez ingérer et interroger via l'API de recherche comme d'habitude dans Elasticsearch. Mieux encore, vous pouvez combiner des méthodes de recherche hybrides avec RRF, ce qui fournit des corrélations encore meilleures. Les modèles étant gérés et intégrés dans Elasticsearch, la complexité opérationnelle peut être réduite tout en obtenant les résultats de recherche les plus pertinents.

Cette approche nécessite que les utilisateurs sachent quel modèle convient le mieux à leur cas d'utilisation et à leur relation commerciale avec Elastic.

 

Méthode 3 : Utiliser le modèle d'encodeur clairsemé intégré

Elastic Learned Sparse Encoder est le modèle de langage prêt à l'emploi d'Elastic, qui surpasse SPLADE (SParse Lexical And Expansion Model), qui est lui-même un modèle de pointe. Elastic Learned Sparse Encoder résout le problème d'incompatibilité de vocabulaire, où les documents peuvent être pertinents pour une requête mais ne contiennent aucun terme qui apparaît dans la requête. Un exemple de non-concordance pourrait être que si nous demandons « comment les entreprises américaines ont-elles contribué aux efforts de Covid-19 », le fabricant de ventilateurs pourrait ne pas apparaître dans les résultats de la requête.

Tout comme les autres points de terminaison de recherche, Elastic Learned Sparse Encoder est accessible via une requête text_expansion. Elastic Learned Sparse Encoder permet à nos utilisateurs de lancer des recherches d'IA génératives de pointe en un seul clic et de produire des résultats instantanément. Elastic Learned Sparse Encoder est également une fonctionnalité commerciale d'Elastic.

Voici quelques résultats de référence utilisant le benchmark BEIR. Nous avons utilisé plusieurs jeux de données normalisés (axe horizontal) et appliqué différentes méthodes de récupération (axe vertical). Comme vous pouvez le voir, la combinaison de BM25 et de notre encodeur parcimonieux appris utilisant RRF renvoie le meilleur score de corrélation. Considérés individuellement, ces scores pour RRF surpassent à la fois le modèle SPLADE et notre modèle Learned Sparse Encoder (ELSER). Nous avons publié plus de détails sur notre blog ici .

Comparaison d'Elastic Learned Sparse Encoder avec d'autres méthodes de récupération populaires (source Elasticsearch)

 

Termes et définitions

réseau de neurones (NN)

Chaque nœud est un neurone. Considérez chaque nœud individuel comme son propre modèle de régression linéaire, composé de données d'entrée (données), de poids (poids), de biais (biais) (ou seuil - seuil) et de sortie. Une représentation mathématique pourrait ressembler à ceci :

∑wixi + bias = w1x1 + w2x2 + w3x3 + bias

output = f(x) = 1 if ∑w1x1 + b>= 0; 0 if ∑w1x1 + b < 0

Une fois la couche d'entrée déterminée, des poids (w) sont attribués. Ces pondérations aident à déterminer l'importance d'une variable donnée, les variables plus importantes contribuant davantage à la sortie que les autres entrées. Toutes les entrées sont ensuite multipliées par leurs poids respectifs et additionnées. Ensuite, la sortie passe par une fonction d'activation, qui détermine la sortie. Si cette sortie dépasse un seuil donné, il active le nœud et transmet les données à la couche suivante du réseau. Cela fait que la sortie d'un nœud devient l'entrée du nœud suivant. Ce processus de transmission de données d'une couche à la suivante est un réseau à anticipation. Ce n'est qu'un type de réseau de neurones.

Paramètres LLM

Les poids sont des valeurs qui définissent la force des connexions entre les neurones dans les différentes couches du modèle. Le biais est une valeur supplémentaire ajoutée à la somme pondérée des entrées avant de passer par la fonction d'activation.

ÉCLABOUSSURE

SPLADE est un modèle d'interaction tardive. L'idée derrière le modèle SPLADE est que l'utilisation d'un modèle de langage pré-entraîné comme BERT peut identifier les connexions entre les mots et utiliser ces connaissances pour améliorer les incorporations vectorielles clairsemées. Vous l'utilisez lorsque vous avez un document qui couvre un sujet large (comme un article de Wikipedia sur les films de la Seconde Guerre mondiale) - il comprend l'intrigue, les acteurs, l'histoire et le studio qui a sorti le film.

En utilisant uniquement des techniques de récupération embarquées, la pertinence des documents par rapport aux requêtes devient un problème, car les documents peuvent être projetés sur un grand nombre de dimensions et rendus proches de toute requête. SPLADE résout ce problème en combinant toutes les distributions de probabilité au niveau des jetons en une seule distribution qui nous indique la pertinence de chaque jeton du vocabulaire par rapport à la phrase d'entrée, similaire à la méthode BM25. Elastic Learned Sparse Encoder est la version élastique du modèle SPLADE.

FRR

RRF est une requête de recherche hybride qui normalise et combine plusieurs ensembles de résultats de recherche avec différentes mesures de pertinence en un seul ensemble de résultats. Selon nos propres tests, la combinaison de RRF (BM25 + Elastic Learned Sparse Encoder) donne la meilleure pertinence de recherche.

Résumer

En combinant la puissance d'innovation de technologies comme ChatGPT avec le contexte commercial des données propriétaires, nous pouvons vraiment changer la façon dont les clients, les employés et les organisations effectuent des recherches.

La génération augmentée de récupération (RAG) comble le fossé entre les grands modèles de langage pour l'IA générative et les sources de données privées. Les limitations bien connues des grands modèles de langage peuvent être résolues grâce à la récupération basée sur le contexte, ce qui vous permet de créer des recherches profondément engageantes.

原文:Démystifier ChatGPT : différentes méthodes pour créer une recherche IA | Blog élastique

Je suppose que tu aimes

Origine blog.csdn.net/UbuntuTouch/article/details/132003372
conseillé
Classement