paint-brush
Comment les LLM et la recherche de vecteurs ont révolutionné la création d'applications d'IApar@datastax
1,166 lectures
1,166 lectures

Comment les LLM et la recherche de vecteurs ont révolutionné la création d'applications d'IA

par DataStax4m2023/06/14
Read on Terminal Reader

Trop long; Pour lire

L'IA générative et les grands modèles de langage (LLM) suscitent beaucoup d'enthousiasme. Ils ont suscité l'imagination du grand public en raison de leur utilité lorsqu'ils sont invités à aider à la rédaction de texte. Mais pour les développeurs, ils sont encore plus révolutionnaires, car ils ont simplifié la manière dont les applications d'IA peuvent être créées. Voyons pourquoi.
featured image - Comment les LLM et la recherche de vecteurs ont révolutionné la création d'applications d'IA
DataStax HackerNoon profile picture
0-item
1-item
2-item


L'IA générative et les grands modèles de langage (LLM) suscitent beaucoup d'enthousiasme. Ils ont suscité l'imagination du grand public en raison de leur utilité lorsqu'ils sont invités à aider à la rédaction de texte. Mais pour les développeurs, ils sont encore plus révolutionnaires, car ils ont considérablement simplifié la façon dont les applications d'IA peuvent être créées. Voyons pourquoi.

Pourquoi l'IA était difficile jusqu'à très récemment

Traditionnellement, la façon dont vous créez une application d'IA est un processus en quatre étapes :


  1. Encodez les éléments les plus pertinents de vos données sous forme de vecteurs. Comprendre ce que sont les "pièces les plus pertinentes" est un problème difficile, et implique souvent de construire un modèle séparé juste pour comprendre cela au lieu de faire une supposition éclairée. Extraire les éléments pertinents des données brutes est un autre problème difficile. (Ce sont des problèmes importants, c'est pourquoi nous avons construit Kaskada pour les résoudre .)
  2. Entraînez un modèle en utilisant ces vecteurs pour atteindre votre objectif. Par exemple, l'un des objectifs les plus importants de Netflix est de prédire "ce que Jonathan voudra regarder lorsqu'il se connectera". Si vous avez un problème courant comme la reconnaissance d'image, vous pouvez "affiner" un modèle existant au lieu de partir de zéro, mais il s'agit souvent d'un territoire de plusieurs GPU pendant des heures ou des jours.
  3. Déployez le modèle et exposez-le en tant qu'API.
  4. Pour l'exécuter en production, exécutez vos données en temps réel via le même encodage qu'à l'étape 1, puis envoyez-les via le modèle que vous avez créé et déployé pour effectuer sa prédiction ("inférence").

L'étape 3 est généralement simple (bien que pas sans défis ); les étapes 1, 2 et 4 impliquent toutes des solutions sur mesure qui peuvent nécessiter des compétences difficiles à trouver.


Sans surprise, lorsqu'un domaine problématique nécessite une équipe de docteurs pour le résoudre avec succès, il sera prohibitif en termes de coût et de compétences pour toutes les entreprises, sauf quelques-unes.

Pourquoi l'IA est maintenant facile avec les LLM

L'une des raisons pour lesquelles tout le monde est si enthousiasmé par l'IA générative avec les LLM est que vous pouvez souvent résoudre un problème "assez bien" sans aucune des étapes ci-dessus. Avec l'IA générative, votre travail consiste à :


  1. Découvrez comment transférer vos données dans GPT sous forme de texte
  2. Formuler des requêtes sur ces données en anglais


C'est ça, vraiment. Tout le reste n'est que détails.


Le détail le plus important : quelles données donnez-vous à GPT à l'étape 1 ? Vous ne pouvez pas tout jeter dessus; il ne peut gérer que 4k jetons en GPT-3.5, ou jusqu'à 32k en GPT-4, ce qui est beaucoup plus lent et plus cher.


La recherche vectorielle vous permet de prendre la requête exacte que vous avez déjà créée pour l'envoyer à GPT et de la transmettre à votre base de données, où vous mettez tout ce que vous savez sur le client. La recherche vectorielle répond littéralement à "quelles sont les données les plus pertinentes pour cette requête" sans aucun effort supplémentaire de votre part ; c'est presque magique.

(Je crois fermement que la recherche vectorielle devrait être une fonctionnalité de votre base de données d'application principale et non un système séparé, c'est pourquoi nous l'avons ajouté à Apache Cassandra et DataStax Astra DB .)


Une fois que vous avez vos données les plus pertinentes et votre requête, vous les regroupez et appelez OpenAI, vous obtenez votre réponse et vous avez terminé. (Je passe sous silence certains défis, comme " comment obtenir un LLM pour répondre dans un format strictement défini afin que vous puissiez consommer la réponse et l'incorporer dans votre application », mais ce sont les types de défis que les ingénieurs logiciels savent déjà résoudre.)


Ainsi, un fournisseur de contenu en streaming utiliserait des données telles que : chaque session que Jonathan a passée avec le titre, les acteurs et la catégorie ; combien de temps il l'a regardé; plus toutes les métadonnées que nous pouvons trouver, puis dénormalisez le tout en un seul bloc de texte et exécutez-le dans l'encodeur pour obtenir un vecteur.


Et si c'était Netflix, ce serait super facile, parce que Netflix a déjà ses données dans Cassandra , il n'y aurait donc pas besoin de lancer un nouveau système ou d'embaucher des docteurs. Vous avez juste besoin que vos développeurs écrivent une requête pour rassembler ces métadonnées dans un seul tableau et envoyer chaque ligne à Google Palmier ou OpenAI Ada API pour les transformer en vecteurs (appelés encastrements ).


Une fois cela fait, vous pouvez récupérer les lignes pertinentes de Cassandra avec une requête comme celle-ci, où ? est une variable de liaison pour votre vecteur de requête que vous obtenez de la même API d'intégration :


 SELECT original_data_text FROM user_recommendation_data WHERE user_id = 'jonathan' ORDER BY embedding ANN OF ? LIMIT 20


Ensuite, vous ajoutez ces résultats à votre invite LLM, et… c'est tout. Vous avez maintenant un système de recommandation que vous avez construit en une semaine sans doctorat, juste AstraDB et votre LLM de choix.

Le modèle traditionnel est-il toujours utile ?

Travis Fisher a raison quand il dit de n'envisager d'affiner ou de personnaliser les modèles qu'une fois que vous avez épuisé les approches plus simples avec les LLM. Cependant, les LLM sont plus lents et plus chers que les modèles personnalisés avec des vecteurs de caractéristiques plus petits et/ou plus soigneusement réglés. De plus, dans des cas d'utilisation comme celui de Netflix où vous souhaitez prendre des entrées lisibles par machine et récupérer des sorties lisibles par machine, vous pouvez généralement obtenir des résultats plus précis avec un modèle personnalisé qu'en faisant des allers-retours à travers le texte et l'anglais.


Mais même si vous avez besoin de créer un modèle personnalisé, les LLM peuvent vous aider à générer des données, des étiquettes et des fonctionnalités pour le faire. Cela, cependant, est un sujet pour un autre article!

Comment puis-je essayer cela?

je recommande la lecture Vers l'article de Data Science couvrant le niveau suivant sur la façon dont tout cela fonctionne. Alors s'inscrire pour Astra DB avec recherche vectorielle, et inscrivez-vous à notre webinaire du 15 juin sur la recherche de vecteurs pour les LLM. Préparez-vous : ça va être amusant !



Par Jonathan Ellis, DataStax