Qu'est-ce que Prompt Engineering ?

Conçu pour la vitesse : latence d'environ 10 ms, même en cas de charge
Une méthode incroyablement rapide pour créer, suivre et déployer vos modèles !
- Gère plus de 350 RPS sur un seul processeur virtuel, aucun réglage n'est nécessaire
- Prêt pour la production avec un support complet pour les entreprises
Présentation
Une invite est comme une instruction claire ou un ensemble d'instructions que vous donnez à un outil ou à une personne. Qu'il s'agisse d'un mot clé que vous saisissez dans un moteur de recherche, d'une commande pour un programme informatique ou d'une question que vous posez à un ami, les instructions l'aident à comprendre ce que vous recherchez ou ce que vous voulez qu'il fasse.
L'ingénierie rapide, c'est-à-dire l'art et la science de la création d'instructions efficaces, est devenue de plus en plus essentielle avec la popularité croissante des modèles de langage volumineux (LLM), car elle permet d'utiliser toutes les fonctionnalités des LLM.
Cet article vous aidera à maîtriser l'ingénierie rapide à travers le prisme des modèles linguistiques.
Promptes et LLM
Lorsque vous travaillez sur une ingénierie rapide, vous utilisez généralement une API pour interagir avec le LLM. Ces API consistent en un ensemble d'hyperparamètres qui peuvent être ajustés pour obtenir les résultats souhaités. Dans cette discussion, nous examinerons l'API d'inférence Hugging Face (comme illustré dans l'image ci-dessous) et explorerons l'importance de chaque paramètre.
depuis huggingface_hub import InferenceClient
# Paramètre des points de terminaison d'inférence HF
endpoint_url = « https://YOUR_ENDPOINT.endpoints.huggingface.cloud »
hf_token = « HF_votre_jeton »
# Client de diffusion
client = InferenceClient (endpoint_url, token=hf_token)
# Paramètres de génération
gen_kwargs = {
« max_new_tokens » : 512,
« top_k » : 50, # Réglage du paramètre d'échantillonnage top-k
« top_p » : 0.8, # Réglage du paramètre d'échantillonnage du noyau
« température » : 0,5, # Réglage de la température pour qu'elle soit aléatoire
« repetition_penalty » : 1.5, # Régler la pénalité de répétition pour éviter les réponses répétitives
« stop_sequences » : [»\nUtilisateur : », « », "</s>],
}
# Rapide
prompt = « Quels sont les effets du changement climatique sur »
# Génération de texte
stream = client.text_generation (prompt, stream=True, details=True, **gen_kwargs)
Comme mentionné ci-dessus, différents hyperparamètres peuvent être ajustés pour influencer la qualité et la diversité du texte généré. Examinons de plus près les différents hyperparamètres inclus dans la propriété gen_kwards ci-dessus -
Hyperparamètres
Température
C'est comme ajuster le niveau d'épices de votre cuisine : une température plus élevée signifie plus de hasard, comme ajouter des épices pour donner de la saveur, tandis qu'une température plus basse permet de garder les choses prévisibles, comme s'en tenir à une recette. Par exemple, dans le cadre de tâches d'écriture créative telles que la création de poèmes ou la réflexion sur des idées d'histoires, un réglage de température plus élevé peut donner lieu à un texte plus diversifié et imaginatif.
Top_K
C'est comme si l'on réduisait le choix d'une bibliothèque aux livres les plus populaires. Il sélectionne les jetons les plus probables lors de la génération du texte, affinant ainsi la sortie. Envisagez un chatbot de service client qui aide les utilisateurs à répondre à des requêtes courantes. En définissant un paramètre top_k, le chatbot peut hiérarchiser les réponses en fonction des informations les plus pertinentes, garantissant ainsi aux utilisateurs une assistance précise et utile sans être submergés par des détails inutiles.
Top_P
Top_p fixe une limite aux jetons pris en compte en choisissant des jetons jusqu'à ce qu'une probabilité cumulée de p soit atteinte. Top_k et top_p sont tous deux utilisés pour contrôler la diversité et la qualité.
Max_nouveaux_jetons
C'est comme fixer une limite de mots pour un essai. MAX_NEW_TOKENS détermine la quantité de texte que le modèle peut générer, en la maintenant dans les limites d'une longueur spécifiée. Par exemple, si vous générez des réponses pour un chatbot, la définition d'une limite maximale de jetons garantit que les réponses restent concises et pertinentes par rapport au contexte de la conversation, ou vous pouvez augmenter
Pénalité de répétition
Repetition_penalty décourage le modèle de réutiliser des jetons, favorisant ainsi la diversité du texte généré. Dans une application d'IA conversationnelle, telle qu'un assistant virtuel, la définition d'une repetition_penalty garantit que les réponses de l'assistant restent variées et naturelles lors d'interactions prolongées
Pénalité de fréquence
Frequency Penalty encourage le modèle à explorer des éléments moins courants, rendant ainsi le texte plus unique. Supposons que vous développiez une application d'agrégation de nouvelles qui résume des articles provenant de différentes sources. En appliquant une pénalité de fréquence, l'application peut donner la priorité à des publications moins connues ou à des sujets de niche, offrant ainsi aux utilisateurs un large éventail de points de vue.
Pénalité de présence
Presence Penalty guide le modèle pour générer du texte qui correspond à des critères spécifiques ou évite certains sujets, garantissant ainsi la pertinence. Dans un système de modération du contenu pour les forums en ligne, la définition d'une pénalité de présence permet de filtrer le langage inapproprié ou offensant. Par exemple, si un utilisateur tente de publier des commentaires discriminatoires, la pénalité de présence incitera le système à générer un message d'avertissement.
Conseils généraux pour rédiger de meilleures instructions
Commencer par la simplicité
Vous devriez commencer par créer des instructions simples et simples et introduire progressivement de la complexité en les affinant, plutôt que de surcharger toutes les informations au début. Ainsi, lorsque vous vous occupez d'une tâche importante, essayez de la décomposer en sous-ensembles.
Directives claires
Les commandes doivent être claires et explicites. Par exemple,
Mauvaise invite : « Le rapide renard brun saute par-dessus le chien paresseux, traduis ceci. »
Plus rapide : « Traduisez le texte anglais suivant en espagnol : « Le rapide renard brun saute par-dessus le chien paresseux ». »
Être spécifique
Améliorez la clarté rapide en incluant des exemples pertinents et des instructions détaillées.
Mauvaise invite : « Écrivez sur les réseaux sociaux et leurs effets. »
Plus rapide : « Rédigez un essai de 500 mots sur l'impact des réseaux sociaux sur la santé mentale des adolescents. Incluez des statistiques provenant de sources fiables telles que l'American Psychological Association et donnez des exemples concrets de personnes touchées par une utilisation excessive des réseaux sociaux. »
Éviter la confusion
Assurez-vous que les instructions sont claires et directes pour éviter toute ambiguïté dans les réponses du modèle.
Amélioration continue
Affinez les instructions de manière itérative en fonction des commentaires et des performances afin d'optimiser les résultats.
Outils, frameworks et bibliothèques pour une ingénierie rapide dans les LLM
Choisir le meilleurs outils d'ingénierie rapides dépend du fait que vous optimisez les invites pour l'expérimentation, le déploiement en production ou les flux de travail spécifiques à un modèle.
Transformateurs Hugging Face
Il fournit des interfaces pour affiner les modèles relatifs à des tâches spécifiques et permet de créer des invites personnalisées.
API OpenAI Codex
L'API d'OpenAI inclut des fonctionnalités d'ingénierie rapide, permettant aux utilisateurs de générer du code ou du texte en fonction des instructions.
Aire de jeux GPT-3
Des plateformes telles que le GPT-3 Playground proposent des environnements interactifs permettant d'expérimenter avec des instructions et d'observer les réponses des modèles en temps réel.
Le framework T5 de Google
T5 (Text-To-Text Transfer Transfer Transformer) est un framework qui transforme toutes les tâches NLP dans un format texte-texte, simplifiant ainsi l'ingénierie rapide pour diverses tâches.
Allen LP
AllennLP fournit des outils pour créer et évaluer des modèles de PNL, y compris des mécanismes pour une conception et une évaluation rapides.
Techniques avancées pour une ingénierie rapide
Dans cette section, je parlerai de certaines techniques SOTA (de pointe) mises en œuvre dans le cadre de Prompt Engineering dans le traitement du langage naturel (NLP) et le réglage des modèles linguistiques. Il peut y avoir un léger chevauchement avec les méthodes mentionnées ci-dessus, considérez qu'il s'agit d'une approche plus formelle et structurée pour comprendre les techniques :
Invitation Zero-shot
Comme le montre le terme « zero shot », ici l'inférence est directe sans fournir de contexte supplémentaire au LLM. Il génère plutôt des résultats sur la base de ses connaissances préexistantes.
Rapide :
Qui a été le premier homme dans l'espace ?
Sortie :
Le premier homme dans l'espace était Youri Gagarine, un cosmonaute soviétique.
Invitation en quelques coups
En ce qui concerne le Few-shot Prompting, il s'agit de donner un petit coup de pouce au modèle linguistique (LLM) avant de poser la question. Ce contexte supplémentaire répond à deux objectifs principaux : tout d'abord, il aide le LLM à comprendre ce qui se passe, afin qu'il puisse donner une réponse plus précise. Deuxièmement, cela permet au LLM d'apprendre de nouvelles choses qu'il n'avait jamais rencontrées auparavant, en gardant ses connaissances à jour et en les adaptant.
Rapide :
Composez un poème en trois strophes, chacune portant sur un thème différent : l'amour, la nature et la solitude.
Sortie :
Dans ton étreinte, je trouve mon réconfort,
Une symphonie de cœurs qui ne font qu'un
Perdus dans la danse de l'étreinte de la passion.
Contemplez les arbres qui chuchotent, leurs feuilles brillantes,
Toile de la nature peinte avec des teintes divines,
La sérénité se trouve dans le flux murmurant.
Dans la quiétude de la nuit, je suis seule
Une âme solitaire sous le ciel étoilé,
Je trouve du réconfort dans le silence, toute seule.
Enchaînement rapide
L'enchaînement rapide est une technique efficace pour décomposer les tâches complexes en étapes plus faciles à gérer. En introduisant la sortie d'une invite dans la saisie d'une autre, vous pouvez rationaliser les processus et résoudre efficacement des problèmes complexes.
Cette approche présente plusieurs avantages : simplification des instructions, identification des zones de difficulté pour un dépannage ciblé et meilleure validation des résultats. De plus, le chaînage rapide permet l'exécution parallèle de tâches, permettant le traitement simultané de plusieurs sous-tâches.
Invite 1 :
Il existe une routine d'entraînement, présente sur le site Web <link>:
Veuillez identifier tous les exercices mentionnés sur le site Web. Fournissez-les sous forme de guillemets directs, inclus dans des balises<quotes></quotes> XML. S'il n'y a aucun exercice, veuillez dire « Aucun exercice n'est mentionné ».
Sortie-1 :
<quotes>
« 10 pompes »
« 20 squats »
</quotes>
Invite 2 :
Voici les exercices mentionnés dans la routine, inclus dans des balises<quotes></quotes> XML :
<quotes>
« 10 pompes »
« 20 squats »
</quotes>
Utilisez ces exercices pour créer une routine d'entraînement. Assurez-vous que vos instructions sont claires et faciles à suivre.
Sortie-2 :
# Génère un plan d'entraînement complet
Incitation à la chaîne de pensée
La technique d'incitation par chaîne de pensée reflète le scénario dans lequel un étudiant reçoit un exemple de problème et est ensuite invité à résoudre des problèmes similaires.
Rapide :
Q : Sally a 50 pommes. Elle en donne 15 à son amie, puis en achète trois fois plus qu'elle n'en a donné. Combien de pommes possède Sally en ce moment ?
R : Sally a commencé avec 50 pommes. Après en avoir donné 15, il lui reste 50 à 15 = 35 pommes. Ensuite, elle en achète trois fois plus qu'elle n'en a donné, soit 3 * 15 = 45 pommes. En ajoutant les pommes qu'elle a achetées à ce qui lui restait, Sally a maintenant 35 + 45 = 80 pommes. Sally possède donc 80 pommes.
Q : Joe a 20 œufs. Il achète deux autres cartons d'œufs. Chaque boîte contient 12 œufs. Combien d'œufs a Joe maintenant ?
Sortie :
R : Joe a commencé avec 20 œufs. 2 cartons de 12 œufs font 24 œufs. 20 + 24 = 44. Joe a donc 44 œufs et la réponse est 44.
Dans les situations où vous avez peu ou pas d'exemples, ajoutez une phrase telle que »Réfléchissons étape par étape« à l'invite initiale est efficace pour améliorer les performances du modèle.
Chaîne de pensée automatique (Auto-COT)
Il génère automatiquement des exemples qui montrent au LLM comment résoudre les problèmes. Ces exemples sont appelés « démonstrations » et sont créés en incitant le LLM à articuler son processus de réflexion et à expliquer comment il aborderait un problème.
Comment fonctionne Auto-COT ?
Auto-COT fonctionne en deux étapes :
- Regroupement de questions : Tout d'abord, il regroupe des questions similaires. Cela permet de garantir que les démonstrations couvrent un large éventail de types de problèmes.
- Échantillonnage de démonstration : Ensuite, il sélectionne une question représentative de chaque groupe et demande au LLM de générer une démonstration pour celle-ci. Pour ce faire, le LLM réfléchit à voix haute et explique son raisonnement étape par étape.
Réglage fin des LLM
Souvent, le réglage fin n'est pas considéré comme faisant partie de l'ingénierie rapide, mais, à l'instar de l'ingénierie rapide, il s'agit d'une méthode permettant d'adapter des modèles de langage volumineux (LLM) à des tâches spécifiques.
Cela implique d'entraîner le modèle déjà entraîné à utiliser notre ensemble de données étiqueté spécialisé, ajustant ainsi ses paramètres. Alors que les dernières couches sont souvent ajustées en fonction des nouvelles données, le réglage peut impliquer de modifier les paramètres sur plusieurs couches afin de mieux capturer les caractéristiques spécifiques au domaine tout en conservant les connaissances apprises lors de la formation initiale.
Traditionnellement, le réglage fin était un processus complexe et gourmand en ressources qui nécessitait un matériel puissant, une expertise en matière d'apprentissage automatique et de grandes quantités de données étiquetées.
Cependant, grâce à des plateformes telles que Hugging Face, qui fournissent des modèles pré-entraînés et des pipelines de réglage faciles à utiliser, le réglage fin est devenu plus accessible et plus efficace. En intégrant les fonctionnalités de Hugging Face aux approches de réglage traditionnelles, nous pouvons utiliser des modèles pré-entraînés comme point de départ, réduisant ainsi le besoin de grandes quantités de données étiquetées et d'expertise.
Truefoundry offre également la possibilité d'affiner vos LLM. Grâce à son interface intuitive et simple, vous pouvez affiner vos modèles en 3 étapes simples :
- Connexion de votre base de données
- Comparez les travaux de mise au point et choisissez celui qui convient le mieux à vos besoins.
- Déployez votre modèle affiné.
Génération augmentée de récupération (RAG)
Dans RAG, la récupération est utilisée en tant que composant parallèlement à la génération pour améliorer les performances du modèle dans des tâches telles que la réponse aux questions et la génération de texte. RAG est adaptable à des scénarios dont les faits évoluent, ce qui est précieux car les connaissances fixes des LLM ne peuvent pas suivre le rythme. RAG permet aux modèles linguistiques d'éviter le recyclage et d'accéder aux informations les plus récentes grâce à une génération basée sur la récupération afin de produire des résultats fiables.
Ces dernières années, les systèmes RAG sont passés de modèles RAG naïfs de base à des modèles RAG avancés et modulaires RAG plus sophistiqués.
Naive RAG récupère les informations en fonction des entrées de l'utilisateur, mais a du mal à les utiliser avec précision en raison de données obsolètes et de réponses non pertinentes. Advanced RAG améliore cela en affinant le processus de récupération, le rendant plus précis et pertinent.
Modular RAG va encore plus loin en proposant différents modules personnalisables tels que la recherche et la mémoire, ce qui permet de résoudre des problèmes spécifiques avec flexibilité. Dans l'ensemble, ces avancées visent à rendre les systèmes de conversation plus intelligents et plus fiables en gérant mieux la recherche d'informations et la génération de réponses.
Véritable fonderie propose également une interface de bout en bout pour RAG avec la possibilité de s'intégrer à n'importe quel magasin de métadonnées, intégrations ou modèles LLM
Apprentissage par renforcement à partir de la rétroaction humaine (RLHF)
Pendant un certain temps, l'idée de former un modèle de langage à l'aide de l'apprentissage par renforcement semblait irréalisable en raison de défis techniques et algorithmiques. Comprendre les aspects techniques de la RLHF impliquera divers prérequis d'apprentissage par renforcement. Je vais donc essayer de garder l'explication très générale.
Prenons un problème où notre objectif est d'entraîner un robot à naviguer dans un labyrinthe. Traditionnellement, dans le cadre de l'apprentissage par renforcement (RL), le robot vise à atteindre son objectif rapidement et reçoit des informations en fonction de ses performances dans le labyrinthe. Mais l'apprentissage par renforcement à partir de la rétroaction humaine (RLHF) va encore plus loin en permettant aux humains de donner des informations supplémentaires. Ils peuvent faire des commentaires sur bien plus que la vitesse, par exemple si le robot évite les obstacles ou emprunte une trajectoire qui semble bonne.
Par exemple, si le robot choisit un chemin qui évite les obstacles ou suit un itinéraire qui plaît aux humains, il peut obtenir des points bonus. De cette façon, le robot apprend non seulement à atteindre son objectif rapidement, mais aussi à prendre en compte les préférences des humains.
En matière d'ingénierie rapide pour les grands modèles de langage (LLM), le RLHF est très pratique. Il garantit que les invites obtiennent mieux les réponses que nous recherchons, améliore la qualité des réponses grâce à des contrôles humains, nous permet de personnaliser les invites en fonction de nos préférences et de suivre l'évolution de ce qui est populaire au fil du temps. En incluant la contribution humaine, cela permet de s'assurer que les résultats sont plus proches de ce que nous recherchons, dans différents domaines et tâches.
TrueFoundry AI Gateway offre une latence d'environ 3 à 4 ms, gère plus de 350 RPS sur 1 processeur virtuel, évolue horizontalement facilement et est prête pour la production, tandis que LiteLM souffre d'une latence élevée, peine à dépasser un RPS modéré, ne dispose pas d'une mise à l'échelle intégrée et convient parfaitement aux charges de travail légères ou aux prototypes.
Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA














.webp)


.png)


.webp)




.webp)







