Dans Casino Royale (2006), James Bond précise les ingrédients précis de son Vesper martini : 3 mesures de Gordons, 1 de Vodka, une demi-mesure de Kina Lillet, shaker sur glace avec une fine tranche de zeste de citron.
En détaillant les composants, Bond assure une boisson de qualité supérieure. De même, lors de l'interaction avec des modèles de langage étendus (LLM), la spécificité et la clarté de vos invites déterminent la qualité du résultat.
Ce processus, connu sous le nom d'ingénierie rapide, est essentiel pour obtenir des réponses précises et pertinentes de la part des systèmes d'IA.
Qu'est-ce que l'ingénierie rapide ?
L'ingénierie rapide implique l'élaboration d'instructions précises pour optimiser les réponses LLM. Plus l'invite de saisie est détaillée et spécifique, plus la sortie sera pertinente et alignée sur vos besoins.
Exemple :
Si vous demandez à un LLM « Résumer l'ingénierie rapide », la réponse peut être vague. Cependant, en précisant la demande comme ceci :
Invite : « Donnez un résumé de 100 mots de l'ingénierie des invites, destiné aux utilisateurs non techniques. »
Le LLM est désormais guidé pour donner une réponse concise et spécifique au public.
Sortie :
"L'ingénierie rapide consiste à créer des instructions efficaces pour les systèmes d'IA comme ChatGPT afin d'obtenir les meilleurs résultats. Cela implique d'être spécifique, de fournir un contexte et de décomposer des questions complexes. En spécifiant des formats, en fournissant des exemples ou en fixant des limites, l'ingénierie rapide garantit une communication claire avec un Assistant IA."
Cette méthode de demande de résultats spécifiques montre comment « concevoir » une invite pour obtenir un résultat souhaité et précis.
Composants d'une bonne invite LLM
1 Contexte : Le contexte fournit au LLM des informations supplémentaires qui l'aident à mieux comprendre votre demande. En intégrant un contexte pertinent, l'IA peut générer des réponses plus précises et adaptées.
Exemple :
Supposons que vous travaillez sur un projet C# et que vous souhaitiez modifier une définition de classe. Le contexte ici pourrait être un extrait de code.
Invite avec contexte :
"Étant donné ce code C# :
public class User { public int UserId { get; ensemble; } chaîne publique Nom { get; ensemble; } chaîne publique Email { get; ensemble; } chaîne publique PhoneNumber {get; ensemble; } >
Modifiez la classe pour rendre UserId et Name en lecture seule et définissez-les dans le constructeur."
Sortie :
public class User { public int UserId { get; } public string Name { get; } public string Email { get; set; } public string PhoneNumber { get; set; } public User(int userId, string name) { UserId = userId; Name = name; } }
Cet exemple illustre l'importance de fournir un contexte pertinent pour guider le LLM dans la génération de la réponse correcte.
- Question utilisateur : la question est la partie principale de l'invite. Il doit être à but unique, spécifique et concis.
Exemple :
Si vous souhaitez créer une classe d'utilisateurs en C# avec certains champs, spécifiez clairement les champs et le comportement requis.
Question vague :
"Créer une classe d'utilisateurs."
Question spécifique :
"Créez une classe d'utilisateurs C# avec des champs : UserId, Name, PhoneNumber. Définissez UserId en lecture seule et ajoutez un constructeur pour définir ces champs."
Sortie :
public class User { public int UserId { get; } public string Name { get; } public string Email { get; set; } public string PhoneNumber { get; set; } public User(int userId, string name) { UserId = userId; Name = name; } }
- Orientation de sortie : vous pouvez guider la sortie du modèle en fournissant des exemples du format souhaité.
Exemple :
Si vous devez générer des données factices pour une classe User, fournissez un exemple de ce à quoi devraient ressembler les données.
Invite avec des exemples :
"Générez 5 instances de la classe User avec ces champs : UserId, Name, Email, PhoneNumber. Utilisez le format suivant pour des exemples :
var user1 = new User(1, "John Doe", "john.doe@example.com", "555-555-5555");
Voici quelques exemples :
var user2 = new User(2, "Jane Doe", "jane.doe@example.com", "555-555-5556");
Générez maintenant 5 instances."
Sortie :
public class User { public int UserId { get; } public string Name { get; set; } public string PhoneNumber { get; set; } public User(int userId, string name, string phoneNumber) { UserId = userId; Name = name; PhoneNumber = phoneNumber; } }
Techniques pour une ingénierie rapide efficace
- Zero-shot Prompting : Le LLM génère une réponse basée sur ses données d'entraînement sans exemples explicites. Ceci est efficace pour générer des solutions ou des réponses génériques basées sur des modèles établis.
Exemple :
Invite : "Créez un test unitaire pour la classe User à l'aide de xUnit en C#."
Sortie :
var user1 = new User(1, "John Smith", "john.smith@example.com", "555-555-5555"); var user2 = new User(2, "Jane Doe", "jane.doe@example.com", "555-555-5556"); var user3 = new User(3, "Mary Johnson", "mary.johnson@example.com", "555-555-5557"); var user4 = new User(4, "David Lee", "david.lee@example.com", "555-555-5558"); var user5 = new User(5, "Linda White", "linda.white@example.com", "555-555-5559");
- Invites en quelques étapes : fournissez plusieurs exemples pour guider le modèle dans la génération du format de sortie souhaité.
Exemple :
Pour générer des données pour une classe User, vous pouvez utiliser quelques exemples de points de données pour guider le format de sortie.
Invite avec quelques exemples de prises de vue :
"Voici quelques instances de la classe User :
var user1 = new User(1, "John Smith", "john.smith@example.com", "555-555-5555");
var user2 = new User(2, "Jane Doe", "jane.doe@example.com", "555-555-5556");
Créez maintenant 3 instances supplémentaires en suivant le même modèle."
Sortie :
public class UserTests { [Fact] public void UserConstructor_SetsProperties() { // Arrange var user = new User(1, "John Doe", "john.doe@example.com", "555-555-5555"); // Act & Assert Assert.Equal(1, user.UserId); Assert.Equal("John Doe", user.Name); Assert.Equal("john.doe@example.com", user.Email); Assert.Equal("555-555-5555", user.PhoneNumber); } }
- Chaînage d'invites : affinez de manière itérative vos requêtes en fonction des réponses précédentes, permettant au modèle de s'appuyer sur des interactions antérieures.
Exemple :
Commencez par une simple invite et modifiez-la progressivement.
Première invite :
"Créez une classe utilisateur de base en Python."
Sortie :
public class User { public int UserId { get; } public string Name { get; } public string Email { get; set; } public string PhoneNumber { get; set; } public User(int userId, string name) { UserId = userId; Name = name; } }
Invite de suivi :
"Convertir cette classe en C#."
Sortie :
public class User { public int UserId { get; } public string Name { get; set; } public string PhoneNumber { get; set; } public User(int userId, string name, string phoneNumber) { UserId = userId; Name = name; PhoneNumber = phoneNumber; } }
Invite finale :
"Rendez la propriété Mot de passe privée et ajoutez une propriété DateTime CreatedAt initialisée dans le constructeur."
Sortie :
var user1 = new User(1, "John Smith", "john.smith@example.com", "555-555-5555"); var user2 = new User(2, "Jane Doe", "jane.doe@example.com", "555-555-5556"); var user3 = new User(3, "Mary Johnson", "mary.johnson@example.com", "555-555-5557"); var user4 = new User(4, "David Lee", "david.lee@example.com", "555-555-5558"); var user5 = new User(5, "Linda White", "linda.white@example.com", "555-555-5559");
- Invite de chaîne de pensée : fournissez des instructions en plusieurs étapes, aidant le LLM à aborder un problème complexe étape par étape.
Exemple :
Invite :
*"Créez un ensemble de tests unitaires pour la classe C# suivante :
public class User { public int UserId { get; ensemble; } chaîne publique Nom { get; ensemble; } chaîne publique PhoneNumber {get; ensemble; } >
Réfléchissez étape par étape :
- Identifiez les scénarios clés à tester.
- Écrivez des tests unitaires en utilisant xUnit.
- Considérez les cas extrêmes."*
Sortie :
public class UserTests { [Fact] public void UserConstructor_SetsProperties() { // Arrange var user = new User(1, "John Doe", "john.doe@example.com", "555-555-5555"); // Act & Assert Assert.Equal(1, user.UserId); Assert.Equal("John Doe", user.Name); Assert.Equal("john.doe@example.com", user.Email); Assert.Equal("555-555-5555", user.PhoneNumber); } }
L'article a été rédigé à l'origine par Jim, responsable de Devreal chez Pieces for Developers. Vous pouvez trouver plus d'exemples et de nuances dans cet article https://pieces.app/blog/llm-prompt-engineering
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Oui, le noyau du moteur de JavaScript est écrit en C. 1) Le langage C fournit des performances efficaces et un contrôle sous-jacent, qui convient au développement du moteur JavaScript. 2) Prendre le moteur V8 comme exemple, son noyau est écrit en C, combinant l'efficacité et les caractéristiques orientées objet de C. 3) Le principe de travail du moteur JavaScript comprend l'analyse, la compilation et l'exécution, et le langage C joue un rôle clé dans ces processus.

JavaScript est au cœur des sites Web modernes car il améliore l'interactivité et la dynamicité des pages Web. 1) Il permet de modifier le contenu sans rafraîchir la page, 2) manipuler les pages Web via Domapi, 3) prendre en charge les effets interactifs complexes tels que l'animation et le glisser-déposer, 4) Optimiser les performances et les meilleures pratiques pour améliorer l'expérience utilisateur.

C et JavaScript réalisent l'interopérabilité via WebAssembly. 1) Le code C est compilé dans le module WebAssembly et introduit dans un environnement JavaScript pour améliorer la puissance de calcul. 2) Dans le développement de jeux, C gère les moteurs de physique et le rendu graphique, et JavaScript est responsable de la logique du jeu et de l'interface utilisateur.

JavaScript est largement utilisé dans les sites Web, les applications mobiles, les applications de bureau et la programmation côté serveur. 1) Dans le développement de sites Web, JavaScript exploite DOM avec HTML et CSS pour réaliser des effets dynamiques et prend en charge des cadres tels que JQuery et React. 2) Grâce à la réactnative et ionique, JavaScript est utilisé pour développer des applications mobiles multiplateformes. 3) Le cadre électronique permet à JavaScript de créer des applications de bureau. 4) Node.js permet à JavaScript d'exécuter le côté du serveur et prend en charge les demandes simultanées élevées.

