Skip to content

Latest commit

 

History

History
212 lines (129 loc) · 39.2 KB

File metadata and controls

212 lines (129 loc) · 39.2 KB

Βασικές Αρχές Προγραμματισμού Προτροπών

Εισαγωγή

Αυτό το κεφάλαιο καλύπτει βασικές έννοιες και τεχνικές για τη δημιουργία αποτελεσματικών προτροπών σε γενετικά μοντέλα AI. Ο τρόπος με τον οποίο γράφετε την προτροπή σας σε ένα LLM έχει σημασία. Μια προσεκτικά σχεδιασμένη προτροπή μπορεί να επιτύχει καλύτερη ποιότητα απάντησης. Αλλά τι ακριβώς σημαίνουν οι όροι προτροπή και προγραμματισμός προτροπών; Και πώς μπορώ να βελτιώσω την είσοδο της προτροπής που στέλνω στο LLM; Αυτές είναι οι ερωτήσεις που θα προσπαθήσουμε να απαντήσουμε σε αυτό το κεφάλαιο και στο επόμενο.

Η γενετική AI είναι ικανή να δημιουργεί νέο περιεχόμενο (π.χ., κείμενο, εικόνες, ήχο, κώδικα κ.λπ.) σε απάντηση σε αιτήματα χρηστών. Το επιτυγχάνει χρησιμοποιώντας Μεγάλα Γλωσσικά Μοντέλα όπως η σειρά GPT ("Generative Pre-trained Transformer") της OpenAI που είναι εκπαιδευμένα για τη χρήση φυσικής γλώσσας και κώδικα.

Οι χρήστες μπορούν τώρα να αλληλεπιδρούν με αυτά τα μοντέλα χρησιμοποιώντας οικείες μεθόδους όπως η συνομιλία, χωρίς να χρειάζονται τεχνική εξειδίκευση ή εκπαίδευση. Τα μοντέλα βασίζονται στις προτροπές - οι χρήστες στέλνουν μια είσοδο κειμένου (προτροπή) και λαμβάνουν πίσω την απάντηση AI (ολοκλήρωση). Μπορούν στη συνέχεια να "συνομιλήσουν με το AI" επαναληπτικά, σε πολυ-στροφικές συνομιλίες, βελτιώνοντας την προτροπή τους μέχρι η απάντηση να ανταποκρίνεται στις προσδοκίες τους.

Οι "προτροπές" γίνονται τώρα η κύρια διεπαφή προγραμματισμού για εφαρμογές γενετικής AI, λέγοντας στα μοντέλα τι να κάνουν και επηρεάζοντας την ποιότητα των επιστρεφόμενων απαντήσεων. Ο "Προγραμματισμός Προτροπών" είναι ένας ταχέως αναπτυσσόμενος τομέας μελέτης που επικεντρώνεται στο σχεδιασμό και τη βελτιστοποίηση των προτροπών για την παροχή συνεπών και ποιοτικών απαντήσεων σε κλίμακα.

Στόχοι Μάθησης

Σε αυτό το μάθημα, μαθαίνουμε τι είναι ο Προγραμματισμός Προτροπών, γιατί έχει σημασία και πώς μπορούμε να δημιουργήσουμε πιο αποτελεσματικές προτροπές για ένα δεδομένο μοντέλο και στόχο εφαρμογής. Θα κατανοήσουμε βασικές έννοιες και βέλτιστες πρακτικές για τον προγραμματισμό προτροπών - και θα μάθουμε για ένα διαδραστικό περιβάλλον "sandbox" Jupyter Notebooks όπου μπορούμε να δούμε αυτές τις έννοιες να εφαρμόζονται σε πραγματικά παραδείγματα.

