Application de grands modèles de langage
OpenAI ChatGPT a pris d'assaut le monde. Le taux d'adoption sans précédent par les utilisateurs s'est accompagné d'une expérimentation sans précédent de son API par la communauté des développeurs. Pas un seul jour ne passe sans qu'un ou deux, mais plusieurs PoC soient publiés sur des blogs ou tweetés. Ceux-ci sont ensuite améliorés par un autre ensemble de développeurs alimentant la frénésie technologique.
Le développement de nouveaux grands modèles de langage (LLM) s'est également beaucoup accéléré. De nouveaux modèles sont annoncés par des entreprises ou rendus open source. De nombreux projets open source ont été disponibles ou lancés pour résoudre diverses facettes de l'énoncé du problème, de la formation de modèles personnalisés à l'affinement, au corpus de données, etc.
Dans le même temps, la communauté des développeurs a travaillé rapidement pour publier des frameworks qui faciliteraient le fonctionnement avec LLM. Des frameworks comme LangChain et Llama Index fournissent un code passe-partout et des frameworks qui résolvent de nombreux cas généraux et spécifiques. De plus, on peut les utiliser pour construire ses propres cas d'utilisation complexes.
Ainsi, nous voyons que l'ensemble du paysage évolue à un rythme extrêmement rapide. En fait, des frameworks comme LangChain donnent une version mineure tous les deux jours.
Application d'OpenAI
Les énormes données de formation d'OpenAI LLM leur donnent accès à un corpus de connaissances extrêmement vaste. Cela les rend intrinsèquement idéaux pour travailler autour de cas d'utilisation basés sur le contenu.
Certains cas d'utilisation où ils ont déjà été appliqués sont :
- Résumé
- Enrichissement de contenu
- Création de titre
- Reformulation
- Création de plusieurs formats comme des formulaires courts, des tweets, des points de présentation, etc.
Dans les cas ci-dessus, les capacités linguistiques du LLM ont été utilisées pour résoudre ou aider au travail lié au contenu.
D'autres cas d'utilisation où les connaissances inhérentes au LLM sont utilisées sont :
- Génération de contenu de quiz
- Sondages ou questionnaire d'enquête.
Passer un contexte d'entrée et répondre aux questions sur le même est une tâche à laquelle les LLM sont tout à fait aptes. Cette fonctionnalité est utilisée pour de nombreux contenus, tels que l'obtention de réponses à des questions sur des articles longs ou des documents PDF.
La solution globale consiste à créer une invite au format général suivant :
Contexte:
La vallée de Ziro, dans l'Arunachal Pradesh, abrite la tribu Apatani et est connue pour ses vues parfaites sur la vallée. Ziro est à environ 167 km de la capitale Itanagar, et la route qui y mène est l'une des routes les plus pittoresques que vous ferez dans l'Arunachal Pradesh. La vallée est entourée d'une forêt luxuriante et de fermes en terrasse qui ont l'air magnifiques à tout moment de l'année. En regardant les doux ruisseaux qui gargouillent au bord de la route, vous ressentez un sentiment de paix à Ziro. Pas étonnant, la vallée est l'un des endroits les plus visités de l'Arunachal Pradesh.
Ce cadre idyllique de la vallée du Ziro est l'une des principales raisons pour lesquelles le festival annuel de musique de Ziro se tient ici, au cœur des vertes prairies. Le lieu du festival est l'un des plus beaux lieux de l'Inde. Les mélomanes de toute l'Inde et du monde viennent ici pour le festival et la bonne ambiance.
Instructions rapides : Répondez à la question ci-dessous en 100 mots à partir du contexte fourni ci-dessus
Question : À quelle distance se trouve Ziro de la capitale ?
Répondre:
Le LLM fournit la réponse à la requête à partir du contexte fourni. Il faut jouer avec la configuration de l'invite pour obtenir le résultat souhaité.
Cette approche globale ouvre le monde pour répondre aux requêtes des utilisateurs sur la base d'un corpus de contenu. Par exemple, un corpus créé d'actualités et d'articles sur le budget peut être utilisé pour répondre simplement aux questions que les lecteurs peuvent avoir. Cela court-circuite le modèle traditionnel de l'utilisateur fournissant une chaîne de recherche, puis un ensemble de liens d'articles sont affichés, que l'utilisateur doit lire pour obtenir la réponse qu'il souhaite. Cela offre une bien meilleure expérience utilisateur et leur fait gagner beaucoup de temps.
L'approche consiste à fournir le bon contexte au LLM afin qu'il puisse répondre à la requête. Ainsi, le problème est maintenant de savoir comment identifier le bon ensemble d'extraits du corpus qui sont pertinents pour la requête, car l'application LLM a des limites sur la quantité d'entrées qui peuvent être envoyées.
C'est principalement un problème de recherche maintenant. Le contenu peut être décomposé en extraits et indexé. Une base de données vectorielle comme Pinecone ou Milvus peut être utilisée pour le faire. Le contenu est vectorisé et stocké dans la base de données. Lorsque l'utilisateur pose une question, vectorisez simplement la requête et effectuez une recherche de similarité pour obtenir les extraits pertinents.
Recherche de texte libre plus intelligente
La recherche en texte libre est plus facile d'un point de vue UX par rapport à la recherche traditionnelle basée sur des filtres. Cependant, cela implique de développer une logique d'analyse complexe pour identifier les filtres de recherche à partir de l'entrée textuelle fournie par l'utilisateur. Ainsi, il est sujet aux bogues ou à un petit ensemble de formats d'entrée textuels fixes.
La capacité linguistique de LLM peut être exploitée ici pour analyser le texte de recherche et identifier les paramètres de recherche.
La solution globale consiste à créer une invite au format général suivant :
Instructions d'invite : analysez la requête d'entrée fournie dans le format JSON suivant »
Format JSON :
{"place": "Le lieu que l'on visite. Obligatoire », « checkInDate » : « La date d'arrivée pour la réservation. Obligatoire. Format jj/mm/aaaa”, “checkOutDate” : “ La date de départ pour la réservation. Obligatoire. Enregistrement par défaut plus 2 jours. Format jj/mm/aaaa", "minimumRating": "Classement minimum requis pour l'hôtel. Facultatif », « maximumPricePerNight » : « Prix maximum par nuit que l'on est prêt à payer. Facultatif" }
Exemples:
Question : Vous recherchez des chambres du 23 juillet au 28 juillet à Shimla avec une note de 4 et plus.
Réponse : {"place": "Shimla" , "checkInDate": "23/07/2023", "checkOutDate" : "28/07/2023", "minimumRating": "4"}
Question : Recherche de chambres à partir du 15 août pour 3 jours à Darjeeling.
Réponse : {"place": "Darjeeling", "checkInDate": "15/08/2023", "checkOutDate" : "17/08/2023"}
Question : Partir en vacances à Pondichéry pendant 5 jours à partir du 3 septembre.
Répondre:
Dans ce cas, nous avons utilisé une capacité du LLM appelée Zero Shot Learning. Outre les instructions, nous avons également donné quelques exemples d'exemples pour montrer le résultat attendu pour un ensemble de questions. LLM a démontré de grandes capacités à affiner son comportement en apprenant à partir du petit ensemble d'échantillons.
Le LLM analyserait la requête de l'utilisateur et fournirait un JSON dans un format fixe. La même chose peut ensuite être simplement utilisée pour activer la fonctionnalité de recherche réelle.
Dans ce cas, le LLM est essentiellement un analyseur de texte intelligent.
Robot d'assistance
Prenons un exemple d'application de réservation de voyage pour explorer ce cas d'utilisation.
Un utilisateur interagit avec un bot de support pour obtenir des réponses à des questions sur l'utilisation d'une application, ou des avantages généraux, etc. Ou il souhaite obtenir des réponses sur les transactions qu'il a effectuées sur l'application.
Un corpus de l'utilisation générale des applications, les contenus associés à l'application peuvent être créés pour répondre aux requêtes sur la même.
De même, un analyseur de requêtes intelligent basé sur LLM peut être utilisé pour analyser les requêtes des utilisateurs concernant leurs réservations, puis récupérer les enregistrements de réservation. Puisqu'une application peut avoir plusieurs types de transactions utilisateur, l'analyseur LLM peut être réglé pour fournir le type de transaction ainsi que les paramètres de la transaction particulière.
L'intégration des deux fonctionnalités ensemble sur un seul bot frontal impliquerait également une étape dans laquelle nous devons identifier quelle est l'intention de l'utilisateur, si la requête concerne la façon d'effectuer une transaction ou le statut de la dernière transaction. Ici, le LLM peut être utilisé pour identifier correctement l'intention de l'utilisateur.
Ainsi, la solution globale implique :
- Identification de l'intention : requête de corpus ou requête de réservation
- Traitement d'une requête de corpus
- Recherche de corpus
- Identifier les extraits pertinents
- Invoquer LLM en passant des extraits pertinents et la requête de l'utilisateur.
- Traitement de la requête de réservation
- Invoquer LLM pour identifier le type et les paramètres
- Analysez le JSON de la réponse LLM.
- Invoquer les fonctions appropriées.
LLM vient avec quelques défis à relever.
Traditionnellement, les développeurs sont habitués à travailler dans un monde déterministe. Les réponses de l'invocation de fonction sont de nature déterministe même lorsqu'elles échouent et génèrent des erreurs.
Cependant, LLM fonctionne de manière probabiliste. Leurs réponses ne sont pas nécessairement toujours celles que nous prédisons. Cela signifie que lors du développement d'applications qui les utilisent, les développeurs doivent toujours en être conscients et développer la résilience appropriée pour gérer les imprévus.
Les temps de réponse de l'API OpenAI sont de nature très sensible. Ils vont de 2 à 12 secondes. Cela dépend beaucoup de la quantité de contenu impliqué. Par exemple, envoyer un grand contexte et attendre une réponse détaillée à une requête impliquerait beaucoup de calculs pour le LLM, donc les temps de réponse seraient plus élevés. Certaines d'entre elles peuvent être gérées sur le plan de la perception en passant aux API de streaming, mais cela signifierait toujours que la réponse finale se termine après un temps relativement long, par rapport aux SLA de temps de réponse des API traditionnels.
Les invites sont le principal moyen d'indiquer aux LLM ce que nous voulons qu'ils fassent. Il est donc essentiel d'obtenir les bonnes invites. Cependant, il existe une courbe d'apprentissage associée à la même chose. De plus, les invites fonctionnant avec une version de LLM fonctionnent légèrement différemment avec une autre, nécessitant des ajustements pour faire de même.
LLM en tant que technologie a ouvert les possibilités d'inventer de nouvelles façons de résoudre les problèmes. Nous sommes encore sur le point de comprendre son véritable potentiel. Les nouvelles idées qui inondent Internet chaque jour témoignent du fait que des temps passionnants nous attendent.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































