Η προσέγγιση του μοντέλου κόσμου για το CLI

Το WorldTUI δεν είναι ένα τερματικό που εκτελεί κώδικα, αλλά ένα μοντέλο που «φαντάζεται» πώς θα αντιδρούσε ένα τερματικό. Αντί να παράγει μια απλή ροή κειμένου, το μοντέλο αντιλαμβάνεται την οθόνη ως ένα πλέγμα χαρακτήρων. Κάθε πάτημα πλήκτρου (keypress) τροφοδοτείται ως raw bytes και το μοντέλο προβλέπει ποιες γραμμές της οθόνης πρέπει να ξαναγραφούν και πού θα μετακινηθεί ο κέρσορας.

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

Εκπαίδευση και διαχείριση της μνήμης

Το μοντέλο βασίστηκε στο Qwen2.5-Coder-0.5B και εκπαιδεύτηκε σε συνθετικά δεδομένα από πραγματικές συνεδρίες μέσα σε Docker containers. Ένα κρίσιμο σημείο της εκπαίδευσης ήταν η αντιμετώπιση της συσσώρευσης σφαλμάτων (error compounding). Χρησιμοποιώντας μια προσέγγιση παρόμοια με το DAgger, το μοντέλο εκπαιδεύτηκε σε διορθώσεις: όταν το μοντέλο έκανε ένα λάθος στην πρόβλεψη της οθόνης, η εκπαίδευση του επέβαλε να παράγει το delta που θα το επέστρεφε στην ορθή κατάσταση.

Ενδιαφέρον είναι το εύρημα σχετικά με τη μνήμη: μέσω τεστ ανάγνωσης αρχείων (memory tests), διαπιστώθηκε ότι η μνήμη του μοντέλου είναι στενά συνδεδεμένη με συγκεκριμένα layers. Η αφαίρεση ακόμα και ενός layer κατά τη διαδικασία του distillation μπορούσε να μηδενίσει την ικανότητα του μοντέλου να θυμάται τι έγραψε σε ένα αρχείο λίγα βήματα πριν.

Βελτιστοποίηση για πραγματικό χρόνο στον Browser

Η μεγαλύτερη πρόκληση ήταν το latency. Η σειριακή παραγωγή tokens για μια πλήρη ανανέωση οθόνης (π.χ. κατά την εκτέλεση της εντολής clear) ήταν απαγορευτική. Η λύση ήρθε μέσω δύο τεχνικών:

  1. Parallel Rows: Εφόσον οι περισσότερες γραμμές της οθόνης είναι ανεξάρτητες, το μοντέλο παράγει τις ενημερώσεις όλων των γραμμών παράλληλα σε ένα batch, μειώνοντας το χρόνο αποκωδικοποίησης από το άθροισμα όλων των γραμμών στο μήκος της μεγαλύτερης γραμμής.
  2. Speculative Decoding: Για να αποφευχθούν τα σφάλματα συντονισμού μεταξύ των παράλληλων γραμμών, οι παράλληλες προβλέψεις χρησιμοποιούνται ως «προσχέδιο» (draft), το οποίο στη συνέχεια επαληθεύεται σειριακά από το ίδιο το μοντέλο.

Τελικά, μέσω κβαντισμού σε int4 και χρήσης WebGPU, το μοντέλο εκτελείται τοπικά στον browser, επιτυγχάνοντας χρόνο απόκρισης περίπου 60ms για μεμονωμένους χαρακτήρες.