Toolformer (EL)

From Systems analysis Wiki
Jump to navigation Jump to search

Toolformer — αυτή είναι μια προσέγγιση για τη δημιουργία μεγάλων γλωσσικών μοντέλων (LLM), που τους επιτρέπει να χρησιμοποιούν αυτόνομα εξωτερικά εργαλεία μέσω κλήσεων API[1]. Η μέθοδος αυτή προτάθηκε το 2023 από ομάδα ερευνητών της Meta AI Research σε συνεργασία με το Πανεπιστήμιο Pompeu Fabra (Ισπανία). Στην εργασία τους «Toolformer: Language Models Can Teach Themselves to Use Tools» (Timo Schick et al., 2023), οι συγγραφείς επισημαίνουν ένα παράδοξο: τα σύγχρονα LLM επιδεικνύουν εντυπωσιακές ικανότητες στην επίλυση σύνθετων νέων προβλημάτων μέσω παραδειγμάτων κειμένου, αλλά συχνά αδυνατούν να εκτελέσουν αξιόπιστα βασικές λειτουργίες — όπως η αρίθμηση ή η αναζήτηση γεγονότων[1]. Για να ξεπεράσουν αυτούς τους περιορισμούς, η ομάδα ανέπτυξε το μοντέλο Toolformer, το οποίο αυτοδιδάσκεται να επιλέγει και να καλεί εξωτερικά εργαλεία (όπως μηχανές αναζήτησης, αριθμομηχανές ή υπηρεσίες μετάφρασης) για τη βελτίωση της ποιότητας εκτέλεσης ποικίλων εργασιών[1]. Τον Φεβρουάριο του 2023, το μοντέλο αυτό παρουσιάστηκε ως preprint στο arXiv και αργότερα αναγνωρίστηκε και έγινε δεκτό στο συνέδριο NeurIPS 2023[2].

Βασική ιδέα και δυνατότητες του μοντέλου

Το Toolformer είναι ένα fine-tuned γλωσσικό μοντέλο, ικανό να αποφασίζει ποιο εργαλείο να καλέσει, πότε ακριβώς να το καλέσει, ποιες παραμέτρους να περάσει και πώς να ενσωματώσει το αποτέλεσμα στο παραγόμενο κείμενο[3]. Η εκπαίδευση οργανώνεται σε self-supervised λειτουργία — το μοντέλο παράγει και αξιολογεί μόνο του παραδείγματα χρήσης API, απαιτώντας μόνο ένα μικρό σύνολο επιδείξεων (κυριολεκτικά μερικά παραδείγματα) για κάθε εργαλείο[3]. Σε αντίθεση με προηγούμενες προσεγγίσεις, δεν απαιτούνται εκτεταμένες σημειώσεις ή πρότυπα προσανατολισμένα στον άνθρωπο για την ενσωμάτωση εργαλείων· το μοντέλο μαθαίνει μόνο του πότε και πώς να χρησιμοποιεί κάθε API, διατηρώντας τις γενικές γλωσσικές ικανότητές του χωρίς να περιορίζεται σε στενά ορισμένες εργασίες[1].

Οι συγγραφείς ενσωμάτωσαν στο Toolformer ένα ευρύ φάσμα εργαλείων, προσβάσιμων μέσω απλών κλήσεων API. Στην πειραματική έκδοση χρησιμοποιήθηκαν τα ακόλουθα εργαλεία[3]:

  • Αριθμομηχανή – για την εκτέλεση αριθμητικών υπολογισμών.
  • Σύστημα «ερώτηση-απάντηση» (Q&A) – για την αναζήτηση απαντήσεων σε πραγματολογικές ερωτήσεις από βάση γνώσης.
  • Μηχανές αναζήτησης (2 διαφορετικές) – για την αναζήτηση επίκαιρων πληροφοριών στο διαδίκτυο.
  • Σύστημα μηχανικής μετάφρασης – για μετάφραση κειμένων μεταξύ γλωσσών.
  • Ημερολόγιο – για τη λήψη πληροφοριών σχετικά με ημερομηνίες και ώρες.

