La génération de réponses est la composante d’une solution RAG qui crée une réponse à la requête d’un utilisateur en s’appuyant sur les informations récupérées à partir des sources de données ou du corpus de textes ciblés de l’entreprise.
Les chiffres qui suivent les noms des LLM open source indiquent les paramètres du modèle. Par exemple, Granite 3.0 8B Instruct est un modèle avec 8 milliards de paramètres. Les paramètres sont les chefs d’orchestre qui orchestrent la manière dont le modèle manipule et comprend les entrées et dont il produit ses sorties. Ils peuvent se manifester sous forme de pondération ou de biais, déterminant l’importance des caractéristiques d’entrée pour la sortie générée.
Un nombre de paramètres élevé équivaut généralement à un modèle avec une complexité et une adaptabilité accrues (si cela peut varier d’une architecture à l’autre, c’est généralement la cas des architectures de type transformer). Un grand modèle de langage avec un nombre de paramètres élevé peut discerner des schémas plus complexes à partir des données, favorisant des sorties plus riches et plus précises. Mais, comme pour beaucoup de choses dans la vie, il y a un compromis à trouver. Une augmentation du nombre de paramètres implique des exigences de calcul plus élevées, des besoins en mémoire plus importants et un risque imminent de surapprentissage.
Le mode chat est conçu pour les contextes conversationnels, tandis que le mode instruction est conçu pour les tâches de traitement du langage naturel dans certains domaines.
Le réglage fin en mode chat permet au LLM de générer des réponses plus naturelles et plus cohérentes, pertinentes et engageantes pour l’utilisateur. Le réglage fin en mode instruction aide le LLM à mieux suivre différents types d’instructions et à générer des sorties précises, adaptées à la tâche.
Les LLM proposent quelques paramètres pour « configurer » la façon dont les réponses sont générées.
Tout d’abord, découvrons les règles de prompt pour améliorer la performance de la génération.
Ne pas commencer par rédiger un prompt très long pour ensuite le tester.
Par exemple, ne pas commencer par un long prompt comme :
- Tu travailles au service financier d’une grande entreprise d’électronique du S&P 1000. Tu dois résumer les transcriptions des réunions trimestrielles des actionnaires afin d’identifier les sujets clés, les tendances et le sentiment.
Réponds sous forme de liste numérique à puces.
Veille à ce que chaque élément soit une phrase complète.
N’hallucine pas. Réponds en t’appuyant uniquement sur les informations contenues dans la transcription.
Voici la transcription à résumer :
Mais commencez ici :
- Résume les principaux sujets abordés dans la transcription de la réunion suivante :
Éviter de trop modifier les paramètres du modèle.
Dans la plupart des cas :
Appliquer les meilleurs principes d’ingénierie :
Essayer de casser le prompt. Ne pas tester le prompt qu’une seule fois avant de crier victoire. Effectuer des dizaines de tests sur le prompt.
Créer un jeu de données de test et continuer à y ajouter des exemples. Après chaque sortie POC, faire un nouveau test pour s’assurer que le prompt continue de fonctionner.
Pas de souci, plusieurs prompts sont traités en parallèle avec watsonx.ai.
Diviser les tâches en sous-tâches.
Séparer chaque étape du processus en plusieurs prompts et leur modèle spécialisé.
Les modèles de chat nécessitent une conception de prompt différente de celle des modèles d’instruction.
Sérieusement, nous apprenons autant par le jeu que par le travail. Essayez les derniers LLM et mettez-les au défi en leur confiant des tâches qui ne relèvent pas de votre travail habituel.
Choisissez quelque chose que le LLM est susceptible d’accomplir.
Ajoutez des interactions multi-niveaux pour expérimenter l’enchaînement de vos prompts.
La modification du prompt système est tout aussi importante que la modification du prompt utilisateur. Le prompt système peut énormément affecter la qualité de la réponse, le ton, etc. Les prompts système définissent le contexte de l’interaction, guidant le comportement du modèle et garantissant la cohérence, tandis que les prompts utilisateur pilotent le contenu spécifique de la conversation. Il est crucial de pouvoir modifier les prompts système pour améliorer la performance.
Les prompts système fournissent les instructions sous-jacentes qui guident le comportement de l’IA tout au long de l’interaction. Ils définissent le rôle, le ton et les limites éthiques du modèle. L’utilisation de délimiteurs peut aider le modèle et éviter les injections de prompt. Les délimiteurs spécifient où, dans le prompt, vous insérez l’entrée utilisateur, ce qui aide le modèle à déterminer où commence et où se termine l’entrée utilisateur. Les délimiteurs permettent également d’éviter les injections de prompt. Les délimiteurs peuvent être du type : ``**, **”””**, **< >**, ** `.
Voici un exemple de prompt système pour le modèle Granite :
<|system|>\nTu es Granite Chat, un modèle de langage d’IA développé par IBM. Tu es un assistant prudent. Tu suis attentivement les instructions. Tu es serviable et inoffensif, tu respectes les règles éthiques et encourages un comportement positif. Tu réponds toujours aux salutations (par exemple, salut, coucou, bonjour, ça va, enchanté, ça roule, etc.) par « Bonjour, Je suis Granite Chat, créé par IBM. Comment puis-je vous aider aujourd’hui ? » Tu veilleras à ne rien dire d’autre et à ne pas entamer de conversation. {instruction}\n{session_history}<|user|>\n{query}\n<|assistant|>\n
Les prompts utilisateur sont les instructions ou les requêtes spécifiques fournies par l’utilisateur pour obtenir la réponse souhaitée à partir du modèle. Ils doivent être clairs et concis pour s’assurer que le modèle comprend la tâche.
Prompt Lab est une plateforme IBM qui vous permet de travailler avec des modèles de fondation et de créer des prompts à l’aide du prompt engineering. Dans Prompt Lab, les utilisateurs peuvent interagir avec les modèles de fondation dans l’éditeur de prompts en mode Chat, Freeform ou Structured. Toutes ces options vous permettront de créer les meilleures configurations de modèle pour tout un éventail de tâches de type traitement automatique du langage naturel (TAL), notamment la réponse aux questions, la génération et la synthèse de contenu, ainsi que la classification et l’extraction de texte.
Pour découvrir par où commencer et tout ce qui concerne Prompt Lab, veuillez consulter le site officiel de Prompt Lab.
Une stratégie émergente pour améliorer la précision des solutions RAG consiste à utiliser un modèle de génération affiné sur le corpus de données. Cela peut permettre d’améliorer la précision de bout en bout pour plusieurs raisons. La plus importante étant la capacité de la phase de génération à améliorer, voire à corriger les résultats de la récupération. Le modèle peut également fournir des réponses plus pertinentes et spécialisées, puisqu’il peut être adapté au contenu métier de votre entreprise.
Granite 3.0 comprend une gamme de modèles tels que Granite 3.0 8B Instruct, 2B Instruct, 8B Base et 2B Base, qui ont été entraînés sur plus de 12 000 milliards de jetons répartis dans 12 langages naturels et 116 langages de programmation. Ces modèles égalent ou surpassent les modèles de taille similaire des principaux fournisseurs sur des benchmarks universitaires et professionnels, affichant une forte performance dans des tâches telles que la compréhension du langage, la génération de code et la synthèse de documents.
Transparence et sécurité
L’engagement d’IBM en matière de transparence et de sécurité se reflète dans la divulgation détaillée des jeux de données, des processus de filtrage et de curation dans le rapport technique Granite 3.0. Les modèles sont publiés sous la licence permissive Apache 2.0, ce qui garantit la flexibilité et l’autonomie des entreprises clientes et de l’ensemble de la communauté d’IA. De plus, les modèles Granite Guardian 3.0 offrent des capacités complètes de détection des risques et des dommages, surpassant les autres modèles de sécurité disponibles sur le marché.
Efficacité et rentabilité
Les modèles Granite 3.0 sont conçus pour être rentables, permettant aux entreprises d’atteindre la performance d’un modèle de pointe à un coût nettement inférieur. L’utilisation d’InstructLab, une approche collaborative open source, permet d’adapter des modèles plus petits à des tâches spécifiques, en divisant par 3 à 23 fois le coût des modèles plus grands. Les modèles d’architecture Mixture of Experts (MoE), tels que le Granite 3.0 3B-A800M et 1B-A400M, offrent une grande efficacité d’inférence avec des compromis de performance minimes, ce qui les rend parfaits pour les applications à faible latence et les déploiements CPU.
Capacités multimodales et futures mises à jour
Fin 2024, les modèles Granite 3.0 devraient prendre en charge une fenêtre contextuelle étendue de 128 000 pixels et des fonctionnalités de compréhension multimodale des documents, y compris des tâches de type images en entrée, texte en sortie. Cette extension renforcera davantage leur utilité dans divers cas d’utilisation en entreprise.
Intégration de l’écosystème
Les modèles Granite 3.0 sont disponibles sur plusieurs plateformes, notamment watsonx.ai d’IBM, Hugging Face, Vertex AI de Google Cloud, microservices NIM Nvidia, Ollama et Replicate, offrant aux développeurs une large gamme d’options de déploiement et garantissant une intégration fluide avec les workflows existants. En résumé, les modèles Granite 3.0 d’IBM offrent une solution puissante, transparente et économique pour l’IA d’entreprise, alliant performance de pointe, fonctionnalités de sécurité robustes et support étendu de l’écosystème.
Pour découvrir par où commencer et tout ce qui concerne Granite, veuillez consulter le site officiel de Granite.
Le contenu et la structure des prompts soumis aux LLM peuvent grandement influencer la qualité et la fidélité des réponses qu’ils génèrent.
Les prompts peuvent être divisés en six grands types :
Les requêtes par mot-clé uniquement sont explicites ; ce sont des prompts composés de mots-clés liés au sujet en question. Par exemple, le prompt :
Quel est le temps de cuisson optimal pour un gâteau au chocolat en haute altitude ?
peut être réduit aux mots-clés suivants :
temps de cuisson gâteau au chocolat haute altitude
Les prompts par mots-clés uniquement génèrent généralement des réponses plus larges et plus axées sur un sujet, avec une forte pertinence du texte d’augmentation récupéré. Cet effet peut être souhaitable pour une solution nécessitant des réponses larges et informatives comme un chatbot d’assistant opérateur, mais cela peut générer trop d’informations pour les solutions nécessitant des réponses concises et conversationnelles.
Les prompts comparatifs demandent au LLM de faire des comparaisons entre un ou plusieurs sujets ou concepts du prompt. Par exemple :
Quelle est la différence entre une règle et une attribution de rôle ?
Les prompts comparatifs peuvent être utiles lorsque le modèle de génération et le corpus de référence contiennent des informations sur tous les concepts, ainsi que des dimensions évidentes ou des éléments d’appui sur la manière dont les concepts peuvent être efficacement comparés. Sans ces éléments, le prompt comparatif risque de générer une réponse absurde ou inefficace.
Les prompts agrégés demandent au modèle d’agréger deux ou plusieurs concepts ou requêtes en un seul prompt. Par exemple :
Comment créer une autorisation et un groupe d’autorisations ?
Les prompts agrégés sont généralement plus difficiles pour les LLM en raison de l’ambiguïté inhérente de la question.
Pour résoudre cette ambiguïté, il est généralement recommandé de diviser les prompts agrégés en plusieurs prompts à sujet unique, ou de fournir un contexte supplémentaire qui décrit explicitement la réponse souhaitée.
Un prompt ambigu est un prompt qui peut être interprété de plusieurs façons. Par exemple :
Qu’est-ce qu’un rôle ?
Ce prompt peut générer des réponses sur les rôles dans le contexte du jeu d’acteur et une discussion ultérieure sur les acteurs célèbres et leurs rôles, sur les rôles dans le contexte d’une solution de sécurité informatique, ou sur les rôles dans le contexte d’une entreprise. L’incertitude qu’ils génèrent fait des prompts ambigus un mauvais choix pour la plupart des solutions ; ils doivent être révisés pour inclure plus de détails et de contexte afin de concentrer le LLM sur le sujet souhaité.
Dans le contexte d’une solution RAG, un prompt déviant est un prompt sans réponse dans le corpus de documents d’appui. Cela peut conduire à des réponses hallucinées/improvisées basées sur les connaissances intégrées au LLM, ou à des réponses non pertinentes basées sur des résultats de recherche peu pertinents du corpus.
Bien qu’il puisse être impossible de se prémunir contre les réponses déviantes dans tous les cas d’utilisation (par exemple, un chatbot conversationnel), les développeurs de solutions peuvent les minimiser en limitant les entrées utilisateur au moyen de listes de choix, par exemple. « Je peux vous aider... » suivi d’une série de boutons de sujets prédéfinis, ou diriger les utilisateurs vers des réponses sûres par le biais d’un langage descriptif ou directif dans les instructions utilisateur et les réponses du modèle.
Les prompts indirects sont des prompts dont les mots-clés ne figurent pas directement dans le corpus, mais qui ont des synonymes qui, eux, y sont. Les prompts indirects représentent un défi pour les développeurs de solutions, car leur fiabilité dépend du nombre de synonymes des mots-clés du prompt et de la manière dont les synonymes conduisent à une requête sans ambiguïté.
Il est conseillé aux développeurs de mettre en place un mécanisme de filtrage des requêtes sur liste noire pour ajouter des informations claires aux mots-clés, ou pour remplacer les mots-clés « problématiques » par des synonymes ou des phrases sans ambigüité.
Si la création de « bons » prompts est autant un art qu’une science, il existe plusieurs pratiques acceptées qui favorisent de meilleurs prompts et donc de meilleurs résultats.
Un bon prompt est :
Pertinent pour le domaine cible et contient suffisamment de détails et de contexte pour que le contenu et le ton de la sortie souhaitée soient clairs et précis.
Adapté au public cible. Une réponse destinée à l’analyste financier d’une entreprise aura un ton, une structure et un contenu très différents de ceux d’une réponse destinée au client d’une banque. Un bon prompt comportera des instructions (« Tu es un analyste financier de niveau intermédiaire. Génère un rapport… ») ou une indication claire du public (« …rédigé pour un client bancaire qui ne connaît pas la terminologie financière ») pour la réponse.
Conçu pour un cas d’utilisation particulier. Un bon prompt sera conçu pour répondre à un cas d’utilisation spécifique et inclura des détails sur l’endroit et la façon dont la réponse générée sera utilisée (« ...la réponse sera publiée dans un magazine destiné aux voyagistes »), qui influenceront le ton, le langage et le style de la réponse générée.
Vicky Kuo, Chris Kirby, Luke Major, Atin Chandel, Brant Li, Evan Wheldon
Mise à jour : 15 novembre 2024