Comment construire un Chatbot en utilisant Streamlit et Llama 2

Llama 2 est un grand modèle linguistique (LLM) open-source développé par Meta. Il s’agit d’un modèle de grande langue open-source compétent, sans doute meilleur que certains modèles fermés comme GPT-3.5 et PaLM 2. Il se compose de trois tailles de modèles de texte génératifs pré-entraînés et finement réglés, y compris les modèles à 7 milliards, 13 milliards et 70 milliards de paramètres.

Vous explorerez les capacités conversationnelles de Llama 2 en construisant un chatbot à l’aide de Streamlit et de Llama 2.

Comprendre Llama 2 : caractéristiques et avantages

Quelle est la différence entre Llama 2 et son prédécesseur, le grand modèle linguistique Llama 1 ?

  • Taille du modèle plus importante : Le modèle est plus grand, avec jusqu’à 70 milliards de paramètres. Cela lui permet d’apprendre des associations plus complexes entre les mots et les phrases.
  • Amélioration des capacités de conversation: L’apprentissage par renforcement à partir du feedback humain (RLHF) améliore les capacités de l’application conversationnelle. Cela permet au modèle de générer un contenu semblable à celui d’un humain, même lors d’interactions alambiquées.
  • Inférence plus rapide: Il introduit une nouvelle méthode appelée attention groupée pour accélérer l’inférence. Cela permet de construire des applications plus utiles comme les chatbots et les assistants virtuels.
  • Plus efficace: Il est plus économe en mémoire et en ressources informatiques que son prédécesseur.
  • Licence libre et non commerciale : Il s’agit d’un logiciel libre. Les chercheurs et les développeurs peuvent utiliser et modifier Llama 2 sans restrictions.

Llama 2 est nettement plus performant que son prédécesseur à tous les égards. Ces caractéristiques en font un outil puissant pour de nombreuses applications, telles que les chatbots, les assistants virtuels et la compréhension du langage naturel.

Mise en place d’un environnement Streamlit pour le développement de chatbots

Pour commencer à construire votre application, vous devez mettre en place un environnement de développement. Cela permet d’isoler votre projet des projets existants sur votre machine.

Commencez par créer un environnement virtuel à l’aide de la fonction Pipenv comme suit :

Voir aussi :  Comment importer et exporter des fonctions en JavaScript

Ensuite, installez les bibliothèques nécessaires pour construire le chatbot.

Streamlit: C’est un cadre d’application web open-source qui rend rapidement les applications d’apprentissage automatique et de science des données.

Répliquer: Il s’agit d’une plateforme cloud qui permet d’accéder à de grands modèles d’apprentissage automatique open-source à des fins de déploiement.

Obtenez votre jeton API Llama 2 auprès de Replicate

Pour obtenir une clé de jeton Replicate, vous devez d’abord créer un compte sur Replicate en utilisant votre compte GitHub.

Replicate ne permet de se connecter que par l’intermédiaire d’un compte GitHub.

Une fois que vous avez accédé au tableau de bord, naviguez jusqu’à la section Explorer et recherchez le chat Llama 2 pour voir le fichier llama-2-70b-chat modèle.

Cliquez sur le llama-2-70b-chat pour afficher les points d’extrémité de l’API Llama 2. Cliquez sur le modèle API sur le bouton llama-2-70b-chat de la barre de navigation du modèle. Dans la partie droite de la page, cliquez sur le bouton Python sur le côté droit de la page, cliquez sur le bouton Python . Cela vous permettra d’accéder au jeton API pour les applications Python.

Copiez le bouton REPLICATE_API_TOKEN et le conserver en lieu sûr pour une utilisation ultérieure.

Le code source complet est disponible dans ce dépôt GitHub.

Construire le Chatbot

Tout d’abord, créez un fichier Python appelé llama_chatbot.py et un fichier env (.env). Vous écrirez votre code dans llama_chatbot.py et stockerez vos clés secrètes et vos jetons d’API dans le fichier .env.

Dans le fichier llama_chatbot.py, importez les bibliothèques comme suit.

Ensuite, définissez les variables globales du fichier llama-2-70b-chat modèle.

Dans le fichier .env, ajoutez le jeton Replicate et les points d’extrémité du modèle dans le format suivant :

Collez votre jeton de réplication et enregistrez le fichier .env.

