LLMs : Un cas d'usage réel
TLDR : Nous avons travaillé à l'implémentation de LLMs, de BDD vectorielle et de RAG pour elMejorTrato.com. Nous avons conclu que :
- Travailler avec le langage espagnol a ses particularités
- L'API ChatGPT est trop coûteuse
- LangChain et les agents sont parfois excessivement complexes
- Avec SentenceBert et une BDD vectorielle, des choses marquantes peuvent être réalisées
- Les LLMs quantisés open source donnent de très bons résultats
Nous mettons à disposition ici le code de base open source dockerisé pour que vous puissiez l’utiliser dans vos projets
Création d'un prototype
Les grands modèles linguistiques, qui ont gagné en popularité depuis que ChatGPT a été mis à disposition du grand public, ont suscité un enthousiasme pour leurs utilisations futures. Il existe de nombreux exemples de LLMs utilisés pour simuler l'intelligence artificielle générale, qui semblent véritablement futuristes. Ici, nous nous concentrerons sur l'utilisation des LLMs pour un cas spécifique sur le site elMejorTrato.com.
Les LLMs ont introduit deux merveilleuses nouveautés pour les développeurs logiciels :
- La capacité d'interprétation du langage naturel.
- La capacité de recherche vectorielle sur du texte, de l’audio et des images.
Un exemple spécifique sur elMejorTrato.com était que plutôt que d'entrer un nombre, les utilisateurs avaient l'option d'entrer le montant du prêt qu'ils souhaitaient rechercher sous forme de texte, comme « J’ai besoin de $10,000 pour agrandir ma maison ». La solution était de remplacer une case de saisie par une liste déroulante. Aujourd'hui, grâce aux capacités d'interprétation du langage naturel fournies par les LLMs, les interactions peuvent être mieux capturées, offrant aux utilisateurs un meilleur service.
Un deuxième exemple est la capacité de répondre aux questions des utilisateurs à partir de réponses déjà données à d’autres utilisateurs en utilisant des recherches vectorielles sur du texte à l'aide d'embeddings générés par les LLMs.
Pour tester ces nouvelles solutions, nous avons créé un prototype à partir d'un fork de ce très bon template de Docker avec les adaptations suivantes :
- Un prompt pour que llama2 fonctionne correctement en espagnol.
- Un modèle d'embeddings en espagnol de l’Université du Chili.
- Weaviate comme base de données pour effectuer des recherches hybrides (vectorielle, textuelle) et également pour pouvoir l'utiliser localement ou dans le cloud.
- Simplification du code pour le rendre plus facile à comprendre et à adapter à votre projet.