Μέχρι το τέλος αυτού του μαθήματος θα είμαστε σε θέση να:

  1. Εξηγήσουμε τι είναι ο προγραμματισμός προτροπών και γιατί έχει σημασία.
  2. Περιγράψουμε τα συστατικά μιας προτροπής και πώς χρησιμοποιούνται.
  3. Μάθουμε βέλτιστες πρακτικές και τεχνικές για τον προγραμματισμό προτροπών.
  4. Εφαρμόσουμε τις τεχνικές που μάθαμε σε πραγματικά παραδείγματα, χρησιμοποιώντας ένα OpenAI endpoint.

Βασικοί Όροι

Προγραμματισμός Προτροπών: Η πρακτική του σχεδιασμού και της βελτίωσης εισόδων για την καθοδήγηση μοντέλων AI προς την παραγωγή επιθυμητών αποτελεσμάτων. Τοκενισμός: Η διαδικασία μετατροπής κειμένου σε μικρότερες μονάδες, που ονομάζονται tokens, που ένα μοντέλο μπορεί να κατανοήσει και να επεξεργαστεί. Instruction-Tuned LLMs: Μεγάλα Γλωσσικά Μοντέλα (LLMs) που έχουν προσαρμοστεί με συγκεκριμένες οδηγίες για τη βελτίωση της ακρίβειας και της σχετικότητας των απαντήσεών τους.

Sandbox Μάθησης

Ο προγραμματισμός προτροπών είναι προς το παρόν περισσότερο τέχνη παρά επιστήμη. Ο καλύτερος τρόπος για να βελτιώσουμε τη διαίσθησή μας για αυτό είναι να εξασκηθούμε περισσότερο και να υιοθετήσουμε μια προσέγγιση δοκιμής και σφάλματος που συνδυάζει την εξειδίκευση στον τομέα εφαρμογής με τις συνιστώμενες τεχνικές και τις βελτιστοποιήσεις συγκεκριμένων μοντέλων.

Το Jupyter Notebook που συνοδεύει αυτό το μάθημα παρέχει ένα περιβάλλον sandbox όπου μπορείτε να δοκιμάσετε όσα μαθαίνετε - καθώς προχωράτε ή ως μέρος της πρόκλησης κώδικα στο τέλος. Για να εκτελέσετε τις ασκήσεις, θα χρειαστείτε:

  1. Ένα κλειδί API του Azure OpenAI - το endpoint υπηρεσίας για ένα αναπτυγμένο LLM.
  2. Μια εκτέλεση Python - στην οποία μπορεί να εκτελεστεί το Notebook.
  3. Τοπικές μεταβλητές περιβάλλοντος - ολοκληρώστε τα βήματα SETUP τώρα για να προετοιμαστείτε.

Το notebook έρχεται με ασκήσεις εκκίνησης - αλλά ενθαρρύνεστε να προσθέσετε τις δικές σας ενότητες Markdown (περιγραφή) και Code (αιτήματα προτροπών) για να δοκιμάσετε περισσότερα παραδείγματα ή ιδέες - και να χτίσετε τη διαίσθησή σας για το σχεδιασμό προτροπών.

Εικονογραφημένος Οδηγός

Θέλετε να αποκτήσετε μια συνολική εικόνα του τι καλύπτει αυτό το μάθημα πριν βουτήξετε μέσα; Ρίξτε μια ματιά σε αυτόν τον εικονογραφημένο οδηγό, που σας δίνει μια αίσθηση των κύριων θεμάτων που καλύπτονται και των βασικών σημείων που πρέπει να σκεφτείτε σε καθένα από αυτά. Ο χάρτης πορείας του μαθήματος σας οδηγεί από την κατανόηση των βασικών εννοιών και προκλήσεων στην αντιμετώπισή τους με σχετικές τεχνικές προγραμματισμού προτροπών και βέλτιστες πρακτικές. Σημειώστε ότι η ενότητα "Προχωρημένες Τεχνικές" σε αυτόν τον οδηγό αναφέρεται στο περιεχόμενο που καλύπτεται στο επόμενο κεφάλαιο αυτού του προγράμματος σπουδών.

Η Νεοφυής Επιχείρησή μας