Κάθε εργαλείο αναπαρίσταται με τη μορφή τμήματος κειμένου (ειδικής ετικέτας κειμένου), γεγονός που επιτρέπει στο μοντέλο να ενσωματώνει την κλήση API απευθείας στο κείμενο που παράγει[4]. Για παράδειγμα, το μοντέλο μπορεί να εισαγάγει μια κατασκευή τύπου `[Calculator(...)]` ή `[Search("ερώτημα")]` στο τρέχον πλαίσιο, σηματοδοτώντας την ανάγκη για εξωτερική κλήση. Κατά τη δημιουργία απάντησης, το Toolformer παράγει έναν ειδικό χαρακτήρα (βέλος →), με τον οποίο το σύστημα αναστέλλει τη δημιουργία και εκτελεί την αντίστοιχη κλήση API· το αποτέλεσμα που λαμβάνεται εισάγεται στο κείμενο, μετά το οποίο συνεχίζεται η δημιουργία του επόμενου τμήματος[4]. Ένας τέτοιος μηχανισμός επιτρέπει στο μοντέλο να αξιοποιεί δυναμικά τις δυνατότητες εξωτερικών υπηρεσιών, παραμένοντας ταυτόχρονα ενιαία γλωσσική ενότητα χωρίς αλλαγή αρχιτεκτονικής.

Εκπαίδευση μοντέλου (μεθοδολογία)

Οι προγραμματιστές περιέγραψαν τη διαδικασία εκπαίδευσης του Toolformer σε αρκετά στάδια[4], χρησιμοποιώντας την τεχνική in-context learning για τη δημιουργία συνθετικών δεδομένων[1]:

  1. Δημιουργία υποψήφιων κλήσεων API. Αρχικά λαμβάνονται κείμενα από ένα μεγάλο σώμα (π.χ. άρθρα ή ιστοσελίδες) και σε αυτά τεχνητά εισάγονται κλήσεις εργαλείων που ενδέχεται να βοηθήσουν στη συνέχεια ή στη συμπλήρωση του κειμένου. Αυτές τις εισαγωγές το μοντέλο τις παράγει μόνο του με τη βοήθεια N-shot prompting, βασιζόμενο σε μερικά χειροκίνητα δείγματα χρήσης κάθε API[1]. Για παράδειγμα, το μοντέλο μπορεί να λάβει ένα απόσπασμα: «Το 2024 ο πληθυσμός της πόλης ήταν [QA("Ποιος είναι ο πληθυσμός αυτής της πόλης;") → ...] κάτοικοι», όπου QA( ) είναι μια κλήση στο σύστημα ερωτήσεων-απαντήσεων που πρέπει να επιστρέψει τα ελλείποντα στοιχεία. Για κάθε εργαλείο επιλέγονται κατάλληλα πλαίσια· έτσι, για την αριθμομηχανή το μοντέλο επιλέγει προτάσεις που περιέχουν αρκετούς αριθμούς και λέξεις όπως «ισούται» ή «σύνολο»[4] — εκεί όπου ένα αριθμητικό αποτέλεσμα θα χρειαστεί πραγματικά.
  2. Εκτέλεση κλήσεων API και εμπλουτισμός δεδομένων. Στη συνέχεια, όλες οι κλήσεις που παράχθηκαν από το μοντέλο εκτελούνται πραγματικά — για παράδειγμα, αποστέλλονται ερωτήματα σε μηχανή αναζήτησης ή υπολογίζονται εκφράσεις στην αριθμομηχανή. Τα αποτελέσματα που λαμβάνονται εισάγονται πίσω στα κείμενα, διαμορφώνοντας ολοκληρωμένες εκδοχές προτάσεων με εισαγωγές τύπου `{απάντηση}`[4][4]. Ταυτόχρονα διατηρούνται και οι «κενές» εκδοχές (χωρίς αντικατάσταση απάντησης), καθώς και τα αρχικά κείμενα χωρίς καμία κλήση — για μεταγενέστερη σύγκριση.
  3. Φιλτράρισμα και αυτοαξιολόγηση χρησιμότητας. Σε αυτό το στάδιο, το Toolformer αξιολογεί αυτόνομα ποιες από τις παραγόμενες εισαγωγές API είναι πραγματικά χρήσιμες για την πρόβλεψη της συνέχειας του κειμένου[4]. Πραγματοποιείται σύγκριση της πιθανότητας του γλωσσικού μοντέλου να συνεχίσει το κείμενο σε τρία σενάρια: (α) χωρίς καμία κλήση, (β) με κλήση εργαλείου χωρίς αντικατάσταση αποτελέσματος, (γ) με κλήση και αντικατεστημένο αποτέλεσμα[4]. Εάν η προσθήκη μιας συγκεκριμένης απάντησης API αυξάνει την πιθανότητα του μοντέλου να συνεχίσει σωστά τη φράση (δηλαδή βοηθά πραγματικά το μοντέλο να προβλέψει τις επόμενες λέξεις), τότε το παράδειγμα αυτό θεωρείται χρήσιμο. Μόνο οι εισαγωγές που αποδίδουν κέρδος πιθανότητας παραμένουν στο σύνολο δεδομένων. Έτσι αποκλείονται οι περιπτώσεις κατά τις οποίες η κλήση του εργαλείου ήταν περιττή ή δεν πρόσθεσε νέες πληροφορίες. Τέλος, το μοντέλο υποβάλλεται σε fine-tuning στο φιλτραρισμένο dataset που προέκυψε, το οποίο περιέχει πραγματικά παραδείγματα κειμένου με βέλτιστα εισαγόμενες κλήσεις API[1]. Η εκπαίδευση εκτελείται με τον τυπικό στόχο γλωσσικής μοντελοποίησης — πρόβλεψη του επόμενου token της ακολουθίας, συμπεριλαμβανομένων των token που αντιπροσωπεύουν και τα αποτελέσματα κλήσεων εργαλείων.

