Hé ChatGPT, écrivez un article de blog sur l'ingénierie rapide [Partie 1] | Mendix

Passer au contenu principal

Hey ChatGPT, écris un article de blog sur l'ingénierie rapide [Partie 1]

Les grands modèles linguistiques (LLM) ont fait leur apparition il y a quelques années, promettant de révolutionner notre façon de travailler. Si leur émergence a certainement transformé de nombreux secteurs, elle a également créé une demande pour de nouvelles compétences, l'une des plus importantes étant l'ingénierie rapide.

L’ingénierie rapide implique la structuration habile d’instructions pour guider les modèles d’intelligence artificielle (IA) génératifs dans la production des résultats souhaités, alliant à la fois précision technique et créativité.

En structurant efficacement les messages, les utilisateurs finaux peuvent obtenir des réponses précises, de haute qualité, personnalisées et pertinentes, en évitant les réponses erronées, fabriquées ou dénuées de sens. Avec les modèles plus avancés d'aujourd'hui, il est devenu plus facile pour les modèles d'interpréter l'intention de l'utilisateur avec un minimum d'interventions, devenant ainsi plus conviviaux et, en échange, les utilisateurs ont adapté leur langage pour être mieux compris par les LLM. Vous en trouverez un exemple dans l'image ci-dessous.

 

Dans une conversation classique entre un utilisateur final et un chatbot, l'ingénierie des invites consiste à élaborer des questions ou des instructions spécifiques qui guident les réponses du chatbot, garantissant ainsi clarté et pertinence. Ces invites sont ensuite envoyées au modèle de langage pour traitement, et les réponses du LLM sont renvoyées via l'API.

Bien entendu, maîtriser les compétences nécessaires pour créer des invites reste un défi pour les nouveaux arrivants. Ne pas obtenir le bon résultat peut être frustrant. Cela vient souvent du fait de ne pas poser les bonnes questions ou de ne pas fournir la bonne invite. Dans cet article de blog, vous apprendrez à maîtriser l'art de créer des invites précises et efficaces grâce à la pratique et à l'expérimentation. Nous aborderons de nombreux sujets, des bases aux concepts avancés comme l'utilisation de techniques d'arbre de pensée dans une invite.

Ce blog s'appuie sur des idées lancées dans un autre article : Comment créer des applications plus intelligentes avec l'appel de fonctions et l'IA générativeNous vous recommandons vivement de le lire en premier, surtout si vous n'êtes pas familier avec l'appel de fonctions.

Différents types d'invites

Pour améliorer votre compréhension de Comment fonctionnent les modèles d'IA, il est essentiel de comprendre les différents types d'invites impliquées dans le processus d'interaction. Comme l'illustre l'image ci-dessus, l'invite système et l'invite utilisateur sont toutes deux envoyées au modèle de langage via des appels API. Ces invites remplissent différents rôles dans l'orientation des réponses de l'IA.

Invite système

Le invite du système représente le comportement et les lignes directrices fondamentales du modèle d'IA. Il donne au modèle, par exemple, un rôle, un ton, des règles éthiques et/ou une spécification de sujet. Cela est défini par un ingénieur d'invite - ou par vous, après avoir lu ce billet de blog. Un exemple de ce type d'invite est : «Vous êtes un assistant utile qui fournit uniquement des informations sur Mendix"- fournissant des directives directes sur le rôle, le contenu et les limites. Au fur et à mesure de votre lecture, vous trouverez des exemples supplémentaires et plus avancés.

Invite utilisateur

A invite utilisateur est un autre type fondamental. Il s'agit de la saisie, de la question ou de la demande de l'utilisateur envoyée au LLM comme illustré dans l'image partagée plus tôt dans cet article. C'est l'endroit où les utilisateurs finaux peuvent écrire ce qu'ils veulent, comme «Donnez-moi 5 idées pour créer une application cool en Mendix ». Bien entendu, pour des demandes plus complexes, les utilisateurs finaux peuvent utiliser cet article pour améliorer leurs compétences en matière de rapidité et obtenir des résultats plus fiables ou plus adaptés des LLM.

Invite contextuelle

Selon le projet ou le cas d'utilisation, l'ajout d'informations contextuelles au modèle peut être nécessaire ou requis. Normalement, ces informations, appelées invite contextuelle or historique des conversations, est envoyé dans la même interaction que l'invite système et utilisateur. Il capture les informations historiques de la conversation pour maintenir la cohérence avec l'utilisateur final et être sensible au contexte. Ceci est défini par les développeurs dans leur application, par exemple, dans Mendix, il est capturé via un microflux en utilisant le Opération de fin de conversation (avec historique).