Τώρα, ας μιλήσουμε για το πώς αυτό το θέμα σχετίζεται με την αποστολή της νεοφυούς επιχείρησής μας να φέρουμε την καινοτομία AI στην εκπαίδευση. Θέλουμε να δημιουργήσουμε εφαρμογές με AI για προσωπική μάθηση - οπότε ας σκεφτούμε πώς οι διαφορετικοί χρήστες της εφαρμογής μας μπορεί να "σχεδιάσουν" προτροπές:

  • Διαχειριστές μπορεί να ζητήσουν από το AI να αναλύσει δεδομένα προγράμματος σπουδών για να εντοπίσει κενά στην κάλυψη. Το AI μπορεί να συνοψίσει τα αποτελέσματα ή να τα οπτικοποιήσει με κώδικα.
  • Εκπαιδευτικοί μπορεί να ζητήσουν από το AI να δημιουργήσει ένα σχέδιο μαθήματος για ένα συγκεκριμένο κοινό και θέμα. Το AI μπορεί να δημιουργήσει το προσωπικό σχέδιο σε καθορισμένη μορφή.
  • Μαθητές μπορεί να ζητήσουν από το AI να τους διδάξει σε ένα δύσκολο θέμα. Το AI μπορεί τώρα να καθοδηγήσει τους μαθητές με μαθήματα, υποδείξεις και παραδείγματα προσαρμοσμένα στο επίπεδό τους.

Αυτό είναι μόνο η κορυφή του παγόβουνου. Ρίξτε μια ματιά στο Prompts For Education - μια βιβλιοθήκη ανοιχτού κώδικα προτροπών επιμελημένη από εκπαιδευτικούς εμπειρογνώμονες - για να αποκτήσετε μια ευρύτερη αίσθηση των δυνατοτήτων! Δοκιμάστε να εκτελέσετε μερικές από αυτές τις προτροπές στο sandbox ή χρησιμοποιώντας το OpenAI Playground για να δείτε τι συμβαίνει!

Τι είναι ο Προγραμματισμός Προτροπών;

Ξεκινήσαμε αυτό το μάθημα ορίζοντας τον Προγραμματισμό Προτροπών ως τη διαδικασία του σχεδιασμού και της βελτιστοποίησης εισόδων κειμένου (προτροπών) για την παροχή συνεπών και ποιοτικών απαντήσεων (ολοκληρώσεων) για έναν δεδομένο στόχο εφαρμογής και μοντέλο. Μπορούμε να το σκεφτούμε ως μια διαδικασία δύο βημάτων:

  • σχεδιασμός της αρχικής προτροπής για ένα δεδομένο μοντέλο και στόχο
  • βελτίωση της προτροπής επαναληπτικά για να βελτιώσουμε την ποιότητα της απάντησης

Αυτή είναι αναγκαστικά μια διαδικασία δοκιμής και σφάλματος που απαιτεί τη διαίσθηση και την προσπάθεια του χρήστη για να επιτύχει τα βέλτιστα αποτελέσματα. Γιατί είναι σημαντικό; Για να απαντήσουμε σε αυτή την ερώτηση, πρέπει πρώτα να κατανοήσουμε τρεις έννοιες:

  • Τοκενισμός = πώς το μοντέλο "βλέπει" την προτροπή
  • Βασικά LLMs = πώς το θεμελιώδες μοντέλο "επεξεργάζεται" μια προτροπή
  • Instruction-Tuned LLMs = πώς το μοντέλο μπορεί τώρα να δει "εργασίες"

Τοκενισμός

Ένα LLM βλέπει τις προτροπές ως μια ακολουθία tokens όπου διαφορετικά μοντέλα (ή εκδόσεις ενός μοντέλου) μπορούν να τοκενίσουν την ίδια προτροπή με διαφορετικούς τρόπους. Δεδομένου ότι τα LLMs εκπαιδεύονται σε tokens (και όχι σε ακατέργαστο κείμενο), ο τρόπος με τον οποίο οι προτροπές τοκενίζονται έχει άμεση επίδραση στην ποιότητα της παραγόμενης απάντησης.

