Αυτό το κεφάλαιο καλύπτει βασικές έννοιες και τεχνικές για τη δημιουργία αποτελεσματικών προτροπών σε μοντέλα γενετικής τεχνητής νοημοσύνης. Ο τρόπος με τον οποίο γράφετε την προτροπή σας σε ένα LLM έχει σημασία. Μια προσεκτικά σχεδιασμένη προτροπή μπορεί να οδηγήσει σε καλύτερης ποιότητας απαντήσεις. Αλλά τι ακριβώς σημαίνουν όροι όπως προτροπή και μηχανική προτροπών; Και πώς μπορώ να βελτιώσω την εισαγωγή προτροπής που στέλνω στο LLM; Αυτά είναι τα ερωτήματα που θα προσπαθήσουμε να απαντήσουμε σε αυτό το κεφάλαιο και το επόμενο.
Η Γενετική Τεχνητή Νοημοσύνη είναι ικανή να δημιουργεί νέο περιεχόμενο (π.χ., κείμενο, εικόνες, ήχο, κώδικα κ.λπ.) ως απάντηση σε αιτήματα χρηστών. Το επιτυγχάνει χρησιμοποιώντας Μεγάλα Γλωσσικά Μοντέλα όπως η σειρά GPT ("Generative Pre-trained Transformer") της OpenAI, που είναι εκπαιδευμένα να χρησιμοποιούν φυσική γλώσσα και κώδικα.
Οι χρήστες μπορούν πλέον να αλληλεπιδρούν με αυτά τα μοντέλα χρησιμοποιώντας γνωστά παραδείγματα όπως η συνομιλία, χωρίς να χρειάζονται τεχνική εξειδίκευση ή εκπαίδευση. Τα μοντέλα είναι βασισμένα σε προτροπές - οι χρήστες στέλνουν μια εισαγωγή κειμένου (προτροπή) και λαμβάνουν την απάντηση της τεχνητής νοημοσύνης (ολοκλήρωση). Στη συνέχεια, μπορούν να "συνομιλήσουν με την τεχνητή νοημοσύνη" επαναληπτικά, σε συνομιλίες πολλαπλών γύρων, βελτιώνοντας την προτροπή τους μέχρι η απάντηση να ανταποκρίνεται στις προσδοκίες τους.
Οι "προτροπές" γίνονται πλέον η κύρια διεπαφή προγραμματισμού για εφαρμογές γενετικής τεχνητής νοημοσύνης, καθοδηγώντας τα μοντέλα για το τι πρέπει να κάνουν και επηρεάζοντας την ποιότητα των απαντήσεων που επιστρέφονται. Η "Μηχανική Προτροπών" είναι ένας ταχέως αναπτυσσόμενος τομέας μελέτης που επικεντρώνεται στον σχεδιασμό και τη βελτιστοποίηση των προτροπών για την παροχή συνεπών και ποιοτικών απαντήσεων σε μεγάλη κλίμακα.
Σε αυτό το μάθημα, θα μάθουμε τι είναι η Μηχανική Προτροπών, γιατί είναι σημαντική και πώς μπορούμε να δημιουργήσουμε πιο αποτελεσματικές προτροπές για ένα συγκεκριμένο μοντέλο και στόχο εφαρμογής. Θα κατανοήσουμε βασικές έννοιες και βέλτιστες πρακτικές για τη μηχανική προτροπών - και θα μάθουμε για ένα διαδραστικό περιβάλλον "sandbox" Jupyter Notebooks όπου μπορούμε να δούμε αυτές τις έννοιες να εφαρμόζονται σε πραγματικά παραδείγματα.
Μέχρι το τέλος αυτού του μαθήματος θα είμαστε σε θέση να:
- Εξηγήσουμε τι είναι η μηχανική προτροπών και γιατί είναι σημαντική.
- Περιγράψουμε τα στοιχεία μιας προτροπής και πώς χρησιμοποιούνται.
- Μάθουμε βέλτιστες πρακτικές και τεχνικές για τη μηχανική προτροπών.
- Εφαρμόσουμε τις τεχνικές που μάθαμε σε πραγματικά παραδείγματα, χρησιμοποιώντας ένα endpoint του OpenAI.
Μηχανική Προτροπών: Η πρακτική του σχεδιασμού και της βελτίωσης εισαγωγών για την καθοδήγηση των μοντέλων τεχνητής νοημοσύνης προς την παραγωγή επιθυμητών αποτελεσμάτων. Tokenization: Η διαδικασία μετατροπής κειμένου σε μικρότερες μονάδες, που ονομάζονται tokens, τις οποίες ένα μοντέλο μπορεί να κατανοήσει και να επεξεργαστεί. Instruction-Tuned LLMs: Μεγάλα Γλωσσικά Μοντέλα (LLMs) που έχουν προσαρμοστεί με συγκεκριμένες οδηγίες για τη βελτίωση της ακρίβειας και της συνάφειας των απαντήσεων τους.
Η μηχανική προτροπών είναι προς το παρόν περισσότερο τέχνη παρά επιστήμη. Ο καλύτερος τρόπος για να βελτιώσουμε τη διαίσθησή μας για αυτήν είναι να εξασκηθούμε περισσότερο και να υιοθετήσουμε μια προσέγγιση δοκιμής και σφάλματος που συνδυάζει την εξειδίκευση στον τομέα εφαρμογής με τις συνιστώμενες τεχνικές και τις βελτιστοποιήσεις που είναι ειδικές για το μοντέλο.
Το Jupyter Notebook που συνοδεύει αυτό το μάθημα παρέχει ένα περιβάλλον sandbox όπου μπορείτε να δοκιμάσετε όσα μαθαίνετε - είτε κατά τη διάρκεια του μαθήματος είτε ως μέρος της πρόκλησης κώδικα στο τέλος. Για να εκτελέσετε τις ασκήσεις, θα χρειαστείτε:
- Ένα κλειδί API του Azure OpenAI - το endpoint υπηρεσίας για ένα αναπτυγμένο LLM.
- Ένα περιβάλλον εκτέλεσης Python - στο οποίο μπορεί να εκτελεστεί το Notebook.
- Τοπικές Μεταβλητές Περιβάλλοντος - ολοκληρώστε τα βήματα SETUP τώρα για να είστε έτοιμοι.
Το notebook περιλαμβάνει ασκήσεις εκκίνησης - αλλά σας ενθαρρύνουμε να προσθέσετε τις δικές σας ενότητες Markdown (περιγραφή) και Code (αιτήματα προτροπών) για να δοκιμάσετε περισσότερα παραδείγματα ή ιδέες - και να χτίσετε τη διαίσθησή σας για το σχεδιασμό προτροπών.
Θέλετε να αποκτήσετε μια γενική εικόνα για το τι καλύπτει αυτό το μάθημα πριν βουτήξετε; Δείτε αυτόν τον εικονογραφημένο οδηγό, που σας δίνει μια αίσθηση των κύριων θεμάτων που καλύπτονται και των βασικών σημείων που πρέπει να σκεφτείτε σε καθένα από αυτά. Ο χάρτης πορείας του μαθήματος σας οδηγεί από την κατανόηση των βασικών εννοιών και προκλήσεων στην αντιμετώπισή τους με σχετικές τεχνικές μηχανικής προτροπών και βέλτιστες πρακτικές. Σημειώστε ότι η ενότητα "Προχωρημένες Τεχνικές" σε αυτόν τον οδηγό αναφέρεται σε περιεχόμενο που καλύπτεται στο επόμενο κεφάλαιο αυτού του προγράμματος σπουδών.
Ας μιλήσουμε τώρα για το πώς αυτό το θέμα σχετίζεται με την αποστολή της startup μας να φέρουμε καινοτομία AI στην εκπαίδευση. Θέλουμε να δημιουργήσουμε εφαρμογές τεχνητής νοημοσύνης για προσωποποιημένη μάθηση - οπότε ας σκεφτούμε πώς διαφορετικοί χρήστες της εφαρμογής μας μπορεί να "σχεδιάσουν" προτροπές:
- Διαχειριστές μπορεί να ζητήσουν από την AI να αναλύσει δεδομένα προγράμματος σπουδών για να εντοπίσει κενά στην κάλυψη. Η AI μπορεί να συνοψίσει τα αποτελέσματα ή να τα απεικονίσει με κώδικα.
- Εκπαιδευτικοί μπορεί να ζητήσουν από την AI να δημιουργήσει ένα σχέδιο μαθήματος για ένα συγκεκριμένο κοινό και θέμα. Η AI μπορεί να δημιουργήσει το προσωποποιημένο σχέδιο σε μια καθορισμένη μορφή.
- Μαθητές μπορεί να ζητήσουν από την AI να τους διδάξει ένα δύσκολο θέμα. Η AI μπορεί τώρα να καθοδηγήσει τους μαθητές με μαθήματα, υποδείξεις και παραδείγματα προσαρμοσμένα στο επίπεδό τους.
Αυτό είναι μόνο η κορυφή του παγόβουνου. Δείτε Prompts For Education - μια βιβλιοθήκη προτροπών ανοιχτού κώδικα που έχει επιμεληθεί από ειδικούς στην εκπαίδευση - για να αποκτήσετε μια ευρύτερη αίσθηση των δυνατοτήτων! Δοκιμάστε να εκτελέσετε μερικές από αυτές τις προτροπές στο sandbox ή χρησιμοποιώντας το OpenAI Playground για να δείτε τι συμβαίνει!
Ξεκινήσαμε αυτό το μάθημα ορίζοντας τη Μηχανική Προτροπών ως τη διαδικασία σχεδιασμού και βελτιστοποίησης εισαγωγών κειμένου (προτροπών) για την παροχή συνεπών και ποιοτικών απαντήσεων (ολοκληρώσεων) για έναν συγκεκριμένο στόχο εφαρμογής και μοντέλο. Μπορούμε να το σκεφτούμε ως μια διαδικασία 2 βημάτων:
- σχεδιασμός της αρχικής προτροπής για ένα συγκεκριμένο μοντέλο και στόχο
- βελτίωση της προτροπής επαναληπτικά για τη βελτίωση της ποιότητας της απάντησης
Αυτή είναι αναγκαστικά μια διαδικασία δοκιμής και σφάλματος που απαιτεί διαίσθηση και προσπάθεια από τον χρήστη για την επίτευξη βέλτιστων αποτελεσμάτων. Γιατί είναι σημαντική; Για να απαντήσουμε σε αυτή την ερώτηση, πρέπει πρώτα να κατανοήσουμε τρεις έννοιες:
- Tokenization = πώς το μοντέλο "βλέπει" την προτροπή
- Βασικά LLMs = πώς το θεμελιώδες μοντέλο "επεξεργάζεται" μια προτροπή
- Instruction-Tuned LLMs = πώς το μοντέλο μπορεί τώρα να δει "εργασίες"
Ένα LLM βλέπει τις προτροπές ως ακολουθία tokens, όπου διαφορετικά μοντέλα (ή εκδόσεις ενός μοντέλου) μπορούν να διαχωρίσουν την ίδια προτροπή με διαφορετικούς τρόπους. Δεδομένου ότι τα LLMs εκπαιδεύονται σε tokens (και όχι σε ακατέργαστο κείμενο), ο τρόπος με τον οποίο οι προτροπές διαχωρίζονται σε tokens έχει άμεση επίδραση στην ποιότητα της παραγόμενης απάντησης.
Για να αποκτήσετε μια διαίσθηση για το πώς λειτουργεί το tokenization, δοκιμάστε εργαλεία όπως το OpenAI Tokenizer που φαίνεται παρακάτω. Αντιγράψτε την προτροπή σας - και δείτε πώς μετατρέπεται σε tokens, δίνοντας προσοχή στο πώς χειρίζονται οι χαρακτήρες κενών και τα σημεία στίξης. Σημειώστε ότι αυτό το παράδειγμα δείχνει ένα παλαιότερο LLM (GPT-3) - οπότε η δοκιμή με ένα νεότερο μοντέλο μπορεί να παράγει διαφορετικό αποτέλεσμα.
Μόλις μια προτροπή διαχωριστεί σε tokens, η κύρια λειτουργία του "Βασικού LLM" (ή Θεμελιώδους μοντέλου) είναι να προβλέψει το επόμενο token σε αυτή την ακολουθία. Δεδομένου ότι τα LLMs εκπαιδεύονται σε τεράστια σύνολα δεδομένων κειμένου, έχουν καλή αίσθηση των στατιστικών σχέσεων μεταξύ των tokens και μπορούν να κάνουν αυτή την πρόβλεψη με κάποια εμπιστοσύνη. Σημειώστε ότι δεν κατανοούν τη σημασία των λέξεων στην προτροπή ή το token· απλώς βλέπουν ένα μοτίβο που μπορούν να "ολοκληρώσουν" με την επόμενη πρόβλεψη. Μπορούν να συνεχίσουν να προβλέπουν την ακολουθία μέχρι να τερματιστεί από την παρέμβαση του χρήστη ή κάποια προκαθορισμένη συνθήκη.
Θέλετε να δείτε πώς λειτουργεί η ολοκλήρωση βασισμένη σε προτροπές; Εισάγετε την παραπάνω προτροπή στο Chat Playground του Azure OpenAI Studio με τις προεπιλεγμένες ρυθμίσεις. Το σύστημα είναι διαμορφωμένο να αντιμετωπίζει τις προτροπές ως αιτήματα για πληροφορίες - οπότε θα πρέπει να δείτε μια ολοκλήρωση που ικανοποιεί αυτό το πλαίσιο.
Αλλά τι γίνεται αν ο χρήστης ήθελε να δει κάτι συγκεκριμένο που να πληροί κάποια κριτήρια ή στόχο εργασίας; Εδώ έρχονται στο προσκήνιο τα instruction-tuned LLMs.
Ένα Instruction Tuned LLM ξεκινά με το θεμελιώδες μοντέλο και το προσαρμόζει με παραδείγματα ή ζεύγη εισόδου/εξόδου (π.χ., μηνύματα πολλαπλών γύρων) που μπορούν να περιέχουν σαφείς οδηγίες - και η απάντηση από την AI προσπαθεί να ακολουθήσει αυτή την οδηγία.
Αυτό χρησιμοποιεί τεχνικές όπως η Ενίσχυση Μάθησης με Ανθρώπινη Ανατροφοδότηση (RLHF) που μπορούν να εκπαιδεύσουν το μοντέλο να ακολουθεί οδηγίες και να μαθαίνει από την ανατροφοδότηση ώστε να παράγει απαντήσεις που είναι καλύτερα προσαρμοσμένες σε πρακτικές εφαρμογές και πιο σχετικές με τους στόχους του χρήστη.
Ας το δοκιμάσουμε - επανεξετάστε την παραπάνω προτροπή, αλλά τώρα αλλάξτε το μήνυμα συστήματος για να παρέχετε την εξής οδηγία ως πλαίσιο:
Συνοψίστε το περιεχόμενο που σας παρέχεται για έναν μαθητή δευτέρας δημοτικού. Κρατήστε το αποτέλεσμα σε μία παράγραφο με 3-5 σημεία.
Δείτε πώς το αποτέλεσμα τώρα προσαρμόζεται ώστε να αντικατοπτρίζει τον επιθυμητό στόχο και τη μορφή; Ένας εκπαιδευτικός μπορεί τώρα να χρησιμοποιήσει αυτή την απάντηση απευθείας στις διαφάνειες για εκείνη την τάξη.
Τώρα που γνωρίζουμε πώς οι προτρο Μια αναζήτηση στο διαδίκτυο μου έδειξε ότι υπήρχαν φανταστικές αφηγήσεις (π.χ., τηλεοπτικές σειρές ή βιβλία) για πολέμους στον Άρη - αλλά καμία το 2076. Η κοινή λογική μας λέει επίσης ότι το 2076 είναι στο μέλλον και επομένως δεν μπορεί να συνδεθεί με ένα πραγματικό γεγονός.
Τι συμβαίνει λοιπόν όταν δοκιμάζουμε αυτήν την ερώτηση με διαφορετικούς παρόχους LLM;
Απάντηση 1: OpenAI Playground (GPT-35)
Απάντηση 2: Azure OpenAI Playground (GPT-35)
Απάντηση 3: Hugging Face Chat Playground (LLama-2)
Όπως αναμενόταν, κάθε μοντέλο (ή έκδοση μοντέλου) παράγει ελαφρώς διαφορετικές απαντήσεις λόγω της στοχαστικής συμπεριφοράς και των διαφορών στις δυνατότητες του μοντέλου. Για παράδειγμα, ένα μοντέλο απευθύνεται σε κοινό 8ης τάξης, ενώ το άλλο υποθέτει μαθητές λυκείου. Ωστόσο, και τα τρία μοντέλα δημιούργησαν απαντήσεις που θα μπορούσαν να πείσουν έναν ανενημέρωτο χρήστη ότι το γεγονός ήταν πραγματικό.
Τεχνικές σχεδιασμού ερωτήσεων όπως το metaprompting και η ρύθμιση θερμοκρασίας μπορούν να μειώσουν τις κατασκευές του μοντέλου σε κάποιο βαθμό. Νέες αρχιτεκτονικές σχεδιασμού ερωτήσεων ενσωματώνουν επίσης νέα εργαλεία και τεχνικές απρόσκοπτα στη ροή της ερώτησης, για να μετριάσουν ή να μειώσουν ορισμένα από αυτά τα αποτελέσματα.
Ας ολοκληρώσουμε αυτήν την ενότητα αποκτώντας μια αίσθηση του πώς χρησιμοποιείται ο σχεδιασμός ερωτήσεων σε λύσεις πραγματικού κόσμου, εξετάζοντας μια Μελέτη Περίπτωσης: GitHub Copilot.
Το GitHub Copilot είναι ο "AI Συνεργάτης Προγραμματισμού" σας - μετατρέπει ερωτήσεις κειμένου σε συμπληρώσεις κώδικα και είναι ενσωματωμένο στο περιβάλλον ανάπτυξής σας (π.χ., Visual Studio Code) για μια απρόσκοπτη εμπειρία χρήστη. Όπως τεκμηριώνεται στη σειρά των παρακάτω ιστολογίων, η πρώτη έκδοση βασίστηκε στο μοντέλο OpenAI Codex - με τους μηχανικούς να συνειδητοποιούν γρήγορα την ανάγκη για βελτίωση του μοντέλου και ανάπτυξη καλύτερων τεχνικών σχεδιασμού ερωτήσεων, για τη βελτίωση της ποιότητας του κώδικα. Τον Ιούλιο, παρουσίασαν ένα βελτιωμένο μοντέλο AI που ξεπερνά το Codex για ακόμη πιο γρήγορες προτάσεις.
Διαβάστε τις δημοσιεύσεις με τη σειρά, για να ακολουθήσετε την πορεία μάθησής τους.
- Μάιος 2023 | Το GitHub Copilot γίνεται καλύτερο στην κατανόηση του κώδικα σας
- Μάιος 2023 | Μέσα στο GitHub: Εργασία με τα LLMs πίσω από το GitHub Copilot.
- Ιούνιος 2023 | Πώς να γράψετε καλύτερες ερωτήσεις για το GitHub Copilot.
- Ιούλιος 2023 | .. Το GitHub Copilot ξεπερνά το Codex με βελτιωμένο μοντέλο AI
- Ιούλιος 2023 | Οδηγός Προγραμματιστή για Σχεδιασμό Ερωτήσεων και LLMs
- Σεπτέμβριος 2023 | Πώς να δημιουργήσετε μια εφαρμογή LLM για επιχειρήσεις: Μαθήματα από το GitHub Copilot
Μπορείτε επίσης να περιηγηθείτε στο Engineering blog για περισσότερες δημοσιεύσεις όπως αυτή που δείχνει πώς αυτά τα μοντέλα και οι τεχνικές εφαρμόζονται για την προώθηση εφαρμογών πραγματικού κόσμου.
Έχουμε δει γιατί ο σχεδιασμός ερωτήσεων είναι σημαντικός - τώρα ας κατανοήσουμε πώς κατασκευάζονται οι ερωτήσεις ώστε να αξιολογήσουμε διαφορετικές τεχνικές για πιο αποτελεσματικό σχεδιασμό ερωτήσεων.
Ας ξεκινήσουμε με τη βασική ερώτηση: μια εισαγωγή κειμένου που αποστέλλεται στο μοντέλο χωρίς άλλο πλαίσιο. Να ένα παράδειγμα - όταν στέλνουμε τις πρώτες λέξεις του εθνικού ύμνου των ΗΠΑ στο OpenAI Completion API, το μοντέλο ολοκληρώνει την απάντηση με τις επόμενες γραμμές, δείχνοντας τη βασική συμπεριφορά πρόβλεψης.
| Ερώτηση (Εισαγωγή) | Ολοκλήρωση (Απάντηση) |
|---|---|
| Oh say can you see | Φαίνεται ότι ξεκινάτε τους στίχους του "The Star-Spangled Banner", του εθνικού ύμνου των Ηνωμένων Πολιτειών. Οι πλήρεις στίχοι είναι ... |
Τώρα ας προσθέσουμε πλαίσιο και οδηγίες στη βασική ερώτηση. Το Chat Completion API μας επιτρέπει να κατασκευάσουμε μια σύνθετη ερώτηση ως συλλογή μηνυμάτων με:
- Ζεύγη εισόδου/εξόδου που αντικατοπτρίζουν την εισαγωγή χρήστη και την απάντηση βοηθού.
- Μήνυμα συστήματος που θέτει το πλαίσιο για τη συμπεριφορά ή την προσωπικότητα του βοηθού.
Η αίτηση έχει πλέον τη μορφή παρακάτω, όπου η tokenization καταγράφει αποτελεσματικά τις σχετικές πληροφορίες από το πλαίσιο και τη συνομιλία. Τώρα, η αλλαγή του πλαισίου του συστήματος μπορεί να είναι εξίσου σημαντική για την ποιότητα των ολοκληρώσεων, όσο και οι εισαγωγές που παρέχονται από τον χρήστη.
response = openai.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]
)Στα παραπάνω παραδείγματα, η ερώτηση του χρήστη ήταν μια απλή ερώτηση κειμένου που μπορεί να ερμηνευθεί ως αίτημα για πληροφορίες. Με τις ερωτήσεις οδηγιών, μπορούμε να χρησιμοποιήσουμε αυτό το κείμενο για να καθορίσουμε μια εργασία με περισσότερες λεπτομέρειες, παρέχοντας καλύτερη καθοδήγηση στο AI. Να ένα παράδειγμα:
| Ερώτηση (Εισαγωγή) | Ολοκλήρωση (Απάντηση) | Τύπος Οδηγίας |
|---|---|---|
| Γράψτε μια περιγραφή του Εμφυλίου Πολέμου | επιστράφηκε μια απλή παράγραφος | Απλή |
| Γράψτε μια περιγραφή του Εμφυλίου Πολέμου. Παρέχετε βασικές ημερομηνίες και γεγονότα και περιγράψτε τη σημασία τους | επιστράφηκε μια παράγραφος ακολουθούμενη από μια λίστα βασικών ημερομηνιών γεγονότων με περιγραφές | Σύνθετη |
| Γράψτε μια περιγραφή του Εμφυλίου Πολέμου σε 1 παράγραφο. Παρέχετε 3 σημεία με βασικές ημερομηνίες και τη σημασία τους. Παρέχετε 3 ακόμη σημεία με βασικές ιστορικές προσωπικότητες και τις συνεισφορές τους. Επιστρέψτε την απάντηση ως αρχείο JSON | επιστράφηκαν πιο εκτεταμένες λεπτομέρειες σε ένα πλαίσιο κειμένου, μορφοποιημένο ως JSON που μπορείτε να αντιγράψετε-επικολλήσετε σε ένα αρχείο και να το επικυρώσετε όπως χρειάζεται | Σύνθετη. Μορφοποιημένη. |
Στα παραπάνω παραδείγματα, η ερώτηση ήταν ακόμα αρκετά ανοιχτή, επιτρέποντας στο LLM να αποφασίσει ποιο μέρος του προ-εκπαιδευμένου συνόλου δεδομένων ήταν σχετικό. Με το σχέδιο κύριου περιεχομένου, το εισαγωγικό κείμενο χωρίζεται σε δύο μέρη:
- μια οδηγία (δράση)
- σχετικό περιεχόμενο (που επηρεάζει τη δράση)
Να ένα παράδειγμα όπου η οδηγία είναι "συνοψίστε αυτό σε 2 προτάσεις".
| Ερώτηση (Εισαγωγή) | Ολοκλήρωση (Απάντηση) |
|---|---|
| Ο Δίας είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. Είναι ένας γίγαντας αερίου με μάζα που είναι το ένα χιλιοστό της μάζας του Ήλιου, αλλά δυόμισι φορές μεγαλύτερη από τη μάζα όλων των άλλων πλανητών του Ηλιακού Συστήματος μαζί. Ο Δίας είναι ένα από τα πιο φωτεινά αντικείμενα ορατά με γυμνό μάτι στον νυχτερινό ουρανό και είναι γνωστός από αρχαίους πολιτισμούς πριν από την καταγεγραμμένη ιστορία. Ονομάστηκε από τον Ρωμαίο θεό Δία.[19] Όταν παρατηρείται από τη Γη, ο Δίας μπορεί να είναι τόσο φωτεινός ώστε το ανακλώμενο φως του να δημιουργεί ορατές σκιές,[20] και είναι κατά μέσο όρο το τρίτο πιο φωτεινό φυσικό αντικείμενο στον νυχτερινό ουρανό μετά τη Σελήνη και την Αφροδίτη. Συνοψίστε αυτό σε 2 σύντομες προτάσεις |
Ο Δίας, ο πέμπτος πλανήτης από τον Ήλιο, είναι ο μεγαλύτερος στο Ηλιακό Σύστημα και είναι γνωστός ως ένα από τα πιο φωτεινά αντικείμενα στον νυχτερινό ουρανό. Ονομάστηκε από τον Ρωμαίο θεό Δία, είναι ένας γίγαντας αερίου με μάζα δυόμισι φορές μεγαλύτερη από τη μάζα όλων των άλλων πλανητών μαζί. |
Το τμήμα κύριου περιεχομένου μπορεί να χρησιμοποιηθεί με διάφορους τρόπους για να οδηγήσει πιο αποτελεσματικές οδηγίες:
- Παραδείγματα - αντί να λέτε στο μοντέλο τι να κάνει με μια ρητή οδηγία, δώστε του παραδείγματα για το τι να κάνει και αφήστε το να συμπεράνει το μοτίβο.
- Υποδείξεις - ακολουθήστε την οδηγία με μια "υπόδειξη" που προετοιμάζει την ολοκλήρωση, καθοδηγώντας το μοντέλο προς πιο σχετικές απαντήσεις.
- Πρότυπα - αυτά είναι επαναλαμβανόμενες 'συνταγές' για ερωτήσεις με θέσεις (μεταβλητές) που μπορούν να προσαρμοστούν με δεδομένα για συγκεκριμένες περιπτώσεις χρήσης.
Ας εξερευνήσουμε αυτά στην πράξη.
Αυτή είναι μια προσέγγιση όπου χρησιμοποιείτε το κύριο περιεχόμενο για να "τροφοδοτήσετε το μοντέλο" με μερικά παραδείγματα της επιθυμητής απάντησης για μια δεδομένη οδηγία και αφήνετε το μοντέλο να συμπεράνει το μοτίβο για την επιθυμητή απάντηση. Με βάση τον αριθμό των παραδειγμάτων που παρέχονται, μπορούμε να έχουμε ερωτήσεις μηδενικής υπόδειξης, μιας υπόδειξης, λίγων υποδείξεων κ.λπ.
Η ερώτηση τώρα αποτελείται από τρία στοιχεία:
- Μια περιγραφή εργασίας
- Μερικά παραδείγματα της επιθυμητής απάντησης
- Η αρχή ενός νέου παραδείγματος (που γίνεται μια έμμεση περιγραφή εργασίας)
| Τύπος Μάθησης | Ερώτηση (Εισαγωγή) | Ολοκλήρωση (Απάντηση) |
|---|---|---|
| Μηδενική Υπόδειξη | "Ο Ήλιος λάμπει". Μεταφράστε στα Ισπανικά | "El Sol está brillando". |
| Μια Υπόδειξη | "Ο Ήλιος λάμπει" => ""El Sol está brillando". "Είναι μια κρύα και ανεμώδης μέρα" => |
"Es un día frío y ventoso". |
| Λίγες Υποδείξεις | Ο παίκτης έτρεξε τις βάσεις => Μπέιζμπολ Ο παίκτης πέτυχε έναν άσο => Τένις Ο παίκτης πέτυχε ένα έξι => Κρίκετ Ο παίκτης έκανε ένα κάρφωμα => |
Μπάσκετ |
Παρατηρήστε πώς έπρεπε να παρέχουμε ρητή οδηγία ("Μεταφράστε στα Ισπανικά") στην ερώτηση μηδενικής υπόδειξης, αλλά αυτή συμπεραίνεται στο παράδειγμα μιας υπόδειξης. Το παράδειγμα λίγων υποδείξεων δείχνει πώς η προσθήκη περισσότερων παραδειγμάτων επιτρέπει στα μοντέλα να κάνουν πιο ακριβείς συμπεράσεις χωρίς πρόσθετες οδηγίες.
Μια άλλη τεχνική για τη χρήση του κύριου περιεχομένου είναι να παρέχετε υποδείξεις αντί για παραδείγματα. Σε αυτήν την περίπτωση, δίνουμε στο μοντέλο μια ώθηση προς τη σωστή κατεύθυνση ξεκινώντας το με ένα απόσπασμα που αντικατοπτρίζει τη μορφή της επιθυμητής απάντησης. Το μοντέλο στη συνέχεια "παίρνει την υπόδειξη" για να συνεχίσει με αυτόν τον τρόπο.
| Αριθμός Υποδείξεων | Ερώτηση (Εισαγωγή) | Ολοκλήρωση (Απάντηση) |
|---|---|---|
| 0 | Ο Δίας είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. Είναι ένας γίγαντας αερίου με μάζα που είναι το ένα | |
| 1 | Ο Δίας είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. Είναι ένας γιγάντιος πλανήτης αερίου με μάζα που είναι το ένα χιλιοστό της μάζας του Ήλιου, αλλά δυόμισι φορές μεγαλύτερη από τη μάζα όλων των άλλων πλανητών του Ηλιακού Συστήματος μαζί. Ο Δίας είναι ένα από τα πιο φωτεινά αντικείμενα που είναι ορατά με γυμνό μάτι στον νυχτερινό ουρανό και είναι γνωστός από αρχαίους πολιτισμούς πριν από την καταγεγραμμένη ιστορία. Περίληψη Αυτό που μάθαμε είναι ότι ο Δίας |
είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. Είναι ένας γιγάντιος πλανήτης αερίου με μάζα που είναι το ένα χιλιοστό της μάζας του Ήλιου, αλλά δυόμισι φορές μεγαλύτερη από τη μάζα όλων των άλλων πλανητών μαζί. Είναι εύκολα ορατός με γυμνό μάτι και είναι γνωστός από την αρχαιότητα. |
| 2 | Ο Δίας είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. Είναι ένας γιγάντιος πλανήτης αερίου με μάζα που είναι το ένα χιλιοστό της μάζας του Ήλιου, αλλά δυόμισι φορές μεγαλύτερη από τη μάζα όλων των άλλων πλανητών του Ηλιακού Συστήματος μαζί. Ο Δίας είναι ένα από τα πιο φωτεινά αντικείμενα που είναι ορατά με γυμνό μάτι στον νυχτερινό ουρανό και είναι γνωστός από αρχαίους πολιτισμούς πριν από την καταγεγραμμένη ιστορία. Περίληψη Τα 3 Κύρια Στοιχεία που Μάθαμε: |
1. Ο Δίας είναι ο πέμπτος πλανήτης από τον Ήλιο και ο μεγαλύτερος στο Ηλιακό Σύστημα. 2. Είναι ένας γιγάντιος πλανήτης αερίου με μάζα που είναι το ένα χιλιοστό της μάζας του Ήλιου... 3. Ο Δίας είναι ορατός με γυμνό μάτι από την αρχαιότητα ... |
Ένα πρότυπο ερωτήματος είναι μια προκαθορισμένη συνταγή για ένα ερώτημα που μπορεί να αποθηκευτεί και να επαναχρησιμοποιηθεί όπως χρειάζεται, για να επιτευχθεί μεγαλύτερη συνέπεια στις εμπειρίες των χρηστών σε μεγάλη κλίμακα. Στην απλούστερη μορφή του, είναι απλώς μια συλλογή παραδειγμάτων ερωτημάτων όπως αυτό από την OpenAI που παρέχει τόσο τα διαδραστικά στοιχεία του ερωτήματος (μηνύματα χρήστη και συστήματος) όσο και τη μορφή αιτήματος μέσω API - για να υποστηρίξει την επαναχρησιμοποίηση.
Στην πιο σύνθετη μορφή του, όπως αυτό το παράδειγμα από το LangChain, περιέχει θέσεις που μπορούν να αντικατασταθούν με δεδομένα από διάφορες πηγές (εισαγωγή χρήστη, πλαίσιο συστήματος, εξωτερικές πηγές δεδομένων κ.λπ.) για να δημιουργηθεί ένα ερώτημα δυναμικά. Αυτό μας επιτρέπει να δημιουργήσουμε μια βιβλιοθήκη επαναχρησιμοποιήσιμων ερωτημάτων που μπορούν να χρησιμοποιηθούν για να επιτευχθεί συνέπεια στις εμπειρίες των χρηστών προγραμματιστικά σε μεγάλη κλίμακα.
Τέλος, η πραγματική αξία των προτύπων έγκειται στη δυνατότητα δημιουργίας και δημοσίευσης βιβλιοθηκών ερωτημάτων για κάθετες εφαρμογές - όπου το πρότυπο ερωτήματος είναι πλέον βελτιστοποιημένο ώστε να αντικατοπτρίζει το πλαίσιο ή τα παραδείγματα που κάνουν τις απαντήσεις πιο σχετικές και ακριβείς για το στοχευμένο κοινό. Το αποθετήριο Prompts For Edu είναι ένα εξαιρετικό παράδειγμα αυτής της προσέγγισης, καθώς συγκεντρώνει μια βιβλιοθήκη ερωτημάτων για τον τομέα της εκπαίδευσης με έμφαση σε βασικούς στόχους όπως ο σχεδιασμός μαθημάτων, η ανάπτυξη προγραμμάτων σπουδών, η καθοδήγηση μαθητών κ.λπ.
Αν σκεφτούμε τη δημιουργία ερωτημάτων ως μια διαδικασία που περιλαμβάνει μια οδηγία (εργασία) και έναν στόχο (κύριο περιεχόμενο), τότε το δευτερεύον περιεχόμενο είναι σαν πρόσθετο πλαίσιο που παρέχουμε για να επηρεάσουμε το αποτέλεσμα με κάποιο τρόπο. Θα μπορούσε να είναι παράμετροι ρύθμισης, οδηγίες μορφοποίησης, ταξινομήσεις θεμάτων κ.λπ., που μπορούν να βοηθήσουν το μοντέλο να προσαρμόσει την απάντησή του ώστε να ταιριάζει στους επιθυμητούς στόχους ή προσδοκίες του χρήστη.
Για παράδειγμα: Δεδομένου ενός καταλόγου μαθημάτων με εκτεταμένα μεταδεδομένα (όνομα, περιγραφή, επίπεδο, ετικέτες μεταδεδομένων, εκπαιδευτής κ.λπ.) για όλα τα διαθέσιμα μαθήματα στο πρόγραμμα σπουδών:
- μπορούμε να ορίσουμε μια οδηγία για "περίληψη του καταλόγου μαθημάτων για το Φθινόπωρο 2023"
- μπορούμε να χρησιμοποιήσουμε το κύριο περιεχόμενο για να παρέχουμε μερικά παραδείγματα του επιθυμητού αποτελέσματος
- μπορούμε να χρησιμοποιήσουμε το δευτερεύον περιεχόμενο για να προσδιορίσουμε τις 5 κορυφαίες "ετικέτες" ενδιαφέροντος.
Τώρα, το μοντέλο μπορεί να παρέχει μια περίληψη στη μορφή που φαίνεται από τα παραδείγματα - αλλά αν ένα αποτέλεσμα έχει πολλαπλές ετικέτες, μπορεί να δώσει προτεραιότητα στις 5 ετικέτες που προσδιορίζονται στο δευτερεύον περιεχόμενο.
Τώρα που γνωρίζουμε πώς μπορούν να κατασκευαστούν τα ερωτήματα, μπορούμε να αρχίσουμε να σκεφτόμαστε πώς να τα σχεδιάσουμε ώστε να αντικατοπτρίζουν τις καλές πρακτικές. Μπορούμε να το σκεφτούμε σε δύο μέρη - έχοντας τη σωστή νοοτροπία και εφαρμόζοντας τις σωστές τεχνικές.
Η Μηχανική Ερωτημάτων είναι μια διαδικασία δοκιμής και σφάλματος, οπότε κρατήστε τρεις ευρείς καθοδηγητικούς παράγοντες στο μυαλό σας:
-
Η Κατανόηση του Τομέα Έχει Σημασία. Η ακρίβεια και η συνάφεια της απάντησης είναι συνάρτηση του τομέα στον οποίο λειτουργεί η εφαρμογή ή ο χρήστης. Εφαρμόστε τη διαίσθηση και την εξειδίκευσή σας στον τομέα για να προσαρμόσετε περαιτέρω τις τεχνικές. Για παράδειγμα, ορίστε προσωπικότητες συγκεκριμένες για τον τομέα στα ερωτήματα του συστήματος σας ή χρησιμοποιήστε πρότυπα συγκεκριμένα για τον τομέα στα ερωτήματα του χρήστη σας. Παρέχετε δευτερεύον περιεχόμενο που αντικατοπτρίζει πλαίσια συγκεκριμένα για τον τομέα ή χρησιμοποιήστε υποδείξεις και παραδείγματα συγκεκριμένα για τον τομέα για να καθοδηγήσετε το μοντέλο προς οικείες μορφές χρήσης.
-
Η Κατανόηση του Μοντέλου Έχει Σημασία. Γνωρίζουμε ότι τα μοντέλα είναι στοχαστικά από τη φύση τους. Αλλά οι υλοποιήσεις των μοντέλων μπορεί επίσης να διαφέρουν όσον αφορά το σύνολο δεδομένων εκπαίδευσης που χρησιμοποιούν (προεκπαιδευμένη γνώση), τις δυνατότητες που παρέχουν (π.χ., μέσω API ή SDK) και τον τύπο περιεχομένου για τον οποίο είναι βελτιστοποιημένα (π.χ., κώδικας έναντι εικόνων έναντι κειμένου). Κατανοήστε τα πλεονεκτήματα και τους περιορισμούς του μοντέλου που χρησιμοποιείτε και χρησιμοποιήστε αυτή τη γνώση για να προτεραιοποιήσετε εργασίες ή να δημιουργήσετε προσαρμοσμένα πρότυπα που είναι βελτιστοποιημένα για τις δυνατότητες του μοντέλου.
-
Η Επανάληψη και η Επικύρωση Έχουν Σημασία. Τα μοντέλα εξελίσσονται γρήγορα, όπως και οι τεχνικές για τη μηχανική ερωτημάτων. Ως ειδικός στον τομέα, μπορεί να έχετε άλλο πλαίσιο ή κριτήρια για τη δική σας συγκεκριμένη εφαρμογή, που μπορεί να μην ισχύουν για την ευρύτερη κοινότητα. Χρησιμοποιήστε εργαλεία και τεχνικές μηχανικής ερωτημάτων για να "ξεκινήσετε" τη δημιουργία ερωτημάτων, στη συνέχεια επαναλάβετε και επικυρώστε τα αποτελέσματα χρησιμοποιώντας τη δική σας διαίσθηση και εξειδίκευση στον τομέα. Καταγράψτε τις γνώσεις σας και δημιουργήστε μια βάση γνώσεων (π.χ., βιβλιοθήκες ερωτημάτων) που μπορούν να χρησιμοποιηθούν ως νέα βάση από άλλους, για ταχύτερες επαναλήψεις στο μέλλον.
Ας δούμε τώρα κοινές καλές πρακτικές που συνιστώνται από OpenAI και Azure OpenAI επαγγελματίες.
| Τι | Γιατί |
|---|---|
| Αξιολογήστε τα πιο πρόσφατα μοντέλα. | Οι νέες γενιές μοντέλων είναι πιθανό να έχουν βελτιωμένα χαρακτηριστικά και ποιότητα - αλλά μπορεί επίσης να έχουν υψηλότερο κόστος. Αξιολογήστε τα για τον αντίκτυπο και στη συνέχεια λάβετε αποφάσεις για τη μετάβαση. |
| Διαχωρίστε οδηγίες και πλαίσιο | Ελέγξτε αν το μοντέλο/πάροχος σας ορίζει διαχωριστικά για να διακρίνει οδηγίες, κύριο και δευτερεύον περιεχόμενο πιο καθαρά. Αυτό μπορεί να βοηθήσει τα μοντέλα να αποδώσουν βάρη πιο ακριβώς στα tokens. |
| Να είστε συγκεκριμένοι και σαφείς | Δώστε περισσότερες λεπτομέρειες για το επιθυμητό πλαίσιο, αποτέλεσμα, μήκος, μορφή, στυλ κ.λπ. Αυτό θα βελτιώσει τόσο την ποιότητα όσο και τη συνέπεια των απαντήσεων. Καταγράψτε συνταγές σε επαναχρησιμοποιήσιμα πρότυπα. |
| Να είστε περιγραφικοί, χρησιμοποιήστε παραδείγματα | Τα μοντέλα μπορεί να ανταποκρίνονται καλύτερα σε μια προσέγγιση "δείξε και πες". Ξεκινήστε με μια προσέγγιση zero-shot όπου δίνετε μια οδηγία (αλλά χωρίς παραδείγματα) και στη συνέχεια δοκιμάστε few-shot ως βελτίωση, παρέχοντας μερικά παραδείγματα του επιθυμητού αποτελέσματος. Χρησιμοποιήστε αναλογίες. |
| Χρησιμοποιήστε υποδείξεις για να ξεκινήσετε τις απαντήσεις | Κατευθύνετε το προς ένα επιθυμητό αποτέλεσμα δίνοντάς του κάποιες αρχικές λέξεις ή φράσεις που μπορεί να χρησιμοποιήσει ως αφετηρία για την απάντηση. |
| Επαναλάβετε | Μερικές φορές μπορεί να χρειαστεί να επαναλάβετε τον εαυτό σας στο μοντέλο. Δώστε οδηγίες πριν και μετά το κύριο περιεχόμενο, χρησιμοποιήστε μια οδηγία και μια υπόδειξη κ.λπ. Επαναλάβετε και επικυρώστε για να δείτε τι λειτουργεί. |
| Η σειρά έχει σημασία | Η σειρά με την οποία παρουσιάζετε πληροφορίες στο μοντέλο μπορεί να επηρεάσει το αποτέλεσμα, ακόμη και στα παραδείγματα εκμάθησης, λόγω της προκατάληψης της πρόσφατης μνήμης. Δοκιμάστε διαφορετικές επιλογές για να δείτε τι λειτουργεί καλύτερα. |
| Δώστε στο μοντέλο μια "διέξοδο" | Δώστε στο μοντέλο μια εναλλακτική απάντηση που μπορεί να παρέχει αν δεν μπορεί να ολοκληρώσει την εργασία για οποιονδήποτε λόγο. Αυτό μπορεί να μειώσει τις πιθανότητες το μοντέλο να δημιουργήσει ψευδείς ή κατασκευασμένες απαντήσεις. |
Όπως με κάθε καλή πρακτική, θυμηθείτε ότι η εμπειρία σας μπορεί να διαφέρει ανάλογα με το μοντέλο, την εργασία και τον τομέα. Χρησιμοποιήστε αυτές ως αφετηρία και επαναλάβετε για να βρείτε τι λειτουργεί καλύτερα για εσάς. Επαναξιολογείτε συνεχώς τη διαδικασία μηχανικής ερωτημάτων σας καθώς γίνονται διαθέσιμα νέα μοντέλα και εργαλεία, με έμφαση στην κλιμακωσιμότητα της διαδικασίας και την ποιότητα των απαντήσεων.
Συγχαρητήρια! Φτάσατε στο τέλος του μαθήματος! Ήρθε η ώρα να δοκιμάσετε μερικές από αυτές τις έννοιες και τεχνικές με πραγματικά παραδείγματα!
Για την εργασία μας, θα χρησιμοποιήσουμε ένα Jupyter Notebook με ασκήσεις που μπορείτε να ολοκληρώσετε διαδραστικά. Μπορείτε επίσης να επεκτείνετε το Notebook με δικά σας Markdown και Code cells για να εξερευνήσετε ιδέες και τεχνικές μόνοι σας.
- (Συνιστάται) Εκκινήστε το GitHub Codespaces
- (Εναλλακτικά) Κλωνοποιήστε το repo στη συσκευή σας και χρησιμοποιήστε το με το Docker Desktop
- (Εναλλακτικά) Ανοίξτε το Notebook με το προτιμώμενο περιβάλλον εκτέλεσης Notebook.
- Αντιγράψτε το αρχείο
.env.copyαπό τη ρίζα του repo στο.envκαι συμπληρώστε τις τιμέςAZURE_OPENAI_API_KEY,AZURE_OPENAI_ENDPOINTκαιAZURE_OPENAI_DEPLOYMENT. Επιστρέψτε στην ενότητα Learning Sandbox για να μάθετε πώς.
- Επιλέξτε τον πυρή
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.







