Τι άλλαξαν τα καλύτερα μοντέλα
Από τον Αύγουστο του 2026 εξερευνώ πόση αντίστροφη μηχανική μπορεί να αναλάβει ένας βοηθός με πρόσβαση σε ένα πρόγραμμα και έναν τρόπο να ελέγχει τη δουλειά του. Το μεγαλύτερο μέρος της εμπειρίας μου προέρχεται από την ανακατασκευή παιχνιδιών, ιδιαίτερα του Touhou. Καθώς άλλαζα μοντέλα, τα αποθετήρια κρατούσαν αρχείο όσων κατάφερνε να ανακτήσει κάθε συνεδρία.
Μεγάλο μέρος αυτής της δουλειάς στοχεύει στην ακριβή ανακατασκευή: μεταγλωττίζουμε τον πηγαίο κώδικα που συντηρούμε με μια συγκεκριμένη, σταθερή ιστορική αλυσίδα εργαλείων και ελέγχουμε αν αναπαράγει τη συνάρτηση του στόχου. Όταν ένα μεταγενέστερο μοντέλο πετυχαίνει εκεί όπου η προηγούμενη δουλειά είχε σταματήσει, οι αλλαγές στον κώδικα δείχνουν τι έκανε δυνατή αυτή την πρόοδο.
Οι προσωρινές τιμές έπρεπε να διατηρούνται ταυτόχρονα
Μεγάλο μέρος της λογικής μιας συνάρτησης επίθεσης του TH09 είχε ήδη ανακατασκευαστεί, αλλά ο μεταγλωττιστής εξακολουθούσε να αποθηκεύει τα προσωρινά αποτελέσματα διαφορετικά από το πρωτότυπο. Το πρόβλημα που απέμενε ήταν για πόσο έπρεπε να διατηρούνται αυτά τα αποτελέσματα και πότε μπορούσε να επαναχρησιμοποιηθεί ο χώρος αποθήκευσής τους.
Ένα σημείο καταγραφής προόδου του GPT-6-Sol κατέγραψε αυτή την απόκλιση αφού δοκίμασε διάφορες συνηθισμένες διατάξεις πηγαίου κώδικα. Όταν το GPT-6.1-Sol επέστρεψε στο πρόβλημα, βρήκε μια χρήσιμη υπόθεση για το πόσο έπρεπε να διατηρούνται αυτές οι προσωρινές τιμές.
Η συνάρτηση παρήγαγε προσωρινά αποτελέσματα και τα αντέγραφε σε θέσεις κινούμενων γραφικών. Στη C++, ένα προσωρινό αποτέλεσμα διατηρείται μέχρι να ολοκληρωθεί η έκφραση που το χρησιμοποιεί. Η ομαδοποίηση των πραγματικών πράξεων σε μία έκφραση διατηρούσε τα αποτελέσματα ταυτόχρονα, οπότε ο μεταγλωττιστής δεν μπορούσε πλέον να επαναχρησιμοποιήσει τον ίδιο χώρο αποθήκευσης για όλα.
Ένα αποτέλεσμα εξακολουθούσε να μοιράζεται χώρο αποθήκευσης με μια τιμή που χρησιμοποιούνταν αργότερα για ελέγχους σύγκρουσης. Δίνοντας σε αυτή την τιμή τον δικό της χρόνο ζωής, επιλύθηκε η επικάλυψη που απέμενε. Μετά από αρκετά στοχευμένα πειράματα, μια καθαρή επαναδημιουργία του προγράμματος επιβεβαίωσε ότι ολόκληρη η συνάρτηση ταυτιζόταν με την αρχική.
Αυτό που με ενδιαφέρει είναι πώς συνεργάστηκαν η ανακάλυψη και οι δοκιμές. Η υπόθεση για τον χρόνο ζωής έδωσε στον βοηθό μια νέα κατεύθυνση· η ανατροφοδότηση του μεταγλωττιστή τον βοήθησε να την τελειοποιήσει σε μια διάταξη πηγαίου κώδικα που έδινε ακριβή ταύτιση.
Ένας διαφορετικός γράφος ροής ελέγχου
Μια δεύτερη συνάρτηση του TH09 δείχνει γιατί αυτή η νέα κατεύθυνση μπορεί να έχει σημασία. Εδώ, το εμπόδιο ήταν ο τρόπος με τον οποίο διάφοροι κλάδοι μοιράζονταν την τελική τους εργασία. Η προηγούμενη δουλειά του GPT-6.1-Sol πέτυχε ταύτιση σε μέρη της συνάρτησης, αλλά οι κλάδοι εξακολουθούσαν να ενώνονται διαφορετικά από ό,τι στο πρωτότυπο.
Το GPT-6-Astra άλλαξε τον περιβάλλοντα γράφο ροής ελέγχου. Οι κύριες διαδρομές οδηγούσαν πλέον σε μια κοινή τελική ενημέρωση και επιστροφή. Με αυτή τη δομή πηγαίου κώδικα, ο μεταγλωττιστής συνδύαζε τους κλάδους όπως στο πρωτότυπο. Ολόκληρη η συνάρτηση ταυτιζόταν και ένας ξεχωριστός έλεγχος επαναδημιουργίας το επιβεβαίωσε.
Η αλλαγή της αναπαράστασης άνοιξε έναν πιο παραγωγικό χώρο αναζήτησης. Και οι δύο περιπτώσεις μού δίνουν λόγο να παίρνω σοβαρά τις γενικές δυνατότητες του μοντέλου: ένας βοηθός μπορεί να δοκιμάζει τοπικές παραλλαγές για πολύ καιρό προτού βρει έναν καλύτερο τρόπο να εκφράσει την εργασία γύρω από αυτές.
Ταυτόχρονα, οι μεταγενέστερες συνεδρίες ξεκίνησαν με τον προηγούμενο πηγαίο κώδικα και τις καταγεγραμμένες αποτυχίες. Αυτή η συσσωρευμένη δουλειά ήταν μέρος του πλεονεκτήματός τους. Το ιστορικό μάς επιτρέπει να εξετάσουμε τις ανακαλύψεις και τους ελέγχους τους· μια ελεγχόμενη σύγκριση θα βοηθούσε να ξεχωρίσουμε την επίδραση του μοντέλου από την εμπειρία που κληρονόμησε.
Εδώ αρχίζει να με ενδιαφέρει το ερώτημα. Μέρος της προόδου ήρθε από την εύρεση μιας νέας αναπαράστασης, ενώ μεγάλο μέρος της δουλειάς που απέμενε αφορούσε δοκιμές μορφών πηγαίου κώδικα με έναν γνώριμο μεταγλωττιστή. Πόση από αυτή τη δουλειά χρειάζεται ευρεία ικανότητα συλλογισμού και πόση θα μπορούσε να μάθει ένα μοντέλο μέσα από επαναλαμβανόμενη εμπειρία με αυτόν τον μεταγλωττιστή και κώδικα;
Γιατί θα μπορούσε να τα πάει καλά ένα εξειδικευμένο μοντέλο;
Το Touhou μάς δίνει έναν συγκεκριμένο λόγο να περιμένουμε ότι αυτή η εμπειρία θα βοηθήσει. Μεγάλο μέρος του κώδικα των παιχνιδιών προέρχεται από τον ίδιο δημιουργό, τον ZUN, οπότε οι επαναλαμβανόμενες συνήθειες είναι μια εύλογη αρχική παραδοχή. Τα αποθετήρια το στηρίζουν με χρήσιμα παραδείγματα: παρόμοιοι βρόχοι και διατάξεις βοηθητικών συναρτήσεων έχουν δώσει υποθέσεις από το ένα παιχνίδι στο άλλο.
Αυτά τα μοτίβα πηγαίου κώδικα γίνονται πιο συγκεκριμένα όταν συμπεριλάβουμε τον μεταγλωττιστή. Με μια συγκεκριμένη έκδοση και σύνολο επιλογών, μικρές αλλαγές στον κώδικα μπορούν να προκαλέσουν επαναλήψιμες διαφορές στον κώδικα μηχανής. Μερικές από αυτές τις διαφορές είναι εκπληκτικά δυσδιάκριτες.
Στο TH095, για παράδειγμα, ακόμη και το όνομα μιας τοπικής μεταβλητής μπορούσε να αλλάξει το πού την αποθήκευε ο VC7.1. Η μετακίνηση της δήλωσης από μόνη της δεν έλυσε το πρόβλημα της διάταξης, αλλά μια προηγούμενη συνάρτηση του φόντου είχε αποκαλύψει ένα μοτίβο ονοματοδοσίας που επηρέαζε την επιλογή του μεταγλωττιστή. Αυτό μας έδωσε μια πιο υποσχόμενη υπόθεση για την ανακατασκευή της Supervisor::LoadDat.
Η επαναχρησιμοποίηση αυτού του μοτίβου για τη μεταβλητή του μεγέθους αρχείου έδωσε την απαιτούμενη διάταξη χωρίς να προστεθεί χώρος αποθήκευσης. Στη συνέχεια, ολόκληρη η συνάρτηση ταυτίστηκε με την αρχική.
Τέτοιες εξειδικευμένες λεπτομέρειες μπορεί να μην τις γνωρίζει ένα γενικό μοντέλο όταν ξεκινά. Ένα εξειδικευμένο μοντέλο εκπαιδευμένο σε αυτόν τον μεταγλωττιστή θα μπορούσε να συναντήσει πολλές τέτοιες περιπτώσεις και να μάθει ποιες παραλλαγές πηγαίου κώδικα αξίζει να δοκιμάζει πρώτα.
Η ευκαιρία είναι ιδιαίτερα σαφής στα τελικά προβλήματα ακριβούς ταύτισης, όπου καταλαβαίνουμε ήδη τη συμπεριφορά. Τότε ρωτάμε ποια συνηθισμένη μορφή πηγαίου κώδικα μετατρέπει αυτός ο μεταγλωττιστής στις παρατηρημένες εντολές. Η εξειδίκευση θα μπορούσε να βοηθήσει το μοντέλο να προτείνει αυτές τις μορφές πιο αποδοτικά, ενώ ο στόχος εξακολουθεί να καθορίζει ποιες υποθέσεις αντέχουν στον έλεγχο.
Τα χρήσιμα μοτίβα θα έπρεπε, όμως, να διατηρούν το πλαίσιό τους. Το TH08 χρησιμοποιεί παλαιότερη έκδοση του Visual C++ από τα TH095 και TH09. Το TH04 χρησιμοποιεί διαφορετικό μεταγλωττιστή της εποχής του DOS και η ανακατασκευή του παίκτη χρειάστηκε διαφορετικές υποθέσεις για τα μοτίβα πηγαίου κώδικα και για τον τρόπο με τον οποίο ο μεταγλωττισμένος κώδικας συνδυαζόταν σε εκτελέσιμο. Ο κοινός δημιουργός μάς δίνει μια αρχική εκτίμηση, αλλά κάθε στόχος μάς δείχνει αν ισχύει. Η διάκριση αυτών των πλαισίων είναι μέρος όσων θα έπρεπε να μάθει ένα εξειδικευμένο μοντέλο.
Πού πρέπει να διατηρείται αυτή η εμπειρία;
Πριν αποφασίσω να διδάξω αυτά τα μοτίβα μέσω της εκπαίδευσης του μοντέλου, θα εξέταζα τη γνώση που διατηρούμε ήδη στο αποθετήριο. Στο προηγούμενο δοκίμιο έγραψα ότι γίνεται η μνήμη εργασίας του έργου. Αυτή η μνήμη περιλαμβάνει μαθήματα για τον μεταγλωττιστή, μαζί με τον πηγαίο κώδικα και τα αποτυχημένα πειράματα που τα έκαναν χρήσιμα.
Ανακτώντας αυτό το αρχείο, ένας βοηθός μπορεί να ξεκινήσει με ένα γνωστό αποτέλεσμα και να εξετάσει πώς φτάσαμε σε αυτό. Μπορεί επίσης να αποφύγει εναλλακτικές που έχουν ήδη αποτύχει στο ίδιο πλαίσιο. Το σημείο εκκίνησης βελτιώνεται χωρίς να αλλάξουν τα βάρη του μοντέλου.
Κατά την ανακατασκευή της συνάρτησης δημιουργίας εχθρών του TH09, μια συνεδρία GPT-6-Luna-max άντλησε μια υπόθεση από την αντίστοιχη οικογένεια πηγαίου κώδικα του TH08. Αυτός ο παλαιότερος κώδικας υπέδειξε πώς να δομηθεί ο βρόχος και πώς να αντιμετωπιστούν οι αποτυχίες μέσα σε αυτόν. Τα στοιχεία του ίδιου του TH09 έδωσαν τις λεπτομέρειες που αφορούσαν το συγκεκριμένο παιχνίδι και καθαρές επαναδημιουργίες του προγράμματος επιβεβαίωσαν την πλήρη ταύτιση.
Το «το μοντέλο δεν γνώριζε αυτή την ιδιομορφία του μεταγλωττιστή» και το «το μοντέλο δεν μπορούσε να τη χρησιμοποιήσει» είναι διαφορετικά προβλήματα. Η ανάκτηση πληροφοριών μπορεί να λύσει το πρώτο, αλλά η μετατροπή αυτού του δεδομένου σε μια χρήσιμη υποψήφια εκδοχή εξακολουθεί να απαιτεί δουλειά. Και αν η εκδοχή αποτύχει, το μοντέλο πρέπει να αποφασίσει τι σημαίνει το αποτέλεσμα για την επόμενη προσπάθειά του. Η γνώση του σχετικού μοτίβου είναι μόνο η αρχή αυτής της διαδικασίας.
Γι' αυτό θα συμπεριλάμβανα σε κάθε σύγκριση ένα μικρότερο γενικό μοντέλο με καλή ανάκτηση πληροφοριών. Δίνοντάς του την ίδια βιβλιοθήκη εμπειρίας, θα μπορούσαμε να εντοπίσουμε τι προσθέτει η εκπαίδευση: καλύτερη παραγωγή υποψήφιων εκδοχών, καλύτερες αποφάσεις μετά την ανατροφοδότηση ή και τα δύο.
Μαθαίνοντας το επόμενο χρήσιμο πείραμα
Αυτές τις αποφάσεις μετά την ανατροφοδότηση θα ήθελα περισσότερο να μελετήσω. Στην ανακατασκευή με βοηθούς, το μοντέλο προτείνει μια εξήγηση και τη δοκιμάζει σε σχέση με το πρόγραμμα. Ακόμη και όταν η υποψήφια εκδοχή αποτυγχάνει, το αποτέλεσμα μπορεί να περιορίσει τις δυνατότητες που απομένουν και να υποδείξει ένα πιο χρήσιμο επόμενο πείραμα.
Ας δούμε ξανά το παράδειγμα με τα προσωρινά αποτελέσματα. Ο τελικός πηγαίος κώδικάς του δείχνει τη διάταξη που λειτούργησε, αλλά η διαδρομή προς αυτόν τον κώδικα περιέχει περισσότερες πληροφορίες. Κάθε ένα από τα παρακάτω πειράματα βοήθησε να εντοπιστεί τι έπρεπε ακόμη να αλλάξει.
| Πείραμα | Τι μας έμαθε το αποτέλεσμά του |
|---|---|
| Δοκιμάστε έναν διαφορετικό τρόπο αντιγραφής των αποτελεσμάτων | Ο κώδικας αντιγραφής αλλάζει, αλλά η συνάρτηση εξακολουθεί να διαφέρει. |
| Χρησιμοποιήστε απευθείας τις επιστρεφόμενες τιμές | Η αντιγραφή ακολουθεί το αρχικό μοτίβο, αλλά η αποθήκευση των προσωρινών τιμών εξακολουθεί να διαφέρει. |
| Διατηρήστε τα προσωρινά αποτελέσματα ταυτόχρονα | Αποκτούν ξεχωριστό χώρο αποθήκευσης, αλλά ένα εξακολουθεί να επικαλύπτεται με μια τιμή που χρησιμοποιείται αργότερα για ελέγχους σύγκρουσης. |
| Κρατήστε ξεχωριστή την τιμή του ελέγχου σύγκρουσης | Μια καθαρή επαναδημιουργία του προγράμματος επιβεβαιώνει την πλήρη ταύτιση. |
Επιλεγμένα πειράματα από την παραπάνω ανακατασκευή της συνάρτησης επίθεσης, ομαδοποιημένα με βάση όσα μας έμαθαν.
Ένα αρχείο εκπαίδευσης που διατηρεί αυτή την ακολουθία μπορεί να διδάξει περισσότερα από τον τελικό πηγαίο κώδικα μόνο. Συνδέει κάθε προτεινόμενη αλλαγή με ένα παρατηρημένο αποτέλεσμα και την επόμενη απόφαση. Έχει σημασία να κρατάμε και τις αναποτελεσματικές παραλλαγές: δείχνουν σε έναν μεταγενέστερο βοηθό ποιες υποθέσεις έχουν ήδη δοκιμαστεί σε αυτό το πλαίσιο.
Θα ήθελα το μοντέλο να μάθει πώς να χρησιμοποιεί την ανατροφοδότηση. Ένα ουδέτερο αποτέλεσμα είναι λόγος να επανεξετάσει την παραλλαγή· μια αλλαγή στην απόκλιση μπορεί να δείχνει άλλη αιτία. Όταν οι τοπικές αλλαγές σταματούν να δίνουν χρήσιμες πληροφορίες, ο βοηθός θα πρέπει να μπορεί να επανεξετάσει την αναπαράσταση του πηγαίου κώδικα ή να επιθεωρήσει ξανά τα στοιχεία.
Η εκμάθηση αυτών των επιλογών απαιτεί αυτονομία. Μερικές φορές, το χρήσιμο επόμενο βήμα είναι να εξεταστεί μια άλλη συνάρτηση που καλεί την υπό εξέταση συνάρτηση, αντί να μεταγλωττιστεί άλλη μία αλλαγή. Μια άκαμπτη ακολουθία υποχρεωτικών επανεγγραφών θα αφαιρούσε αυτή την επιλογή, μαζί με μέρος της συμπεριφοράς που θέλουμε να μάθει το μοντέλο.
Γιατί η αντίστροφη μηχανική έχει ενδιαφέρον για την ενισχυτική μάθηση
Η ανακατασκευή με καθορισμένα όρια μάς δίνει ένα πρακτικό περιβάλλον για να μελετήσουμε αυτές τις επιλογές. Μόλις ο στόχος και ο μεταγλωττιστής καθοριστούν και παραμείνουν σταθεροί, πολλά πειράματα με τον πηγαίο κώδικα παράγουν γρήγορη, επαναλήψιμη ανατροφοδότηση. Ο βοηθός μπορεί να μεταγλωττίσει μια υποψήφια εκδοχή, να εξετάσει την απόκλιση και να χρησιμοποιήσει αυτή την παρατήρηση για να επιλέξει το επόμενο βήμα του.
Η ενισχυτική μάθηση θα μπορούσε να εκπαιδεύσει αυτή τη διαδικασία λήψης αποφάσεων μέσω της ανατροφοδότησης που λαμβάνει. Μια υποψήφια εκδοχή που γίνεται αποδεκτή από έναν καθορισμένο έλεγχο μάς δίνει συγκεκριμένο αποτέλεσμα, ενώ η ακολουθία των προσπαθειών μάς επιτρέπει να παρατηρήσουμε πόση δουλειά χρειάστηκε για να φτάσουμε σε αυτό.
Υπάρχει ήδη έρευνα που στηρίζει αυτή την κατεύθυνση. Το LLM4Decompile μελετά μοντέλα εξειδικευμένα στην απομεταγλώττιση. Το AutoDecompiler εκπαιδεύει τη βελτίωση μέσα από πολλαπλούς γύρους, χρησιμοποιώντας ανατροφοδότηση από τη μεταγλώττιση και την εκτέλεση. Οι μελέτες τους εστιάζουν στην ανάκτηση της λειτουργικότητας. Για αυτή τη δουλειά, θα τις χρησιμοποιούσα ως αφετηρία για το συγγενικό έργο της εύρεσης πηγαίου κώδικα που ταυτίζεται με την έξοδο ενός ιστορικού μεταγλωττιστή.
Για να φτάσουμε, όμως, σε ένα τόσο καλά ορισμένο έργο, ίσως χρειαστεί πρώτα να προσδιορίσουμε τι ανήκει σε μια συνάρτηση ή να επινοήσουμε μια νέα μέτρηση κατά την εκτέλεση. Στο TH08, για παράδειγμα, μια διαφορά στις συγκρούσεις μάς οδήγησε στον τρόπο με τον οποίο το αρχικό πρόγραμμα χειριζόταν τους υπολογισμούς κινητής υποδιαστολής. Πριν ο βοηθός μπορέσει να δοκιμάσει μια χρήσιμη διόρθωση, έπρεπε να βρει τι να μετρήσει.
Αυτό υποδεικνύει έναν ακόμη ρόλο για ένα μοντέλο με ευρείες δυνατότητες: να βοηθά εξαρχής να γίνει το πρόβλημα ελέγξιμο. Μόλις υπάρξει αυτός ο έλεγχος, μπορούμε να διερευνήσουμε πόσο μακριά μπορεί να φτάσει με αυτόν μια πολιτική αναζήτησης που έχει μάθει το μοντέλο.
Όταν η αναφορά ελέγχου είναι λανθασμένη
Μόλις εκπαιδεύσουμε το μοντέλο με βάση αυτόν τον έλεγχο, η κάλυψή του γίνεται μέρος όσων μαθαίνει το μοντέλο. Αποκαλώ την αναφορά ή τον ελεγκτή «αναφορά ελέγχου» (oracle). Ακόμη κι αν δίνει επαναλήψιμη απάντηση, εξακολουθούμε να πρέπει να καταλαβαίνουμε τι καλύπτει αυτή η απάντηση.
Το TH08 έδειξε πόσα μπορούν να κρύβονται έξω από αυτή την κάλυψη. Ορισμένες ανακατασκευασμένες συναρτήσεις πέρασαν τις ακριβείς συγκρίσεις τους με λανθασμένες σταθερές κινητής υποδιαστολής. Ο συγκριτής προσάρμοζε τις διευθύνσεις που είχαν μετατοπιστεί πριν ελέγξει τις εντολές, αλλά έλεγχε τις τιμές πίσω από αυτές τις διευθύνσεις μόνο όταν είχαν καταγραφεί ρητά για επαλήθευση. Άλλες αναφορές σε κυριολεκτικές τιμές μπορούσαν να περάσουν χωρίς να εξεταστούν οι τιμές τους.
Για να κλείσει αυτό το κενό, ένας ευρύτερος έλεγχος εντόπισε λανθασμένες σταθερές σε συναρτήσεις που είχαν ήδη γίνει αποδεκτές. Σε έναν υπολογισμό, ο ανακατασκευασμένος πηγαίος κώδικας πρόσθετε 1.0f εκεί όπου ο αρχικός πρόσθετε 32.0f.
Ένα μοντέλο που μάθαινε και ανταμειβόταν από τον παλιό έλεγχο θα μπορούσε να μάθει να παράγει λανθασμένη ανακατασκευή. Δεν είχαμε εκπαιδεύσει μοντέλο ενισχυτικής μάθησης με βάση αυτή την αναφορά ελέγχου· η παρατηρημένη αστοχία ήταν στον ίδιο τον έλεγχο. Όμως η χρήση αυτού του ελέγχου ως ανταμοιβής θα έκανε το ίδιο τυφλό σημείο μέρος του περιβάλλοντος μάθησης.
Μια λειτουργική δοκιμή μπορεί να έχει παρόμοιο τυφλό σημείο. Έρευνα διαφορικού fuzzing σε απομεταγλωττιστές LLM έχει εντοπίσει διαφορές συμπεριφοράς πέρα από τις παρεχόμενες δοκιμές. Επομένως, η επιτυχία σε αυτές τις δοκιμές πρέπει να ερμηνεύεται με βάση τις περιπτώσεις που εξετάζουν, όπως και η ταύτιση εντολών πρέπει να ερμηνεύεται με βάση τα bytes και τα δεδομένα που ελέγχει.
Πριν χρησιμοποιήσω οποιοδήποτε από τα δύο είδη ελέγχου ως ανταμοιβή, θα το δοκίμαζα με σκόπιμες αστοχίες. Θα κρατούσα επίσης την τελική αποδοχή έξω από τον επεξεργάσιμο πηγαίο κώδικα της υποψήφιας εκδοχής, ώστε το μοντέλο να πρέπει να ικανοποιήσει τον έλεγχο μέσω της ανακατασκευής του. Διαφορετικά, κάτι όπως ένας πίνακας bytes αντιγραμμένος από τον στόχο θα μπορούσε να πετύχει σε μια απλοϊκή βαθμολόγηση χωρίς να ανακτηθεί χρήσιμος πηγαίος κώδικας.
Η βελτίωση του μοντέλου που μαθαίνει και η βελτίωση της αναφοράς ελέγχου του ανήκουν στο ίδιο ερευνητικό πρόβλημα. Καθώς το μοντέλο γίνεται καλύτερο στη βελτιστοποίηση της ανατροφοδότησης που του δίνουμε, γίνεται επίσης πιο σημαντικό να καταλαβαίνουμε αυτή την ανατροφοδότηση.
Μια σύγκριση που αξίζει να γίνει
Με αυτούς τους ελέγχους έτοιμους, θα ξεκινούσα τη σύγκριση σε μια σταθερή οικογένεια εργασιών VC7.1. Πρώτα θα καθόριζα τις επιδόσεις αναφοράς για ένα ισχυρό γενικό μοντέλο και για ένα μικρότερο. Η προσθήκη γνώσης του αποθετηρίου στο μικρότερο μοντέλο θα έδειχνε τι αλλάζει η ανάκτηση πληροφοριών. Στη συνέχεια, η επιβλεπόμενη εξειδίκευση και μια έκδοση εκπαιδευμένη με ενισχυτική μάθηση θα μας επέτρεπαν να εξετάσουμε τι προσθέτει η εκπαίδευση.
Για να δίνουν χρήσιμες πληροφορίες αυτές οι συγκρίσεις, κάθε μοντέλο θα λάμβανε τα ίδια στοιχεία για τον στόχο και τα ίδια εργαλεία. Στις συγκρίσεις που αφορούν την εκπαίδευση, θα κρατούσα επίσης σταθερά το βασικό μοντέλο και τη διαθέσιμη γνώση. Οι επαναλαμβανόμενες δοκιμές θα βοηθούσαν να ξεχωρίσουμε μια αξιόπιστη στρατηγική αναζήτησης από μια τυχερή υποψήφια εκδοχή.
Έπειτα θα ξεχώριζα δύο αρχικές συνθήκες: την ανακατασκευή μιας συνάρτησης από τις εντολές της και την εξάλειψη των τελευταίων λίγων διαφορών στον πηγαίο κώδικα που συντηρούμε. Ένα εξειδικευμένο μοντέλο μπορεί να είναι εξαιρετικό στη δεύτερη εργασία, ενώ ένα γενικό μοντέλο κάνει μεγάλο μέρος της δουλειάς που χρειάζεται για να φτάσουμε σε αυτή. Η ξεχωριστή μέτρησή τους θα φανέρωνε αυτή την κατανομή της δουλειάς.
Και οι δύο εργασίες χρειάζονται παραδείγματα που έχουν πράγματι αποκλειστεί από την εκπαίδευση. Επειδή τα συγγενικά παιχνίδια Touhou μοιράζονται κώδικα μηχανής παιχνιδιού, ο αποκλεισμός με βάση το όνομα ενός παιχνιδιού θα επέτρεπε ακόμη να εμφανιστούν σχεδόν πανομοιότυπες συναρτήσεις στην εκπαίδευση. Αντί γι' αυτό, θα απέκλεια οικογένειες πηγαίου κώδικα και θα κρατούσα τις αποδεκτές απαντήσεις τους έξω τόσο από την εκπαίδευση όσο και από την ανάκτηση πληροφοριών.
Σε αυτά τα παραδείγματα, το αποτέλεσμα θα ήταν πλήρεις ταυτίσεις, επικυρωμένες ανεξάρτητα. Δίνοντας σε κάθε μοντέλο το ίδιο όριο υποψήφιων εκδοχών ή μεταγλωττίσεων, θα μπορούσαμε να συγκρίνουμε την ποιότητα της αναζήτησης. Η μέτρηση του συνολικού χρόνου και κόστους, συμπεριλαμβανομένης της μεταγλώττισης, θα μας έλεγε αν αυτή η ποιότητα παράγει αποδοτική ροή εργασίας. Το κόστος εκπαίδευσης θα χρειαζόταν επίσης ξεχωριστή καταγραφή.
Και οι δύο οπτικές έχουν σημασία, επειδή μια φθηνότερη πρόταση μπορεί να οδηγήσει σε ακριβή ροή εργασίας αν προκαλεί περισσότερες μεταγλωττίσεις που δεν δίνουν χρήσιμες πληροφορίες. Αντίστροφα, ένα πιο αργό μοντέλο μπορεί να καλύψει το κόστος του βρίσκοντας νωρίτερα ένα χρήσιμο πείραμα. Η σύγκριση πρέπει να καταγράφει αυτά τα κόστη.
Η καταμέτρηση των αποδεκτών αποτελεσμάτων βοηθά επίσης να αξιολογούμε σωστά την ενδιάμεση πρόοδο. Μια υποψήφια εκδοχή αποθήκευσης επανάληψης του TH09 φαινόταν υποσχόμενη, επειδή η μεταγλωττισμένη συνάρτηση είχε το αναμενόμενο μέγεθος, αλλά μια πλήρης σύγκριση εξακολουθούσε να βρίσκει σημαντικές διαφορές. Αλλαγές στον τρόπο με τον οποίο ο μεταγλωττιστής διατάσσει τις εντολές μπορούν επίσης να κάνουν μια υποψήφια εκδοχή να φαίνεται πιο κοντά στον στόχο χωρίς να λύσουν το υποκείμενο πρόβλημα. Τέτοια διαγνωστικά στοιχεία μπορούν να καθοδηγήσουν το επόμενο πείραμα, αλλά θα επικύρωνα κάθε ανταμοιβή για το «πλησιάζει περισσότερο» σε σχέση με τον πλήρη έλεγχο αποδοχής.
Θα με ενδιέφερε το μοτίβο που προκύπτει από αυτά τα αποτελέσματα. Αν ένα εξειδικευμένο μοντέλο τα πηγαίνει καλά μέσα σε μια γνώριμη οικογένεια μεταγλωττιστών, διατηρείται αυτό το πλεονέκτημα όταν αλλάξει η αλυσίδα εργαλείων; Και όταν και τα δύο μοντέλα έχουν καλή ανάκτηση πληροφοριών, πόσα εξακολουθεί να προσθέτει η εκπαίδευση; Οι απαντήσεις θα μας βοηθούσαν να αποφασίσουμε πού είναι πιο χρήσιμο κάθε είδος μοντέλου.
Τι είδους βοηθό υποδεικνύει αυτό;
Αν διαπιστωθεί ότι τα μοντέλα βοηθούν σε διαφορετικά στάδια, μια χρήσιμη διάταξη θα μπορούσε να είναι ένας βοηθός ευρείας ικανότητας με πρόσβαση σε ένα εξειδικευμένο μοντέλο. Μόλις μια εργασία γίνει μια γνώριμη αναζήτηση με τον μεταγλωττιστή, θα μπορούσε να ζητήσει από το εξειδικευμένο μοντέλο υποψήφιες εκδοχές. Αν τα αποτελέσματα πάψουν να βγάζουν νόημα, ο βοηθός με τις ευρύτερες δυνατότητες θα μπορούσε να επιστρέψει στα στοιχεία του στόχου ή να διερευνήσει την ίδια τη μέτρηση.
Σε αυτή τη διάταξη, η εξειδίκευση γίνεται εργαλείο που μπορεί να επιλέγει ο βοηθός καθώς εξελίσσεται η διερεύνηση. Ο βοηθός διατηρεί την ελευθερία να αλλάζει κατεύθυνση, η οποία έκανε δυνατές τις προηγούμενες σημαντικές ανακαλύψεις.
Αυτό προκύπτει φυσικά από τη βιομηχανική αλλαγή που περιέγραψα στο προηγούμενο δοκίμιο. Η δυνατότητα να εκτελούμε πολύ περισσότερα πειράματα αλλάζει τον τρόπο με τον οποίο οργανώνουμε τη δουλειά. Μας δίνει επίσης λόγο να ρωτήσουμε ποιες αποφάσεις χρειάζονται ευρεία κρίση και ποιες βελτιώνονται μέσα από επαναλαμβανόμενη εμπειρία με μια συγκεκριμένη τέχνη.
Προς το παρόν, το ισχυρότερο γενικό μοντέλο έχει κερδίσει τη θέση του στη ροή εργασίας μου ανοίγοντας δρόμο σε προβλήματα που είχα αφήσει άλυτα. Αυτές οι επιτυχίες με κάνουν να θέλω να εξετάσω τη δουλειά πιο προσεκτικά: πόσο εξαρτήθηκε από το εύρος των δυνατοτήτων του μοντέλου και πόσο θα μπορούσε να αναλάβει ένα μοντέλο εκπαιδευμένο σε αυτό το συγκεκριμένο είδος ανακατασκευής;
Τα αποθετήρια μάς δίνουν έναν τρόπο να ελέγξουμε το ερώτημα. Θα ήθελα να χρησιμοποιήσω αυτό το αρχείο για να οργανώσω τη σύγκριση και να δω τι θα μάθουμε.
Στοιχεία και απόδοση της εργασίας στα μοντέλα
Οι αναλυτικές σημειώσεις τεκμηρίωσης περιλαμβάνουν τις καταγεγραμμένες συγκρίσεις και το πλαίσιο των πειραμάτων.
Τα παραδείγματα περιγράφουν ιστορικές συγκρίσεις σε επίπεδο συνάρτησης, καταγεγραμμένες στα συνδεδεμένα commits. Οι έλεγχοι εκτέλεσης ολόκληρου του παιχνιδιού είναι ξεχωριστά ορόσημα. Ο πηγαίος κώδικας και τα αρχεία ταύτισης εξετάστηκαν στις 13 Οκτωβρίου 2026.
Η ετικέτα gpt-dots του TH09 προσδιορίζει το GPT-6-Astra. Η gpt-web άλλαζε ανάλογα με το μοντέλο που χρησιμοποιούνταν κάθε φορά, οπότε αυτή η ετικέτα μόνη της δεν προσδιορίζει μια μεμονωμένη εκτέλεση. Τα ρητά ονόματα μοντέλων στα άλλα commits που παρατίθενται τεκμηριώνουν την καταγεγραμμένη απόδοση της εργασίας σε αυτά· τα ιστορικά δεν περιέχουν ομοιόμορφες μετρήσεις κόστους ή προσπάθειας ανά εκτέλεση.
- Χρόνοι ζωής προσωρινών τιμών στο TH09: η προηγούμενη εξέταση του πλαισίου και η πλήρης ανακατασκευή με καθαρή εκκίνηση.
- Συνάρτηση επανάκλησης Front του TH09: διαγνωστικές περιοχές χωρίς ακριβή ταύτιση, ο νέος γράφος του Astra και η αποδεκτή επανάληψη της μεταγλώττισής του.
- Γνώση του μεταγλωττιστή: επαναχρησιμοποίηση κάδου αναγνωριστικών στο TH095, πηγαίος κώδικας του παίκτη στο TH04 και σειρά σύνδεσης και ολοκλήρωση της συνάρτησης δημιουργίας εχθρών του TH09 από το Luna.
- Έλεγχοι και διαγνωστικά στοιχεία: έλεγχος κυριολεκτικών τιμών κινητής υποδιαστολής του TH08, αριθμητική διερεύνηση του TH08 και ανακατασκευή της αποθήκευσης επανάληψης του TH09.
Οι προτεινόμενες συγκρίσεις εξειδικευμένων μοντέλων και ενισχυτικής μάθησης είναι μελλοντικά πειράματα. Τα ιστορικά των έργων αποτελούν το κίνητρό τους· κανένα εκπαιδευμένο εξειδικευμένο μοντέλο δεν αξιολογήθηκε για αυτό το δοκίμιο.