Είναι σημαντικό να τονιστεί ότι για την ενσωμάτωση κάθε νέου εργαλείου απαιτούνταν μόνο μερικά χειροκίνητα παραδείγματα χρήσης του — στη συνέχεια η δημιουργία δεδομένων εκπαίδευσης γινόταν αυτόματα[3]. Χάρη σε αυτό, η προσέγγιση Toolformer είναι σχεδόν ανεξάρτητη από την ύπαρξη εξειδικευμένων σημειωμένων σωμάτων κειμένου και ελαχιστοποιεί τον κόπο για την ανωτέρω σημείωση δεδομένων. Το μοντέλο μαθαίνει μόνο του τη μορφή και την καταλληλότητα των κλήσεων API, διατηρώντας παράλληλα την καθολικότητά του: χρησιμοποιεί εργαλεία μόνο όταν αυτό είναι πραγματικά αναγκαίο για την επίλυση του συγκεκριμένου προβλήματος[1].

Πειραματικά αποτελέσματα

Για την πειραματική επαλήθευση της μεθόδου, οι ερευνητές χρησιμοποίησαν ένα ήδη υπάρχον γλωσσικό μοντέλο GPT-J (6,7 δισεκατομμύρια παράμετροι) — ένα ανοιχτό LLM εκπαιδευμένο στο σώμα The Pile[4]. Αυτό το μοντέλο υπέστη fine-tuning σύμφωνα με την περιγραφόμενη διαδικασία, παράγοντας το Toolformer βασισμένο σε GPT-J. Η απόδοση της νέας προσέγγισης αξιολογήθηκε σε λειτουργία zero-shot (χωρίς παραδείγματα) σε μια σειρά τυπικών εργασιών, συμπεριλαμβανομένης της μαθηματικής επίλυσης προβλημάτων κειμένου, αναζήτησης γεγονότων και απάντησης σε ερωτήσεις γνώσης (QA), καθώς και μετάφρασης και συμπλήρωσης κενών σε κείμενο. Ως δεδομένα δοκιμής χρησιμοποιήθηκαν, για παράδειγμα, τα ανοιχτά σύνολα ερωτήσεων Natural Questions, TriviaQA (για αξιολόγηση πραγματολογικής γνώσης) και τα σύνολα εργασιών ASDiv, MAWPS, SVAMP (μαθηματικά προβλήματα κειμένου για αριθμητική), καθώς και τα πολύγλωσσα benchmark QA MLQA, LAMA[5].

Τα αποτελέσματα έδειξαν ότι το Toolformer υπερτερεί σημαντικά του αρχικού μοντέλου του ίδιου μεγέθους σε πολλές εργασίες[1]. Επιπλέον, χάρη στη σύνδεση εργαλείων, ένα σχετικά μικρό μοντέλο (6,7 δισεκατομμύρια παράμετροι) κατάφερε σε ορισμένους δείκτες να ξεπεράσει το πολύ μεγαλύτερο μοντέλο GPT-3 (175 δισεκατομμύρια παράμετροι)[1][6]. Για παράδειγμα, στα μαθηματικά προβλήματα κειμένου που απαιτούν ακριβείς υπολογισμούς, το Toolformer επέδειξε ιδιαίτερα αξιοσημείωτη πρόοδο σε σύγκριση με τα συνήθη LLM, επιλύοντας τέτοιες εργασίες ακριβώς χάρη στην αριθμομηχανή, ενώ ακόμα και το GPT-3 έκανε λάθη[1]. Στις δοκιμές πραγματολογικών ερωτήσεων (QA), το Toolformer βασισμένο σε GPT-J επίσης επέδειξε ποιότητα απάντησης συγκρίσιμη ή καλύτερη από αυτή του GPT-3, καθώς μπορούσε να εκτελέσει αναζήτηση στο διαδίκτυο για επίκαιρες πληροφορίες[1]. Είναι σημαντικό ότι η νέα προσέγγιση δεν υποβάθμισε τις γενικές ικανότητες του γλωσσικού μοντέλου, όπως η συνεκτική συνέχεια κειμένου σε συνηθισμένα δεδομένα: το Toolformer διατήρησε το επίπεδο παραγωγής φυσικής γλώσσας χωρίς εργαλεία στο επίπεδο του αρχικού GPT-J[3]. Με άλλα λόγια, η προσθήκη λειτουργικότητας κλήσης API δεν «αφαίρεσε» από το μοντέλο τις βασικές του δεξιότητες, αλλά τις επέκτεινε με πρόσθετες δυνατότητες.