Για να αποκτήσετε μια διαίσθηση για το πώς λειτουργεί ο τοκενισμός, δοκιμάστε εργαλεία όπως το OpenAI Tokenizer που φαίνεται παρακάτω. Αντιγράψτε την προτροπή σας - και δείτε πώς μετατρέπεται σε tokens, δίνοντας προσοχή στο πώς χειρίζονται οι χαρακτήρες διαστήματος και τα σημεία στίξης. Σημειώστε ότι αυτό το παράδειγμα δείχνει ένα παλαιότερο LLM (GPT-3) - οπότε η δοκιμή αυτού με ένα νεότερο μοντέλο μπορεί να παράγει διαφορετικό αποτέλεσμα.

Έννοια: Θεμελιώδη Μοντέλα

Μόλις μια προτροπή τοκενιστεί, η κύρια λειτουργία του "Base LLM" (ή θεμελιώδους μοντέλου) είναι να προβλέψει το token σε αυτή την ακολουθία. Δεδομένου ότι τα LLMs εκπαιδεύονται σε τεράστια σύνολα δεδομένων κειμένου, έχουν καλή αίσθηση των στατιστικών σχέσεων μεταξύ των tokens και μπορούν να κάνουν αυτή την πρόβλεψη με κάποια εμπιστοσύνη. Σημειώστε ότι δεν κατανοούν τη σημασία των λέξεων στην προτροπή ή το token; απλώς βλέπουν ένα μοτίβο που μπορούν να "ολοκληρώσουν" με την επόμενη πρόβλεψή τους. Μπορούν να συνεχίσουν να προβλέπουν την ακολουθία μέχρι να τερματιστεί από την παρέμβαση του χρήστη ή από κάποια προκαθορισμένη συνθήκη.

Θέλετε να δείτε πώς λειτουργεί η ολοκλήρωση βάσει προτροπής; Εισάγετε την παραπάνω προτροπή στο Azure OpenAI Studio Chat Playground με τις προεπιλεγμένες ρυθμίσεις. Το σύστημα είναι διαμορφωμένο να αντιμετωπίζει τις προτροπές ως αιτήματα για πληροφορίες - οπότε θα πρέπει να δείτε μια ολοκλήρωση που ικανοποιεί αυτό το πλαίσιο.

Αλλά τι γίνεται αν ο χρήστης ήθελε να δει κάτι συγκεκριμένο που να πληροί κάποια κριτήρια ή στόχο εργασίας; Εδώ έρχονται τα instruction-tuned LLMs.

Έννοια: Instruction Tuned LLMs

Ένα Instruction Tuned LLM ξεκινά με το θεμελιώδες μοντέλο και το προσαρμόζει με παραδείγματα ή ζεύγη εισόδου/εξόδου (π.χ., πολυ-στροφικά "μηνύματα") που μπορούν να περιέχουν σαφείς οδηγίες - και η απάντηση από το AI προσπαθεί να ακολουθήσει αυτή την οδηγία.

Αυτό χρησιμοποιεί τεχνικές όπως η Ενίσχυση Μάθησης με Ανθρώπινη Ανατροφοδότηση (RLHF) που μπορούν να εκπαιδεύσουν το μοντέλο να ακολουθεί οδηγίες και να μαθαίνει από την ανατροφοδότηση έτσι ώστε να παράγει απαντήσεις που είναι καλύτερα προσαρμοσμένες σε πρακτικές εφαρμογές και πιο σχετικές με τους στόχους των χρηστών.

Ας το δοκιμάσουμε - επισκεφθείτε ξανά την παραπάνω προτροπή, αλλά τώρα αλλάξτε το μήνυμα συστήματος για να παρέχετε την ακόλουθη οδηγία ως πλαίσιο:

Συνοψίστε το περιεχόμενο που σας παρέχεται για έναν μαθητή δευτέρας τάξης. Κρατήστε το αποτέλεσμα σε μια παράγραφο με 3-5 σημεία.

Δείτε πώς το αποτέλεσμα είναι τώρα προσαρμοσμένο να αντανακλά τον επιθυμητό στόχο και τη μορφή; Ένας εκπαιδευτικός μπορεί τώρα να χρησιμοποιήσει απευθείας αυτή την απάντηση στις διαφάνειες του για αυτήν την τάξη.

Γιατί χρειαζόμαστε Προγραμματισμό Προτροπών;

Τώρα που ξέρουμε πώς οι προτροπές επεξεργάζονται από τα LLMs, ας μιλήσουμε για το γιατί χρειαζόμαστε προγραμματισμό προτροπών. Η απάντηση βρίσκεται στο γεγονός ότι τα τρέχοντα LLMs θέτουν έναν αριθμό προκλήσεων που κάνουν την αξιόπιστη και συνεπή ολοκλήρωση πιο δύσκολη να επιτευχθεί χωρίς να καταβληθεί προσπάθεια στη δημιουργία και βελτιστοποίηση προτροπών. Για παράδειγμα:

  1. Οι απαντήσεις των μοντέλων είναι στοχαστικές. Η ίδια προτροπή πιθανότατα θα παράγει διαφορετικές απαντήσεις με διαφορετικά μοντέλα ή εκδόσεις μοντέλων. Και μπορεί ακόμη και να παράγει διαφορετικά αποτελέσματα με το ίδιο μοντέλο σε διαφορετικές χρονικές στιγμές. Οι τεχνικές προγραμματισμού προτροπών μπορούν να μας βοηθήσουν να ελαχιστοποιήσουμε αυτές τις παραλλαγές παρέχοντας καλύτερες οδηγίες.

  2. Τα μοντέλα μπορούν να κατασκευάσουν απαντήσεις. Τα μοντέλα είναι προκαταρτισμένα με μεγάλα αλλά πεπερασμένα σύνολα δεδομένων, πράγμα που σημαίνει ότι στερούνται γνώσεων για έννοιες εκτός αυτού του πεδίου εκπαίδευσης. Ως αποτέλεσμα, μπορούν να παράγ Τελικά, η πραγματική αξία των προτύπων έγκειται στην ικανότητα δημιουργίας και δημοσίευσης βιβλιοθηκών προτροπών για κάθετους τομείς εφαρμογών - όπου το πρότυπο προτροπής είναι πλέον βελτιστοποιημένο για να αντικατοπτρίζει το συγκεκριμένο πλαίσιο ή παραδείγματα της εφαρμογής, κάνοντας τις απαντήσεις πιο σχετικές και ακριβείς για το στοχευόμενο κοινό χρηστών. Το αποθετήριο Prompts For Edu είναι ένα εξαιρετικό παράδειγμα αυτής της προσέγγισης, επιμελώντας μια βιβλιοθήκη προτροπών για τον εκπαιδευτικό τομέα με έμφαση σε βασικούς στόχους όπως ο σχεδιασμός μαθημάτων, ο σχεδιασμός προγραμμάτων σπουδών, η διδασκαλία μαθητών κ.λπ.

Υποστηρικτικό Περιεχόμενο

Αν σκεφτούμε την κατασκευή προτροπών ως έχουσα μια οδηγία (εργασία) και έναν στόχο (κύριο περιεχόμενο), τότε το δευτερεύον περιεχόμενο είναι σαν επιπλέον πλαίσιο που παρέχουμε για να επηρεάσουμε την έξοδο με κάποιο τρόπο. Θα μπορούσε να είναι ρυθμίσεις παραμέτρων, οδηγίες μορφοποίησης, ταξινομήσεις θεμάτων κ.λπ. που μπορούν να βοηθήσουν το μοντέλο να προσαρμόσει την απάντησή του ώστε να ανταποκρίνεται στους επιθυμητούς στόχους ή προσδοκίες του χρήστη.