Conception du flux conversationnel du chatbot

Créez un pré-prompt pour démarrer le modèle Llama 2 en fonction de la tâche que vous souhaitez lui confier. Dans ce cas, vous souhaitez que le modèle agisse en tant qu’assistant.

Voir aussi :  7 astuces pour écrire un meilleur code Python

Configurez la page de votre chatbot comme suit :

Écrire une fonction qui initialise et configure les variables d’état de la session.

La fonction définit les variables essentielles comme chat_dialogue, pre_prompt, llm, top_p, max_seq_len et température dans l’état de la session. Il gère également la sélection du modèle Llama 2 en fonction du choix de l’utilisateur.

Écrire une fonction pour rendre le contenu de la barre latérale de l’application Streamlit.

La fonction affiche l’en-tête et les variables de réglage du chatbot Llama 2 pour les ajustements.

Écrire la fonction qui rend l’historique du chat dans la zone de contenu principal de l’app Streamlit.

La fonction itère à travers le chat_dialogue sauvegardé dans l’état de la session, en affichant chaque message avec le rôle correspondant (utilisateur ou assistant).

Traitez l’entrée de l’utilisateur à l’aide de la fonction ci-dessous.

Cette fonction présente le l’utilisateur un champ de saisie dans lequel il peut entrer ses messages et ses questions. Le message est ajouté à la page dialogue_chat dans l’état de la session avec l’élément utilisateur une fois que l’utilisateur a envoyé le message.

Écrire une fonction qui génère des réponses à partir du modèle Llama 2 et les affiche dans la zone de discussion.

La fonction crée une chaîne d’historique de la conversation qui comprend les messages de l’utilisateur et de l’assistant avant d’appeler le rôle debounce_replicate_run pour obtenir la réponse de l’assistant. Il modifie continuellement la réponse dans l’interface utilisateur pour offrir une expérience de chat en temps réel.

Écrire la fonction principale responsable du rendu de l’ensemble de l’application Streamlit.

Elle appelle toutes les fonctions définies pour configurer l’état de la session, rendre la barre latérale, l’historique du chat, gérer les entrées de l’utilisateur et générer les réponses de l’assistant dans un ordre logique.

Voir aussi :  Comment dessiner différentes formes en utilisant une tortue en Python.

Écrivez une fonction pour invoquer la fonction render_app et démarrer l’application lorsque le script est exécuté.

Votre application devrait maintenant être prête à être exécutée.

Traitement des demandes d’API

Créez une utils.py dans le répertoire de votre projet et ajoutez la fonction ci-dessous :

Cette fonction exécute un mécanisme d’amortissement pour éviter les requêtes API fréquentes et excessives à partir de l’entrée d’un utilisateur.

Ensuite, importez la fonction de réponse debounce dans votre fichier llama_chatbot.py comme suit :

Exécutez maintenant l’application :

Résultat attendu :

La sortie montre une conversation entre le modèle et un humain.

Applications réelles des chatbots Streamlit et Llama 2

Voici quelques exemples concrets d’applications de Llama 2 :

  • Chatbots: Son utilisation s’applique à la création de chatbots à réponse humaine qui peuvent tenir des conversations en temps réel sur plusieurs sujets.
  • Assistants virtuels: Son utilisation s’applique à la création d’assistants virtuels qui comprennent et répondent à des requêtes en langage humain.
  • Traduction linguistique: Son utilisation s’applique aux tâches de traduction linguistique.
  • Résumé de texte: Son utilisation s’applique au résumé de textes volumineux en textes courts pour faciliter la compréhension.
  • Recherche: Vous pouvez utiliser Llama 2 à des fins de recherche en répondant à des questions sur toute une série de sujets.

L’avenir de l’IA

Avec des modèles fermés comme GPT-3.5 et GPT-4, il est assez difficile pour les petits joueurs de construire quelque chose de substantiel en utilisant les LLMs puisque l’accès à l’API du modèle GPT peut être assez coûteux.

L’ouverture à la communauté des développeurs de grands modèles linguistiques avancés tels que Llama 2 n’est que le début d’une nouvelle ère de l’IA. Elle conduira à une mise en œuvre plus créative et innovante des modèles dans les applications du monde réel, ce qui accélérera la course vers la superintelligence artificielle (ASI).

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *