Comment construire un Chatbot avec des modèles génératifs comme GPT-4, ChatGPT, LLaMA 3, et Mixtral 8x7b

La demande d'IA conversationnelle ne cesse de croître, tout comme le besoin de technologies avancées pour les chatbots, capables de fournir des interactions personnalisées, semblables à celles des humains. Ces dernières années, des modèles génératifs tels que GPT-4 et ChatGPT, et des alternatives open-source telles que LLaMA 3 et Mixtral 8x7b sont apparus comme des outils prometteurs pour construire des chatbots capables de comprendre et de répondre à des entrées en langage naturel avec une précision et une sophistication sans précédent.

Dans cet article, nous allons explorer les bases des modèles génératifs et la façon dont ils peuvent être utilisés pour construire des chatbots.

Chatbot et IA conversationnelle

LLaMA 3 et Mixtral 8x7b : alternatives libres à ChatGPT et GPT-4

ChatGPT et GPT-4 sont deux modèles linguistiques avancés développés par l'OpenAI. ChatGPT, abréviation de "Chat Generative Pre-training Transformer", est un grand modèle de langage capable de générer des textes de type humain à partir de ses données d'entraînement. Il a été introduit en novembre 2022 et a rapidement attiré l'attention pour sa capacité à interagir avec les utilisateurs de manière conversationnelle, en répondant à des questions, en fournissant des informations et en s'engageant dans diverses tâches.

GPT-4, ou "Generative Pre-training Transformer 4", est le successeur de GPT-3 et a été annoncé par OpenAI en mars 2023. Il représente une avancée significative dans le domaine des modèles de langage de l'IA, avec une taille encore plus grande et des capacités améliorées par rapport à ses prédécesseurs. GPT-4 est capable de générer des textes très détaillés et précis dans un large éventail de domaines, notamment le traitement du langage naturel, la programmation informatique et la création littéraire.

ChatGPT et GPT-4 sont formés sur de grandes quantités de données en utilisant l'apprentissage non supervisé, ce qui leur permet de comprendre et de générer du langage humain avec une précision et une fluidité remarquables. Ces modèles ont ouvert de nouvelles possibilités pour le développement de l'IA conversationnelle, la génération de contenu et diverses autres applications dans des secteurs tels que le service à la clientèle, l'éducation et le divertissement.

Peu après, LLaMA 3 a été publié par Meta, et Mixtral 8x7b a été publié par la startup française Mistral AI. Ces modèles génératifs sont des alternatives open-source à ChatGPT et GPT-4. Ce sont de très bons candidats si vous souhaitez construire un chatbot avancé. Vous pouvez déployer LLaMA 3 et Mixtral sur vos propres serveurs, ou les utiliser facilement via l'API NLP Cloud.

Tous ces modèles génératifs d'intelligence artificielle requièrent cependant un peu de pratique. Tout d'abord parce que ces modèles doivent recevoir les bonnes instructions pour se comporter comme prévu. Et aussi parce qu'ils sont "sans état", c'est-à-dire qu'ils ne conservent pas l'historique de vos conversations.

Utiliser la bonne invite pour votre Chatbot

Si vous envoyez naïvement des demandes à ces modèles sans un peu de contexte et de formatage, vous serez déçu par les réponses. En effet, ces modèles sont très polyvalents. Ils peuvent non seulement aider à créer des chatbots, mais aussi de nombreuses autres applications telles que la réponse aux questions, le résumé, la paraphrase, la classification, l'extraction d'entités, la génération de descriptions de produits, et bien plus encore. La première chose à faire est donc d'indiquer au modèle quel "mode" il doit adopter.

Voici un exemple de demande que vous pourriez envoyer :

This is a discussion between a [human] and an [ai]. 
The [ai] is very nice and empathetic.

[human]: I broke up with my girlfriend...
[robot]:
            

Dans cet exemple, vous pouvez noter 2 choses.

Tout d'abord, nous avons ajouté une simple mise en forme afin que le modèle comprenne qu'il est en mode conversationnel : ([human], [ai], ...).

Deuxièmement, nous avons ajouté un contexte en haut de page afin d'aider le modèle à comprendre ce qu'il fait et le ton qu'il doit utiliser.:

Afin de simplifier ce processus, OpenAI et NLP Cloud proposent tous deux des points d'accès à l'API dédiée aux chatbots, qui se chargent de cette mise en forme pour vous.