Για παράδειγμα: Δεδομένου ενός καταλόγου μαθημάτων με εκτενή μεταδεδομένα (όνομα, περιγραφή, επίπεδο, ετικέτες μεταδεδομένων, εκπαιδευτής κ.λπ.) για όλα τα διαθέσιμα μαθήματα στο πρόγραμμα σπουδών:

  • μπορούμε να ορίσουμε μια οδηγία για να "συνοψίσουμε τον κατάλογο μαθημάτων για το Φθινόπωρο 2023"
  • μπορούμε να χρησιμοποιήσουμε το κύριο περιεχόμενο για να παρέχουμε μερικά παραδείγματα της επιθυμητής εξόδου
  • μπορούμε να χρησιμοποιήσουμε το δευτερεύον περιεχόμενο για να εντοπίσουμε τις κορυφαίες 5 "ετικέτες" ενδιαφέροντος.

Τώρα, το μοντέλο μπορεί να παρέχει μια σύνοψη στη μορφή που φαίνεται από τα λίγα παραδείγματα - αλλά αν ένα αποτέλεσμα έχει πολλαπλές ετικέτες, μπορεί να δώσει προτεραιότητα στις 5 ετικέτες που προσδιορίζονται στο δευτερεύον περιεχόμενο.

Βέλτιστες Πρακτικές Προτροπών

Τώρα που γνωρίζουμε πώς μπορούν να κατασκευαστούν οι προτροπές, μπορούμε να αρχίσουμε να σκεφτόμαστε πώς να τις σχεδιάσουμε για να αντικατοπτρίζουν τις βέλτιστες πρακτικές. Μπορούμε να το σκεφτούμε αυτό σε δύο μέρη - έχοντας τη σωστή νοοτροπία και εφαρμόζοντας τις σωστές τεχνικές.

Νοοτροπία Μηχανικής Προτροπών

Η Μηχανική Προτροπών είναι μια διαδικασία δοκιμής και σφάλματος, οπότε κρατήστε στο μυαλό σας τρεις ευρείς καθοδηγητικούς παράγοντες:

  1. Η Κατανόηση του Τομέα Έχει Σημασία. Η ακρίβεια και η συνάφεια της απάντησης είναι συνάρτηση του τομέα στον οποίο λειτουργεί η εφαρμογή ή ο χρήστης. Εφαρμόστε τη διαίσθηση και την εμπειρογνωμοσύνη σας στον τομέα για να προσαρμόσετε περαιτέρω τις τεχνικές. Για παράδειγμα, ορίστε προσωπικότητες συγκεκριμένες για τον τομέα στις συστημικές προτροπές σας ή χρησιμοποιήστε πρότυπα συγκεκριμένα για τον τομέα στις προτροπές χρήστη σας. Παρέχετε δευτερεύον περιεχόμενο που αντικατοπτρίζει τα πλαίσια του τομέα ή χρησιμοποιήστε υποδείξεις και παραδείγματα συγκεκριμένα για τον τομέα για να καθοδηγήσετε το μοντέλο προς οικείες πρότυπα χρήσης.

  2. Η Κατανόηση του Μοντέλου Έχει Σημασία. Γνωρίζουμε ότι τα μοντέλα είναι στοχαστικά από τη φύση τους. Αλλά οι υλοποιήσεις μοντέλων μπορούν επίσης να διαφέρουν ως προς το σύνολο δεδομένων εκπαίδευσης που χρησιμοποιούν (προεκπαιδευμένη γνώση), τις δυνατότητες που παρέχουν (π.χ., μέσω API ή SDK) και τον τύπο περιεχομένου για τον οποίο είναι βελτιστοποιημένα (π.χ., κώδικας έναντι εικόνων έναντι κειμένου). Κατανοήστε τα δυνατά σημεία και τους περιορισμούς του μοντέλου που χρησιμοποιείτε και χρησιμοποιήστε αυτή τη γνώση για να προτεραιοποιήσετε εργασίες ή να δημιουργήσετε προσαρμοσμένα πρότυπα που είναι βελτιστοποιημένα για τις δυνατότητες του μοντέλου.

  3. Η Επανάληψη & Επικύρωση Έχει Σημασία. Τα μοντέλα εξελίσσονται γρήγορα, και το ίδιο ισχύει και για τις τεχνικές μηχανικής προτροπών. Ως ειδικός στον τομέα, μπορεί να έχετε άλλο πλαίσιο ή κριτήρια για τη συγκεκριμένη σας εφαρμογή, που μπορεί να μην ισχύουν για την ευρύτερη κοινότητα. Χρησιμοποιήστε εργαλεία και τεχνικές μηχανικής προτροπών για να "εκκινήσετε" την κατασκευή προτροπών, και στη συνέχεια επαναλάβετε και επικυρώστε τα αποτελέσματα χρησιμοποιώντας τη δική σας διαίσθηση και εμπειρογνωμοσύνη στον τομέα. Καταγράψτε τις γνώσεις σας και δημιουργήστε μια βάση γνώσεων (π.χ., βιβλιοθήκες προτροπών) που μπορεί να χρησιμοποιηθεί ως νέα βάση από άλλους, για ταχύτερες επαναλήψεις στο μέλλον.

