Core prompt engineering techniques — Βασικές Τεχνικές Prompt Engineering

From Systems analysis wiki
Jump to navigation Jump to search

Prompt engineering περιλαμβάνει ποικίλες τεχνικές και μεθοδολογίες που αποσκοπούν στη βελτιστοποίηση της αλληλεπίδρασης με τα μεγάλα γλωσσικά μοντέλα (LLM) για την επίτευξη επιθυμητών αποτελεσμάτων. Αυτές οι τεχνικές αφορούν τη δόμηση των ερωτημάτων, την παροχή πλαισίου, τη διαχείριση του στυλ εξόδου και τη βελτίωση της ικανότητας του μοντέλου να συλλογίζεται. Καθώς τα LLM παράγουν απάντηση προβλέποντας τα επόμενα token βάσει του prompt εισόδου, η ποιότητα και η δομή αυτού του prompt επηρεάζουν άμεσα το αποτέλεσμα. Οι βασικές τεχνικές prompt engineering επιτρέπουν στους προγραμματιστές και τους χρήστες να διαχειρίζονται αποτελεσματικά τη συμπεριφορά του μοντέλου, να μειώνουν τα σφάλματα και να το προσαρμόζουν σε συγκεκριμένες εργασίες χωρίς να χρειάζεται να τροποποιούν τις εσωτερικές παραμέτρους του μοντέλου.

Βασικές Αρχές και Δομή Prompt