Parfois, le contexte ne suffit pas. Imaginez par exemple que vous souhaitiez créer un chatbot avec un ton et un caractère très spécifiques. Dans ce cas, vous devrez affiner votre propre modèle génératif. Vous pouvez affiner votre propre chatbot basé sur l'IA générative sur OpenAI et sur NLP Cloud.

Un autre scénario est celui où vous souhaitez créer un chatbot qui répond à des questions portant sur des connaissances spécifiques à un domaine. Dans ce cas, le réglage fin n'est pas la solution. Vous devrez plutôt créer votre propre système de génération augmentée de recherche (RAG) basé sur la recherche sémantique. Voir notre article dédié à RAG et à la recherche sémantique ici.

Maintenir un historique des conversations pour votre Chatbot

Les modèles d'IA générative sont des modèles "sans état", ce qui signifie que chaque demande que vous faites est nouvelle et que l'IA ne se souviendra pas des demandes précédentes que vous avez faites.

Pour de nombreux cas d'utilisation, ce n'est pas un problème (résumé, classification, paraphrase...), mais en ce qui concerne les chatbots, c'est définitivement un problème car nous voulons que notre chatbot mémorise l'historique de la discussion afin d'apporter des réponses plus pertinentes.

Par exemple, si vous dites à l'IA que vous êtes un programmeur, vous voulez qu'elle le garde en mémoire car cela aura un impact sur les réponses suivantes qu'elle donnera.

La meilleure façon d'y parvenir est de stocker chaque réponse de l'IA dans une base de données locale. Par exemple, la base de données PostgreSQL permet de stocker des textes longs, avec une très bonne efficacité.

Ensuite, chaque fois que vous adressez une nouvelle demande au chatbot, vous devez procéder comme suit :

Il s'agit d'un système polyvalent et robuste qui nécessite peu d'efforts et qui exploite parfaitement la puissance des modèles génératifs tels que GPT-4, ChatGPT, LLaMA 3 et Mixtral.

Il est important de noter que chaque modèle a sa propre taille de contexte qui déterminera la quantité de texte que vous pouvez passer à l'historique. Par exemple, la taille de contexte actuelle de GPT-4 est de 8k tokens (soit plus ou moins 7k mots) et la taille de contexte actuelle de Mixtral 8x7b est de 16k tokens sur NLP Cloud (soit plus ou moins 14k mots). Par conséquent, si l'historique de vos conversations dépasse cette taille, vous pouvez soit tronquer la partie la plus ancienne de l'historique, soit ne conserver que les parties les plus importantes des discussions.

Restrictions de contenu pour un chatbot

L'OpenAI a mis en place des restrictions de contenu sur ChatGPT et GPT-4 afin de s'assurer que le texte généré par l'IA respecte ses directives. En contrôlant et en réglementant le contenu généré par les chatbots, l'OpenAI vise à créer une expérience utilisateur plus positive et plus fiable. Il s'agit notamment de bloquer les demandes d'informations sur certains sujets ou de ne fournir que des informations vérifiées au préalable et dignes de confiance.

Certains préfèrent cependant utiliser des modèles génératifs qui ne sont pas soumis à de telles restrictions et trouvent que la qualité des réponses est plus variée et plus précise. LLaMA 3 et Mixtral 8x7b n'ont pas de telles restrictions. Lors de l'utilisation de ces modèles d'IA, il incombe au développeur d'utiliser l'IA de manière responsable. Si nécessaire, des limitations peuvent encore être mises en œuvre en créant le bon message-guide pour le chatbot, en affinant votre propre chatbot ou en filtrant les demandes des utilisateurs avant qu'elles n'atteignent le modèle d'IA.

Conclusion

Les modèles d'IA générative tels que GPT-4, ChatGPT, LLaMA 3 et Mixtral 8x7b ont réellement fait passer les chatbots et l'IA conversationnelle au niveau supérieur. Ces modèles avancés sont très efficaces pour comprendre votre contexte et s'y adapter. Dans la plupart des cas, il suffit de définir le bon contexte, mais pour les cas d'utilisation avancés, la meilleure solution consiste à former/affiner votre propre modèle d'IA (ce qui est assez facile car ces modèles nécessitent de très petits ensembles de données).

Sur NLP Cloud, vous pouvez facilement essayer LLaMA 3 et Mixtral 8x7b, entre autres modèles. Vous pouvez également les affiner et déployer vos propres modèles d'IA générative en un seul clic. Si ce n'est pas encore fait, essayez NLP Cloud gratuitement.

Si vous avez des questions sur la façon de mettre en œuvre votre propre chatbot, n'hésitez pas à nous contacter !

François
Ingénieur full-stack chez NLP Cloud