Βέλτιστες Πρακτικές

Τώρα ας δούμε κοινές βέλτιστες πρακτικές που συνιστώνται από τους επαγγελματίες OpenAI και Azure OpenAI.

Τι Γιατί
Αξιολογήστε τα πιο πρόσφατα μοντέλα. Οι νέες γενιές μοντέλων είναι πιθανό να έχουν βελτιωμένα χαρακτηριστικά και ποιότητα - αλλά μπορεί επίσης να έχουν υψηλότερο κόστος. Αξιολογήστε τα για τον αντίκτυπο και στη συνέχεια λάβετε αποφάσεις μετανάστευσης.
Διαχωρίστε τις οδηγίες & το πλαίσιο Ελέγξτε αν το μοντέλο/πάροχός σας ορίζει διαχωριστικά για να ξεχωρίζει τις οδηγίες, το κύριο και το δευτερεύον περιεχόμενο πιο καθαρά. Αυτό μπορεί να βοηθήσει τα μοντέλα να αποδώσουν πιο ακριβώς βάρη σε τοκενς.
Να είστε συγκεκριμένοι και σαφείς Δώστε περισσότερες λεπτομέρειες για το επιθυμητό πλαίσιο, το αποτέλεσμα, το μήκος, τη μορφή, το στυλ κ.λπ. Αυτό θα βελτιώσει τόσο την ποιότητα όσο και τη συνέπεια των απαντήσεων. Καταγράψτε συνταγές σε επαναχρησιμοποιούμενα πρότυπα.
Να είστε περιγραφικοί, χρησιμοποιήστε παραδείγματα Τα μοντέλα μπορεί να ανταποκρίνονται καλύτερα σε μια προσέγγιση "δείξε και πες". Ξεκινήστε με μια zero-shot approach where you give it an instruction (but no examples) then try few-shot as a refinement, providing a few examples of the desired output. Use analogies.
Use cues to jumpstart completions Nudge it towards a desired outcome by giving it some leading words or phrases that it can use as a starting point for the response.
Double Down Sometimes you may need to repeat yourself to the model. Give instructions before and after your primary content, use an instruction and a cue, etc. Iterate & validate to see what works.
Order Matters The order in which you present information to the model may impact the output, even in the learning examples, thanks to recency bias. Try different options to see what works best.
Give the model an “out” Give the model a fallback completion response it can provide if it cannot complete the task for any reason. This can reduce chances of models generating false or fabricated responses.

As with any best practice, remember that your mileage may vary based on the model, the task and the domain. Use these as a starting point, and iterate to find what works best for you. Constantly re-evaluate your prompt engineering process as new models and tools become available, with a focus on process scalability and response quality.

Assignment

Congratulations! You made it to the end of the lesson! It's time to put some of those concepts and techniques to the test with real examples!

For our assignment, we'll be using a Jupyter Notebook with exercises you can complete interactively. You can also extend the Notebook with your own Markdown and Code cells to explore ideas and techniques on your own.