Σημασία της εργασίας και μελλοντικές έρευνες

Η ανάπτυξη του Toolformer απέδειξε τη θεμελιώδη δυνατότητα να εκπαιδευτεί ένα μοντέλο να χρησιμοποιεί εξωτερικά εργαλεία σχεδόν χωρίς χειροκίνητη σημείωση, μέσω δημιουργίας συνθετικών δεδομένων και αυτοαξιολόγησης χρησιμότητας. Αυτό το επίτευγμα ανοίγει το δρόμο για πιο αποτελεσματικά και αξιόπιστα μεγάλα γλωσσικά μοντέλα: αντί να αυξάνονται δισεκατομμύρια παράμετροι για την απομνημόνευση γεγονότων ή μαθηματικών κανόνων, ένα σχετικά συμπαγές μοντέλο μπορεί να αξιοποιεί δυναμικά εξωτερικούς πόρους (βάσεις γνώσης, αριθμομηχανές, υπηρεσίες) για να καλύψει τα δικά του κενά[1]. Αυτή η προσέγγιση επιτρέπει τη μείωση των «ψευδαισθήσεων» (όταν το μοντέλο επινοεί ανύπαρκτες πληροφορίες), την αύξηση της ακρίβειας των απαντήσεων και της επικαιρότητας των γνώσεων χωρίς ολική αναδιαμόρφωση ολόκληρου του μοντέλου. Ουσιαστικά, το Toolformer επιτυγχάνει το «καλύτερο και από τους δύο κόσμους» — συνδυάζοντας τις γλωσσικές δεξιότητες ενός μεγάλου μοντέλου με την ακρίβεια εξειδικευμένων εργαλείων[3].

Η εργασία των Schick και συναδέλφων ήταν μια από τις πρώτες που απέδειξαν την αυτόνομη κατάκτηση εξωτερικών API από LLM, και προκάλεσε μεγάλο ενδιαφέρον στην κοινότητα. Εμφανίστηκαν περαιτέρω έρευνες που αναπτύσσουν αυτή την ιδέα. Για παράδειγμα, το 2023 προτάθηκε το μοντέλο Graph-ToolFormer, που προσαρμόζει τις αρχές του Toolformer για εργασία με δεδομένα γράφων. Βασιζόμενο σε υποδείξεις παραγόμενες από ChatGPT, το Graph-ToolFormer διδάσκει στο γλωσσικό μοντέλο να καλεί εξωτερικά εργαλεία για την επίλυση εργασιών ανάλυσης γράφων (π.χ. λήψη ιδιοτήτων γράφου, εργασία με δίκτυα γνώσης κ.λπ.)[7]. Μια άλλη αξιοσημείωτη ανάπτυξη είναι το μοντέλο Gorilla (Univ. of California, Berkeley, 2023), το οποίο εστιάζει στη σωστή χρήση πολλών API τρίτων[8]. Το Gorilla είναι ένα LLaMA μοντέλο που έχει υποστεί fine-tuning σε ένα εκτεταμένο σύνολο τεκμηριωμένων συναρτήσεων· είναι σε θέση να παράγει σωστές κλήσεις API βάσει περιγραφής εργασίας, και μάλιστα τόσο επιτυχημένα ώστε στα πειράματα ξεπέρασε ακόμα και το GPT-4 ως προς την ακρίβεια δημιουργίας κλήσεων βιβλιοθηκών και υπηρεσιών[8]. Στο Gorilla υλοποιείται ενσωμάτωση με μηχανισμό αναζήτησης στην τεκμηρίωση, γεγονός που επιτρέπει την ενημέρωση πληροφοριών σχετικά με αλλαγές API και μειώνει σημαντικά τα σφάλματα και τις ψευδαισθήσεις κατά τη χρήση εργαλείων[8]. Αυτές οι εργασίες επιβεβαιώνουν τη σημασία της κατεύθυνσης που άνοιξε το Toolformer: ο συνδυασμός LLM με εξωτερικά εργαλεία θεωρείται ελπιδοφόρος δρόμος προς τη δημιουργία πιο ισχυρών και αξιόπιστων συστημάτων AI.