Pour comprendre ce concept, imaginez un utilisateur interagissant avec un chatbot tout en demandant : « Comment dois-je commencer ? » Si lors des interactions précédentes, l'utilisateur a posé des questions sur Mendix, le LLM comprendra que la question fait référence à Mendix applications. Dans les cas où le contexte n'est pas nécessaire, comme dans les interactions basées sur des commandes où la demande pourrait être : "Allume la lumière" et le LLM n'a pas besoin de conversation historique, les développeurs peuvent utiliser des opérations comme Fin de la discussion (sans historique).

Bonnes pratiques essentielles pour une création rapide

Lorsque vous intégrez un nouveau membre de votre équipe, vous souhaitez vous assurer que la tâche que vous lui confiez sera exécutée de la manière la plus efficace et la plus rapide possible. Cela s'applique également au développement d'invites. Maintenant que vous connaissez quelques types et techniques d'invites, il est essentiel de comprendre les meilleures pratiques essentielles pour la création d'invites, telles que :

  • Être clair: Assurez-vous que l'invite contient des détails pertinents mettant l'accent sur un message clair et précis pour que le LLM puisse le comprendre. Évitez le langage complexe. Un exemple pourrait être de changer des phrases comme « Évaluer les méthodologies procédurales… », qui est une écriture académique plus formelle, « Expliquez le processus… ».
  • Décrivez le contexte: Fournir une histoire de fond, un scénario ou une explication au LLM donnera généralement un résultat plus précis en raison de l'établissement du contexte. Par exemple, si vous souhaitez que vos utilisateurs finaux en sachent plus sur Mendix, l'invite doit inclure ce détail.
  • Fournir des détails et des limites: En spécifiant des détails ou des limites dans l'invite, vous obtenez des réponses plus concrètes et plus adaptées à votre cas d'utilisation. Il peut s'agir d'instructions (par exemple, demander au LLM d'inclure des sources ou des exemples dans chaque réponse) ou d'ajuster l'apparence du résultat, par exemple en limitant la réponse à 100 mots ou en écrivant le résultat au format JSON.
  • Laissez le LLM assumer un rôle: En fournissant au LLM un personnage et un contexte sur son rôle, vous pouvez personnaliser le modèle pour mieux l'adapter à votre cas d'utilisation. Par exemple, vous créez une application qui enseigne la science des données. Ensuite, l'invite doit inclure le rôle d'un professeur dont le public est novice en science des données.
  • Affinez votre message et travaillez de manière itérative: Tester et améliorer l'invite est une pratique cruciale. Parfois, même des modifications mineures, comme dans la configuration du modèle, c'est-à-dire de GPT3.5-Turbo à GPT4o-mini, peuvent entraîner des différences significatives dans le comportement du LLM. La documentation de ces modifications et des résultats peut vous aider à trouver l'invite optimale pour votre cas d'utilisation. En option et si possible, demander à d'autres personnes de tester l'invite pour obtenir des commentaires peut fournir une autre forme d'affinement itératif.

Top 5 des techniques de promptitude

Plus un cas d'utilisation est complexe, plus l'invite peut devenir complexe. Cependant, ne vous inquiétez pas si le résultat initial n'est pas immédiatement celui souhaité. Au contraire, améliorez vos compétences en matière d'invite en utilisant l'une des techniques d'invite suivantes :

Technique rapide Ce que c'est Cas d'utilisation et exemple d'invite
Approche du modèle d'entretien L’utilisation d’une approche de type entretien permet au modèle de poser des questions de suivi à l’utilisateur final pour fournir une réponse mieux adaptée. Cas d'utilisation: Moteur de recommandation de films.

Instructions rapides : « Vous agirez en tant qu’expert en recommandation de films. Vous poserez à l’utilisateur une série de questions détaillées, une à la fois, pour comprendre ses préférences en matière de films. »

Instructions d'invite L'instruction donne au modèle d'IA des indications sur la manière d'effectuer une tâche. Il peut s'agir d'indications sur le type de résultat, comme un résumé ou une traduction, le style, le format, etc. Cas d'utilisation: Mendix Générateur de script Python ML Kit

Instructions rapides : « Vous agirez en tant que développeur Python expert spécialisé dans le Mendix Kit ML. La sortie/réponse doit être donnée dans un script Python avec des annotations pour le Mendix Kit ML. »

Invite à quelques coups Il aide le modèle à apprendre une tâche ou un modèle de manière dynamique en fournissant des exemples. Il peut également faire partie de l'invite du système. Cas d'utilisation: Traducteur anglais-espagnol

Instructions rapides : « Vous êtes un assistant aimable qui aide à traduire des textes anglais en espagnol. Par exemple, « Bonsoir » en espagnol : « Buenas Noches » »

Chaîne de pensée Il simplifie les tâches complexes en les transformant en étapes discrètes qui se déroulent dans un certain ordre. Cas d'utilisation: Diagnostic médical pour les internes.

Instructions rapides : « Vous êtes un assistant de diagnostic conçu pour aider les médecins stagiaires à poser une série de questions pour l'évaluation initiale des patients. Votre objectif est d'identifier les symptômes du patient, ses antécédents médicaux et d'autres variables pertinentes pour parvenir à une évaluation précise qui, en fonction du résultat, sera transmise aux infirmières ou aux médecins. Commencez par interroger le patient sur ses principaux symptômes et la raison de sa visite. Ensuite, … »

Arbre de pensée Semblable à un arbre de décision, il comprend plusieurs lignes de réflexion pour permettre au modèle d’évaluer et de trouver son chemin vers le résultat correct. Cas d'utilisation: Bot d'assistance

Instructions rapides : « Vous êtes un assistant utile qui aide le service informatique à répondre aux demandes des employés, telles que les tickets d'assistance, les licences ou les demandes de matériel. Suivez les instructions ci-dessous en fonction du type de demande.

Si l'utilisateur demande …

Si la demande est vague ou incomplète, …

Si la demande concerne des licences ou du matériel, commencez par…

Si l'utilisateur souhaite en savoir plus sur ses tickets d'assistance, …”

 

Dans la deuxième partie de cette série, vous pourrez trouver un exemple plus court d'une invite d'arbre de pensée avec l'appel de fonction en action récupéré à partir du Application de démarrage de l'assistant d'assistance.

Des bases aux problèmes plus complexes : commencez votre parcours de stimulation comme un pro

À mesure que les cas d'utilisation deviennent plus complexes et manquent de contexte clair, les modèles sont plus susceptibles de produire des informations fabriquées ou non pertinentes, appelées « hallucinations ». Dans les cas où moins de contexte est nécessaire, ce problème est beaucoup moins courant. Atténuer ces hallucinations est l'un des grands défis de l'ingénierie rapide, alors plongeons-nous dans un voyage pour explorer comment cela peut être accompli.

Pour commencer, considérons un bref exemple de chatbot qui répond à des questions. Vous commenceriez à écrire :

You are a helpful assistant who helps users with their questions and requests.

Imaginez maintenant que vous essayez de créer un bot pour une entreprise et que vous souhaitez lui donner un peu de contexte. Vous pourriez écrire quelque chose comme :

You are a helpful assistant who provides information about Mendix. 
Please collect any publicly available information about the company for the user’s question.

Bien que cette invite devrait aider l'utilisateur à obtenir des informations accessibles au public sur une entreprise spécifique, il peut commencer à avoir des hallucinations lorsque la demande devient plus technique ou que la réponse n'est pas, ou ne peut pas être facilement, accessible.

Vous commencez donc à donner des instructions pour une meilleure expérience utilisateur, telles que :

You are a helpful assistant who provides information about Mendix. 
If the user has a technical question, include the Mendix documentation link. 
If the user is struggling with a bug, check Mendix Forum or Documentation for a solution. 
Please provide the source of the information in your response. 
Lastly, if you are not sure about the response, do not try to create one but rather inform the user that you do not know the answer.

À partir de là, vous pouvez commencer à améliorer l'invite système avec d'autres types, tels qu'une invite à quelques coups ou une invite d'instructions :

You are a helpful assistant who provides information about Mendix.

1. For technical questions, include a link to the Mendix documentation. 
Example: If the user asks about connecting to OpenAI, you can answer: 
“You can connect your Mendix App with OpenAI by using the OpenAI Connector. 
More information can be found here: https://docs.mendix.com/appstore/modules/genai/openai/.”

2. For bug-related issues, refer to the Mendix Forum or Documentation. 
Example: If the user says that they created their first app and have an encryption issue, you can answer 
“An encryption key might be missing. 
More information can be found here: https://community.mendix.com/link/space/app-development/questions/99504..”

3. If unsure about a response, inform the user rather than guessing. 
Example: “I do not know the answer. Please provide more information or check the Mendix Documentation (https://docs.mendix.com/) for an answer.”

Certes, rechercher des informations publiques pour chaque demande n'est peut-être pas la solution la plus viable, car cela laisse au modèle plus de marge d'interprétation, ce qui augmente le risque d'hallucinations. De plus, cela limite ses connaissances à une certaine période et ne fournit pas de données à jour. Pour atténuer ce problème, l'intégration du modèle à la base de connaissances d'une entreprise peut fournir un champ contrôlé pour la recherche de réponses, réduisant ainsi les risques de fausses réponses et fournissant les informations les plus récentes ou en temps réel.

Nous explorons cela plus en détail dans la partie 2 de cette série.

Si vous travaillez sur votre propre cas d'utilisation GenAI et que vous avez besoin d'aide ou que vous souhaitez nous faire part de vos commentaires, nous serions ravis de vous entendre. Contactez votre responsable de la réussite client ou envoyez-nous un message dans le #connecteurs-genai canal dans le Mendix Communauté Slack. Inscrivez-vous ici!

Ressources supplémentaires à consulter : Bibliothèque rapide

Choisissez votre langue