Python est plus adapté à la science et à l'automatisation des données, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python fonctionne bien dans la science des données et l'apprentissage automatique, en utilisant des bibliothèques telles que Numpy et Pandas pour le traitement et la modélisation des données. 2. Python est concis et efficace dans l'automatisation et les scripts. 3. JavaScript est indispensable dans le développement frontal et est utilisé pour créer des pages Web dynamiques et des applications à une seule page. 4. JavaScript joue un rôle dans le développement back-end via Node.js et prend en charge le développement complet de la pile.

C et C jouent un rôle essentiel dans le moteur JavaScript, principalement utilisé pour implémenter des interprètes et des compilateurs JIT. 1) C est utilisé pour analyser le code source JavaScript et générer une arborescence de syntaxe abstraite. 2) C est responsable de la génération et de l'exécution de bytecode. 3) C met en œuvre le compilateur JIT, optimise et compile le code de point chaud à l'exécution et améliore considérablement l'efficacité d'exécution de JavaScript.

L'application de JavaScript dans le monde réel comprend un développement frontal et back-end. 1) Afficher les applications frontales en créant une application de liste TODO, impliquant les opérations DOM et le traitement des événements. 2) Construisez RestulAPI via Node.js et Express pour démontrer les applications back-end.

Les principales utilisations de JavaScript dans le développement Web incluent l'interaction client, la vérification du formulaire et la communication asynchrone. 1) Mise à jour du contenu dynamique et interaction utilisateur via les opérations DOM; 2) La vérification du client est effectuée avant que l'utilisateur ne soumette les données pour améliorer l'expérience utilisateur; 3) La communication de rafraîchissement avec le serveur est réalisée via la technologie AJAX.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Version Mac de WebStorm
Outils de développement JavaScript utiles

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code