Σημειώνεται ότι η ιδέα ενσωμάτωσης εργαλείων σε γλωσσικά μοντέλα αναπτύσσεται όχι μόνο στην έρευνα αλλά και στη βιομηχανία. Έτσι, τον Μάρτιο του 2023, η εταιρεία OpenAI παρουσίασε το σύστημα πρόσθετων για ChatGPT (plugins) — μια ειδική διεπαφή που επιτρέπει τη σύνδεση του μοντέλου με εξωτερικές υπηρεσίες (περιηγητής ιστού, βάσεις γνώσης, μηχανές υπολογισμών κ.λπ.) για λήψη επίκαιρων πληροφοριών και εκτέλεση υπολογισμών[9]. Οι χρήστες αιτούνταν εδώ και καιρό τέτοια λειτουργικότητα, και η εμφάνιση των plugins πραγματοποιεί ουσιαστικά στην πράξη μια έννοια παρόμοια με το Toolformer: το μοντέλο συμπληρώνεται με «εργαλεία» για την επέκταση των δυνατοτήτων του κατά την επίλυση ποικίλων αιτημάτων χρηστών[9]. Έτσι, το Toolformer εντάσσεται στη γενική τάση ανάπτυξης της AI, όπου τα μεγάλα γλωσσικά μοντέλα γίνονται πλατφόρμα, ικανή να αξιοποιεί κατά παραγγελία εξωτερικές γνώσεις και υπολογισμούς. Η έρευνα που πραγματοποιήθηκε από την ομάδα Meta AI και UPF έθεσε σημαντικά θεμέλια αυτής της κατεύθυνσης, δείχνοντας πώς τα LLM μπορούν να μάθουν να εργάζονται με εργαλεία σχεδόν χωρίς χειροκίνητη καθοδήγηση, πλησιάζοντας έτσι έναν πιο καθολικό και ασφαλή έξυπνο βοηθό[1][3].

Αναφορές

  • Πρωτότυπο άρθρο «Toolformer: Language Models Can Teach Themselves to Use Tools» στο arXiv
  • Επισκόπηση του Toolformer στο Synced Review
  • Σελίδα Toolformer στο OpenReview
  • Επισκόπηση του Toolformer στο Medium
  • Άρθρο για το μοντέλο Gorilla στο arXiv
  • Σελίδα plugins ChatGPT στον ιστότοπο OpenAI

Βιβλιογραφία

  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS 2023. OpenReview.
  • Li, M. et al. (2023). API-Bank: A Comprehensive Benchmark for Tool-Augmented LLMs. arXiv:2304.08244.
  • Zhang, T. et al. (2023). Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT. arXiv:2304.11116.
  • Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
  • Qin, Y. et al. (2023). ToolLLM: Facilitating Large Language Models to Master 16 000+ Real-World APIs. arXiv:2307.16789.
  • Li, Y. et al. (2024). Tool Learning with Large Language Models: A Survey. arXiv:2405.17935.
  • OpenAI (2023). ChatGPT Plugins. OpenAI Blog.
  • Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Schick, T. et al. (2023). Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools. Synced Review.

Σημειώσεις

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 Schick, T. et al. «Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools». Synced. [1]
  2. Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». OpenReview. [2]
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv. [3]
  4. 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 OXEN AI. «Arxiv Dives Toolformer: Language models can teach themselves to use tools». Medium. [4]
  5. «Toolformer: Language Models Can Teach Themselves to Use Tools». Papers With Code. [5]
  6. Brown, Tom B. et al. «Language Models are Few-Shot Learners». arXiv. [6]
  7. Zhang, Tingkai et al. «Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT». arXiv. [7]
  8. 8.0 8.1 8.2 Patil, Shishir G. et al. «Gorilla: Large Language Model Connected with Massive APIs». arXiv. [8]
  9. 9.0 9.1 «ChatGPT plugins». OpenAI. [9]