Πορτρέτο του Ξενοφών Απάκη
Ξενοφών Απάκης
Web designer και developer από το 1997

context engineering

context engineering

· Με δύο λόγια

Τι είναι το context engineering; Δείτε πώς επιλέγονται πηγές, οδηγίες και ιστορικό, πώς αποφεύγονται αντιφάσεις και πώς αξιολογούνται οι απαντήσεις..

Context engineering: πώς σχεδιάζεται το σωστό πλαίσιο για αξιόπιστες απαντήσεις τεχνητής νοημοσύνης

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

Τι ακριβώς θεωρούμε πλαίσιο

Πλαίσιο είναι το σύνολο οδηγιών, ερωτήσεων, αποσπασμάτων εγγράφων, ιστορικού συνομιλίας, αποτελεσμάτων εργαλείων και περιορισμών που συνοδεύουν ένα αίτημα. Ένα μεγάλο γλωσσικό μοντέλο, LLM (Large Language Model), επεξεργάζεται αυτή την είσοδο μέσα στα όρια που υποστηρίζει η εκάστοτε εφαρμογή. Η παρουσία μιας πληροφορίας στο εισερχόμενο υλικό δεν εγγυάται από μόνη της ότι το μοντέλο θα τη χρησιμοποιήσει σωστά.

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

Γιατί περισσότερο κείμενο δεν σημαίνει καλύτερη απάντηση

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

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

Τα βασικά επίπεδα σχεδιασμού

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

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

Παράδειγμα: τεχνικός βοηθός για εσωτερική γνώση

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

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

Context engineering και prompt engineering δεν είναι το ίδιο

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

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

Η διαχείριση τεκμηρίων και η αλυσίδα προέλευσης

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

Η Microsoft και η Google περιγράφουν την ανάκτηση, τον εμπλουτισμό της εισόδου και τη δημιουργία απάντησης ως διακριτά βήματα. Στην πράξη, καλό είναι να μπορούμε να απαντήσουμε: ποιο απόσπασμα χρησιμοποιήθηκε, γιατί επελέγη και ποιος μπορεί να το διορθώσει; Εάν δεν υπάρχει τέτοια διαδρομή ελέγχου, μια πειστική απάντηση μπορεί να παραμείνει ανεξέλεγκτη.

Ένας μικρός πίνακας αποφάσεων

ΠρόβλημαΠαρέμβαση στο πλαίσιοΈλεγχος
Αντιφατικές πηγέςΠροτεραιότητα στην εγκεκριμένη έκδοσηΔήλωση σύγκρουσης όταν δεν λύνεται
Άσχετες απαντήσειςΠεριορισμός αποσπασμάτων ανά ερώτημαΈλεγχος συνάφειας από άνθρωπο
Απώλεια απόφασηςΔιατήρηση σύντομης κατάστασης εργασίαςΣύγκριση με προηγούμενη εγκεκριμένη επιλογή
Διαρροή δεδομένωνΦιλτράρισμα βάσει δικαιωμάτωνΔοκιμές πρόσβασης ανά ρόλο

Σφάλματα ασφάλειας που συχνά παραβλέπονται

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

Μια άλλη αστοχία είναι η ψευδής βεβαιότητα. Αν ένα τεκμήριο λείπει, η απάντηση πρέπει να αναφέρει το κενό. Δεν αντιμετωπίζουμε την απουσία στοιχείων με επινοημένες συνδέσεις ούτε εισάγουμε παλιά δεδομένα μόνο και μόνο για να γεμίσει η είσοδος. Η καταγραφή του τι δεν γνωρίζει το σύστημα έχει ιδιαίτερη αξία σε εσωτερικές εφαρμογές και σε αποφάσεις υψηλής σημασίας.

Πότε αρκεί μια απλή λύση

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

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

Πώς αξιολογείται στην πράξη

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

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