Αν και οι συγκεκριμένες υλοποιήσεις ποικίλλουν, τα αποτελεσματικά prompt συχνά κατασκευάζονται λαμβάνοντας υπόψη κοινές αρχές και δομή:

  • Εμπειρικές κατευθυντήριες γραμμές: Ως μία πρακτική δομή (όχι όμως βιομηχανικό πρότυπο), προτείνεται η τήρηση των ακόλουθων αρχών: Δώσε Κατεύθυνση, Καθόρισε Μορφή, Παρέχε Παραδείγματα, Αξιολόγησε Ποιότητα και Διαχώρισε την Εργασία.
  • Ένα αποτελεσματικό prompt συχνά περιλαμβάνει τα εξής συστατικά:
    • Εισαγωγή/Ρόλος: Ορίζει το πλαίσιο της εργασίας ή τον ρόλο/πρόσωπο του μοντέλου.
    • Οδηγίες: Σαφείς κατευθύνσεις για το τι πρέπει να γίνει.
    • Πλαίσιο: Απαραίτητες πληροφορίες (στατικές ή δυναμικά ανακτημένες μέσω RAG).
    • Παραδείγματα (Few-shot): Επίδειξη της επιθυμητής μορφής/στυλ.
    • Αίτημα Απάντησης: Ρητή κατεύθυνση για το τι πρέπει να παράγει το μοντέλο.
  • Μήνυμα Συστήματος (System Prompt): Στα chat API interfaces (π.χ. μοντέλων OpenAI, Anthropic) επιτρέπει τον ορισμό καθολικών οδηγιών και ρόλου για ολόκληρη τη συνεδρία.
  • Μορφοποίηση: Η χρήση Markdown, JSON, XML ή YAML βοηθά στη δόμηση του prompt και διευκολύνει την ανάλυση της απάντησης. Τα διαχωριστικά (```, `"""`, XML tags) είναι σημαντικά για τον διαχωρισμό των οδηγιών από τα δεδομένα.

Βασικές Τεχνικές Οδηγιών και Παραδειγμάτων

  • Σαφείς και συγκεκριμένες οδηγίες: Να περιγράφεται όσο το δυνατόν ακριβέστερα η εργασία, το επιθυμητό αποτέλεσμα και οι περιορισμοί. Να αποφεύγεται η αμφισημία.
  • Ρόλος Μοντέλου (Role Prompting): Ανάθεση ρόλου στο μοντέλο («Είσαι ειδικός σε...») για τον έλεγχο του τόνου, του στυλ και της βάσης γνώσης.
  • Zero-shot Prompting: Αίτημα χωρίς παραδείγματα. Αποτελεσματικό για απλές εργασίες ή εργασίες που το μοντέλο γνωρίζει καλά.
  • Few-Shot Prompting: Παροχή λίγων (συνήθως 2 έως 5) παραδειγμάτων «ερώτηση-απάντηση» για την επίδειξη της εργασίας. Ειδική περίπτωση αποτελεί το One-shot Prompting με ένα παράδειγμα. Ιδιαίτερα χρήσιμο για σύνθετες μορφές ή στυλ. Απαιτεί προσοχή για την αποφυγή προκατάληψης (anchoring) ή εντοπισμό ψευδών μοτίβων από τα παραδείγματα.

Τεχνικές Διαχείρισης Πλαισίου

  • Retrieval-Augmented Generation (RAG): Δυναμική προσθήκη σχετικών πληροφοριών από εξωτερικές βάσεις γνώσης στο prompt πριν από την αποστολή στο LLM. Προτάθηκε αρχικά από το Meta AI το 2020, αυτή η μέθοδος είναι κλειδί για την καταπολέμηση των ψευδαισθήσεων και τη διασφάλιση της επικαιρότητας των δεδομένων.
  • Chunking: Διαχωρισμός μεγάλων κειμένων σε μικρότερα τμήματα (chunks), ώστε να χωρούν στο παράθυρο πλαισίου του μοντέλου. Οι στρατηγικές περιλαμβάνουν διαχωρισμό κατά προτάσεις, παραγράφους, token (με επικάλυψη).
  • Συνοπτική απόδοση: Συμπύκνωση μεγάλων κειμένων ή ιστορικού διαλόγου για τη μεταφορά του βασικού νοήματος σε περιορισμένο πλαίσιο.

Τεχνικές Βελτίωσης Συλλογισμού (Reasoning)

Αυτές οι τεχνικές αποσκοπούν στο να κάνουν το μοντέλο να «σκέφτεται» πιο προσεκτικά και δομημένα. Η αποτελεσματικότητα πολλών από αυτές, ιδίως του CoT, εκδηλώνεται σε μοντέλα μεγάλης κλίμακας (γενικά άνω των 100 δισεκατομμυρίων παραμέτρων).

  • Chain-of-Thought (CoT): Οδηγία στο μοντέλο να παράγει βηματική συλλογιστική πριν από την τελική απάντηση. Βελτιώνει σημαντικά τα αποτελέσματα σε μαθηματικά, λογική και πολυβηματικές εργασίες.
    • Zero-shot CoT: Η απλούστερη μορφή, που δεν απαιτεί παραδείγματα. Η προσθήκη στο prompt μιας φράσης όπως «Ας σκεφτούμε βήμα βήμα» (Let's think step by step) μπορεί ήδη να ενεργοποιήσει την αλυσίδα συλλογισμών.
  • Παραλλαγές CoT:
    • Auto-CoT: Αυτόματη παραγωγή παραδειγμάτων συλλογισμών για few-shot prompting.
    • Self-Consistency: Παραγωγή πολλαπλών αλυσίδων συλλογισμών και επιλογή της πιο συχνής απάντησης μέσω «ψηφοφορίας», κάτι που αυξάνει την αξιοπιστία.
    • Tree-of-Thoughts (ToT): Εξερεύνηση πολλαπλών μονοπατιών συλλογισμού σε μορφή δέντρου, με δυνατότητα επιστροφής και αξιολόγησης ενδιάμεσων βημάτων. Αυτή η τεχνική επιδεικνύει υψηλή αποτελεσματικότητα σε σύνθετες εργασίες, π.χ. αυξάνοντας την επιτυχία επίλυσης του «Game of 24» από ~4% σε ~74%.
    • Graph-of-Thought (GoT), LogiCoT και άλλες, που στοχεύουν σε πιο σύνθετους ή λογικά επαληθευμένους συλλογισμούς.
  • ReAct (Reason and Act): Τεχνική που αναπτύσσει το CoT. Αποτελεί έναν επαναληπτικό κύκλο όπου το μοντέλο εναλλάσσει βήματα Συλλογισμού (Thought) και Δράσης με χρήση Εργαλείων (Act), ενημερώνοντας την κατανόησή του βάσει Παρατηρήσεων (Observation).
  • Self-Refine: Επαναληπτική διαδικασία κατά την οποία το μοντέλο αρχικά παράγει μια απάντηση, στη συνέχεια την κριτικάρει και, τέλος, τη βελτιώνει βάσει της δικής του κριτικής. Αυτός ο κύκλος «παραγωγή-κριτική-βελτίωση» μπορεί να επαναλαμβάνεται αρκετές φορές.
  • Take a Step Back Prompting: Το μοντέλο διατυπώνει πρώτα γενικές αρχές ή αφαιρέσεις και στη συνέχεια τις εφαρμόζει στη συγκεκριμένη εργασία.

Προχωρημένες Τεχνικές: Agents και Εργαλεία

  • Χρήση Εργαλείων (Tool Usage) / Κλήση Συναρτήσεων (Function Calling): Παροχή στο LLM της δυνατότητας να καλεί εξωτερικά API (αναζήτηση, αριθμομηχανή, ΒΔ). Το μοντέλο παράγει ένα δομημένο αίτημα κλήσης εργαλείου, το οποίο εκτελείται από την εφαρμογή, και το αποτέλεσμα επιστρέφεται στο μοντέλο. Τα σύγχρονα LLM (GPT-4, Claude 3) διαθέτουν ενσωματωμένη υποστήριξη αυτής της λειτουργίας.
  • Agents: Συστήματα βασισμένα σε LLM που μπορούν αυτόνομα να σχεδιάζουν, να χρησιμοποιούν εργαλεία και να ενεργούν για την επίτευξη ενός στόχου. Συχνά χρησιμοποιούν κύκλους τύπου ReAct. Τα frameworks (LangChain, AutoGen, CrewAI) απλοποιούν τη δημιουργία τους.
  • Πολυπρακτορικά Συστήματα: Αλληλεπίδραση πολλαπλών εξειδικευμένων agents για την επίλυση σύνθετων εργασιών.

Τεχνικές Μείωσης Σφαλμάτων και Ψευδαισθήσεων

  • RAG: Σύνδεση των απαντήσεων με ανακτημένα πραγματικά δεδομένα.
  • Οδηγίες περιορισμού απάντησης: Απαίτηση απάντησης μόνο βάσει του παρεχόμενου πλαισίου ή δήλωση αβεβαιότητας («Αν η απάντηση δεν είναι γνωστή, πες 'Δεν ξέρω'»).
  • Αίτημα παράθεσης πηγών: Απαίτηση από το μοντέλο να αναφέρει πηγές ή να παραθέτει τμήματα του πλαισίου στα οποία βασίζεται η απάντηση.
  • Επαλήθευση και αυτοκριτική: Χρήση τεχνικών όπως το Chain-of-Verification (CoVe) (παραγωγή απάντησης με επακόλουθη επαλήθευση και διόρθωσή της), Self-Refine ή άμεσο αίτημα στο μοντέλο να ελέγξει την απάντησή του για σφάλματα.
  • CoT: Η βηματική συλλογιστική από μόνη της μπορεί να μειώσει τα λογικά σφάλματα.

Τεχνικές Αξιολόγησης και Επανάληψης

Αν και η αξιολόγηση αποτελεί ξεχωριστή διαδικασία, ορισμένες πτυχές της αποτελούν μέρος του prompt engineering:

  • A/B Δοκιμή Prompt: Σύγκριση της αποτελεσματικότητας διαφορετικών εκδοχών prompt στις ίδιες εργασίες.
  • Χρήση LLM για αξιολόγηση: Εφαρμογή ενός ισχυρού μοντέλου (π.χ. GPT-4) για την αξιολόγηση της ποιότητας των απαντήσεων που παράγονται από άλλο prompt ή μοντέλο (LLM-as-a-Judge).

Μοτίβα Prompt

Συνήθη επαναχρησιμοποιήσιμα μοτίβα:

  • Μοτίβο Προσώπου (Persona Pattern)
  • Μοτίβο Προσαρμογής Εξόδου (Output Customization Pattern)
  • Μοτίβο Αιτήματος Διευκρινήσεων (Question Refinement Pattern)
  • Μοτίβο Γνωστικής Επαλήθευσης / Αυτοκριτικής (Cognitive Verifier / Self-Critique Pattern)
  • Μοτίβο Βηματικής Συλλογιστικής (Step-by-Step / Chain-of-Thought Pattern)
  • Μοτίβο Προτύπου (Template Pattern)

Βιβλιογραφία

  • Radford, A. et al. (2019). Language Models are Unsupervised Multitask Learners. PDF.
  • Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
  • Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
  • Li, X. L.; Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. arXiv:2101.00190.
  • Liu, Y. et al. (2021). Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity. arXiv:2104.08786.
  • Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
  • Wei, J. et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
  • Zhang, Z. et al. (2022). Automatic Chain of Thought Prompting in Large Language Models. arXiv:2210.03493.
  • Zhou, D. et al. (2022). Least-to-Most Prompting Enables Complex Reasoning in Large Language Models. arXiv:2205.10625.
  • Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
  • Besta, M. et al. (2023). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
  • Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Rafailov, R. et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290.
  • Wang, Y. et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
  • Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
  • Chen, S. Y. et al. (2023). Extending Context Window of Large Language Models via Positional Interpolation. arXiv:2306.15595.
  • Chang, K. et al. (2024). Efficient Prompting Methods for Large Language Models: A Survey. arXiv:2404.01077.
  • Genkina, D. (2024). AI Prompt Engineering Is Dead. IEEE Spectrum. [1].
  • Li, Z. et al. (2024). Prompt Compression for Large Language Models: A Survey. arXiv:2410.12388.
  • Liang, X. et al. (2024). Internal Consistency and Self-Feedback in Large Language Models: A Survey. arXiv:2407.14507.
  • Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.
  • Li, W. et al. (2025). A Survey of Automatic Prompt Engineering: An Optimization Perspective. arXiv:2502.11560.
  • Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. EMNLP 2025. PDF.
  • Yang, B. et al. (2025). Hallucination Detection in Large Language Models with Metamorphic Relations. arXiv:2502.15844.

Δείτε επίσης

  • Μεγάλα Γλωσσικά Μοντέλα
  • Chain-of-Thought Prompting
  • Ψευδαισθήσεις και εσφαλμένες απαντήσεις LLM