To get started, fork the repo, then

  • (Recommended) Launch GitHub Codespaces
  • (Alternatively) Clone the repo to your local device and use it with Docker Desktop
  • (Alternatively) Open the Notebook with your preferred Notebook runtime environment.

Next, configure your environment variables

  • Copy the .env.copy file in repo root to .env and fill in the AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT and AZURE_OPENAI_DEPLOYMENT τιμές. Επιστρέψτε στην Ενότητα Learning Sandbox για να μάθετε πώς.

Στη συνέχεια, ανοίξτε το Jupyter Notebook

  • Επιλέξτε τον πυρήνα εκτέλεσης. Αν χρησιμοποιείτε τις επιλογές 1 ή 2, απλά επιλέξτε τον προεπιλεγμένο πυρήνα Python 3.10.x που παρέχεται από το dev container.

Είστε έτοιμοι να εκτελέσετε τις ασκήσεις. Σημειώστε ότι δεν υπάρχουν σωστές και λάθος απαντήσεις εδώ - απλώς εξερευνήστε επιλογές μέσω δοκιμής και σφάλματος και δημιουργήστε διαίσθηση για το τι λειτουργεί για ένα δεδομένο μοντέλο και τομέα εφαρμογής.

Για αυτόν τον λόγο δεν υπάρχουν τμήματα Κώδικα Λύσης σε αυτό το μάθημα. Αντίθετα, το Notebook θα έχει κελιά Markdown με τίτλο "Η Λύση Μου:" που δείχνει ένα παράδειγμα εξόδου για αναφορά.

Έλεγχος Γνώσεων

Ποια από τις παρακάτω είναι μια καλή προτροπή ακολουθώντας κάποιες λογικές βέλτιστες πρακτικές;

  1. Δείξε μου μια εικόνα κόκκινου αυτοκινήτου
  2. Δείξε μου μια εικόνα κόκκινου αυτοκινήτου μάρκας Volvo και μοντέλου XC90 σταθμευμένου δίπλα σε γκρεμό με τον ήλιο να δύει
  3. Δείξε μου μια εικόνα κόκκινου αυτοκινήτου μάρκας Volvo και μοντέλου XC90

Α: 2, είναι η καλύτερη προτροπή καθώς παρέχει λεπτομέρειες για το "τι" και εισέρχεται σε λεπτομέρειες (όχι απλά οποιοδήποτε αυτοκίνητο αλλά συγκεκριμένη μάρκα και μοντέλο) και επίσης περιγράφει το συνολικό περιβάλλον. Η 3 είναι η επόμενη καλύτερη καθώς περιέχει επίσης πολλές περιγραφές.

🚀 Πρόκληση

Δείτε αν μπορείτε να αξιοποιήσετε την τεχνική "υπόδειξης" με την προτροπή: Συμπληρώστε την πρόταση "Δείξε μου μια εικόνα κόκκινου αυτοκινήτου μάρκας Volvo και ". Τι απαντά, και πώς θα το βελτιώνατε;

Συγχαρητήρια! Συνεχίστε τη Μάθηση

Θέλετε να μάθετε περισσότερα για διαφορετικές έννοιες της Μηχανικής Προτροπών; Μεταβείτε στη σελίδα συνεχούς μάθησης για να βρείτε άλλους εξαιρετικούς πόρους για αυτό το θέμα.

Πηγαίνετε στο Μάθημα 5 όπου θα εξετάσουμε προχωρημένες τεχνικές προτροπών!

Αποποίηση ευθυνών: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία μετάφρασης AI Co-op Translator. Ενώ προσπαθούμε για ακρίβεια, παρακαλούμε να γνωρίζετε ότι οι αυτοματοποιημένες μεταφράσεις μπορεί να περιέχουν σφάλματα ή ανακρίβειες. Το αρχικό έγγραφο στη γλώσσα του θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν είμαστε υπεύθυνοι για τυχόν παρανοήσεις ή παρερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.