Publié le 13 janvier 2024
Cet article est le premier d'une série en trois parties sur les LLM et les chatbots. La partie 2 sur la création d'un chatbot avec WebLLM et la partie 3 sur l'utilisation de l'API Prompt sont déjà disponibles.
Les grands modèles de langage (LLM) deviennent un élément important du développement logiciel: ils sont bien adaptés à la génération et au traitement de texte en langage naturel, ce qui ouvre des cas d'utilisation tels que l'extraction de données, la synthèse ou la facilitation des dialogues avec les données utilisateur.
Dans cette série, je présente les avantages et les inconvénients des LLM sur l'appareil, et je vous explique comment ajouter des fonctionnalités de chatbot à une application existante à l'aide de deux approches locales et hors connexion : le runtime WebLLM basé sur le Web et l'API Prompt expérimentale de Chrome.
Cas d'utilisation possibles
Nous allons créer un chatbot sur une application de liste de tâches classique. Le code source de chaque étape est disponible sur GitHub. Les utilisateurs peuvent ajouter des tâches, les marquer comme terminées et les supprimer.
Vous pouvez ajouter une fonctionnalité permettant aux utilisateurs d'en savoir plus sur les données de la liste de tâches ou d'effectuer des fonctions supplémentaires. Une fonctionnalité de chatbot peut permettre aux utilisateurs:
- Demandez le nombre de tâches ouvertes.
- Identifier les tâches en double ou très similaires.
- Classez les tâches par groupes.
- Recevoir des recommandations de nouvelles tâches en fonction de celles que vous avez terminées
- Traduire des tâches dans différentes langues
- Exportez la liste de tâches au format XML.
Il ne s'agit là que de quelques exemples de tâches que les LLM peuvent gérer.
Que sont les grands modèles de langage ?
Les LLM sont des réseaux de neurones artificiels qui traitent et génèrent du texte en langage naturel. La plupart des LLM actuels sont basés sur l'architecture Transformer, développée chez Google. Par exemple, les modèles Gemini et Gemma de Google, la série de modèles GPT d'OpenAI et les modèles Open Source, tels que LLaMa de Meta AI et Mistral de Mistral AI.
Grâce à leur entraînement sur de vastes quantités de données, les LLM disposent d'une gamme impressionnante de fonctionnalités. Ils comprennent de nombreuses langues, ont des connaissances en culture générale, peuvent traduire entre les langues ou générer du code de programmation. L'étendue de ces fonctionnalités peut varier considérablement en fonction de la taille du modèle, comme indiqué dans la section Comprendre les tailles de LLM.
Les LLM entraînent un changement de paradigme dans l'architecture logicielle, car le langage naturel devient désormais une caractéristique essentielle de l'ingénierie logicielle. Au lieu d'appeler des API à l'aide d'interfaces bien définies, il suffit d'exprimer l'intent en langage naturel dans une requête.
Limites des LLM
Les LLM présentent également certaines limites:
- Comportement non déterministe: les LLM peuvent produire des réponses variables et parfois même contradictoires à la même requête, car leurs sorties dépendent de modèles probabilistes plutôt que de règles fixes.
- Hallucinations: ces modèles peuvent parfois générer des informations incorrectes ou absurdes, en s'appuyant sur des schémas appris plutôt que sur la précision factuelle.
- Injections de requêtes: les LLM peuvent être sujets à des attaques par injection de requêtes, où les utilisateurs créent des requêtes d'entrée qui manipulent le modèle pour qu'il s'écarte de sa fonction prévue ou produise des résultats indésirables.
Par conséquent, les utilisateurs doivent vérifier les résultats générés par les LLM avant de prendre des mesures conséquentes.
Lorsque vous utilisez des LLM sur l'appareil, vous devez tenir compte de leur taille. Ils atteignent des tailles de fichier de plusieurs gigaoctets et doivent être téléchargés sur l'appareil de l'utilisateur avant la première utilisation. Les modèles plus petits ont tendance à générer des réponses de moins bonne qualité, en particulier par rapport aux modèles basés sur le cloud.
Choisir des solutions locales
Votre premier réflexe pour intégrer un LLM à votre application Web peut être d'utiliser un fournisseur cloud. De nombreux fournisseurs proposent des LLM de haute qualité, dont certains sont exclusifs à des fournisseurs spécifiques. Les LLM cloud offrent une vitesse d'inférence rapide à un coût raisonnable, généralement calculé par jeton traité.
À l'inverse, les solutions locales présentent des avantages intéressants. En fonctionnant directement sur l'appareil de l'utilisateur, les LLM hébergés localement offrent des temps de réponse plus fiables, restent accessibles même lorsque l'utilisateur est hors connexion et ne nécessitent pas que les développeurs paient des frais d'abonnement ou d'autres coûts récurrents. Plus particulièrement, elles peuvent considérablement améliorer la sécurité des utilisateurs. En conservant toutes les activités sur l'appareil, vous pouvez éviter de transmettre des informations permettant d'identifier personnellement l'utilisateur à des fournisseurs ou régions externes.
Démonstrations
Vous pouvez consulter les démonstrations terminées avec des fonctionnalités de chatbot avant d'apprendre à en créer un vous-même.
- Application de tâches d'origine
- Application de tâches à faire avec WebLLM
- Application de tâches à faire avec l'API Prompt
- Source sur GitHub
Vous allez ensuite utiliser WebLLM pour ajouter un chatbot à l'application de liste de tâches.