Function calling (LLM) (EL)

From Systems analysis Wiki
Jump to navigation Jump to search

Function Calling (Κλήση Συναρτήσεων) — είναι ένας μηχανισμός στα μεγάλα γλωσσικά μοντέλα (LLM), που επιτρέπει στο μοντέλο να αλληλεπιδρά με εξωτερικά εργαλεία και API, παράγοντας δομημένα δεδομένα (συνήθως JSON) για την κλήση συναρτήσεων αντί για άμεση κειμενική απάντηση[1].

Με άλλα λόγια, το μοντέλο βάσει του αιτήματος του χρήστη προσδιορίζει ποια συνάρτηση από το προτεινόμενο σύνολο πρέπει να κληθεί και με ποιες παραμέτρους. Αυτός ο μηχανισμός διευρύνει το πεδίο εφαρμογής των LLM, επιτρέποντάς τους να λειτουργούν ως διεπαφή μεταξύ φυσικής γλώσσας και πρακτικών ενεργειών. Αυτό ανοίγει δυνατότητες για ενσωμάτωση της τεχνητής νοημοσύνης με εξωτερικά συστήματα: το μοντέλο μπορεί να ζητά ενημερωμένα δεδομένα, να εκτελεί λειτουργίες ή να χρησιμοποιεί υπηρεσίες, κάτι που είναι ιδιαίτερα πολύτιμο κατά τη δημιουργία έξυπνων βοηθών και αυτόνομων agents. Η χρήση εξωτερικών εργαλείων μειώνει επίσης τον κίνδυνο παραισθήσεων (επινοημένων γεγονότων) μέσω της προσφυγής σε αξιόπιστες πηγές[2].

Ιστορία και προσεγγίσεις υλοποίησης

Πρώιμες προσεγγίσεις (prompting και Toolformer)

Η ιδέα να διδαχθούν τα γλωσσικά μοντέλα να καλούν εργαλεία διαμορφώθηκε το 2022–2023. Οι πρώιμες προσεγγίσεις βασίζονταν σε τεχνικές σύνθετου prompting. Έτσι, το 2022 προτάθηκε το σχήμα ReAct, όπου το μοντέλο κατά τη διάρκεια του διαλόγου εναλλάσσει συλλογισμούς και ενέργειες (κλήσεις εργαλείων), κωδικοποιημένες σε ένα ενιαίο κείμενο.

Καθοριστικό βήμα αποτέλεσε η εμφάνιση του μοντέλου Toolformer, που παρουσιάστηκε από ερευνητές της Meta στις αρχές του 2023. Το Toolformer απέδειξε ότι τα LLM μπορούν να εκπαιδευτούν ειδικά ώστε να καλούν αυτόνομα εξωτερικά εργαλεία (αριθμομηχανή, μηχανή αναζήτησης, ημερολόγιο) βάσει κειμενικών υποδείξεων, εισάγοντας στο παραγόμενο κείμενο ειδικά tokens κλήσης API[3].

Επίσημη υποστήριξη και εξέλιξη

Σημαντικό ορόσημο σημείωσε η εταιρεία OpenAI, η οποία τον Ιούνιο του 2023 εισήγαγε επίσημα υποστήριξη Function Calling στα API της για τα μοντέλα GPT-3.5 και GPT-4[4]. Οι νέες εκδόσεις των μοντέλων εκπαιδεύτηκαν να αναγνωρίζουν καταστάσεις όπου το αίτημα του χρήστη υπονοεί προσφυγή σε εξωτερική συνάρτηση, και να παράγουν ένα ακριβώς δομημένο αντικείμενο JSON με ορίσματα. Η OpenAI χαρακτήρισε αυτή τη δυνατότητα ως «νέον τρόπο αξιόπιστης σύνδεσης του GPT με εξωτερικά εργαλεία και API».

Ανοιχτές πρωτοβουλίες

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

  • Gorilla: Έργο του UC Berkeley, εκδοχή του LLaMA με fine-tuning, ικανή να δημιουργεί κλήσεις σε χιλιάδες διαφορετικά API. Για την αξιολόγηση τέτοιων μοντέλων δημιουργήθηκε το benchmark Berkeley Function-Calling Leaderboard[5].
  • ToolAlpaca, ToolLLaMA, Hermes: Σειρές ανοιχτών μοντέλων με fine-tuning σε συνθετικά παραδείγματα κλήσεων συναρτήσεων, που συχνά παράγονταν από ισχυρότερα μοντέλα.

Μηχανισμός λειτουργίας

Η διαδικασία χρήσης του Function Calling περιλαμβάνει συνήθως αρκετά βήματα:

  1. Ορισμός συναρτήσεων. Ο προγραμματιστής ορίζει εκ των προτέρων ένα σύνολο συναρτήσεων διαθέσιμων στο μοντέλο (π.χ. εξωτερικά API) και περιγράφει τις υπογραφές και τον σκοπό τους, συνήθως σε μορφή JSON Schema.
  2. Ανάλυση αιτήματος. Κατά τη διάρκεια του διαλόγου, το μοντέλο αναλύει την πρόθεση του χρήστη και αποφασίζει αυτόνομα αν για την απάντηση πρέπει να κληθεί μία από τις ορισμένες συναρτήσεις.
  3. Παραγωγή κλήσης. Εάν απαιτείται ενέργεια, το LLM αντί για κανονικό κείμενο παράγει ειδική δομημένη έξοδο (π.χ. JSON με το όνομα της συνάρτησης και τα ορίσματα). Εάν δεν απαιτείται κλήση, το μοντέλο επιστρέφει κανονική κειμενική απάντηση.
  4. Εκτέλεση συνάρτησης. Το εξωτερικό πρόγραμμα (περίβλημα chatbot ή agent) λαμβάνει το JSON, εκτελεί την πραγματική κλήση της καθορισμένης συνάρτησης με τις προτεινόμενες παραμέτρους και διαβιβάζει το αποτέλεσμα πίσω στο μοντέλο.
  5. Διαμόρφωση τελικής απάντησης. Το μοντέλο χρησιμοποιεί τα ληφθέντα δεδομένα για την παραγωγή της οριστικής απάντησης στον χρήστη[4].

Για τη διαχείριση αυτής της πολυβηματικής διαδικασίας κατά την εκπαίδευση των μοντέλων χρησιμοποιούνται ειδικές μορφές διαλόγου, όπως η σήμανση ChatML της OpenAI, όπου πέραν των ρόλων «χρήστης» και «βοηθός» εισάγεται ο ρόλος «συνάρτηση» για τη διαβίβαση αποτελεσμάτων κλήσεων.

Εφαρμογές και πλεονεκτήματα

Η δυνατότητα κλήσης συναρτήσεων διευρύνει σημαντικά το φάσμα των εργασιών που επιλύονται με τη βοήθεια των LLM.

  • Ενσωμάτωση με εξωτερικά API. Το μοντέλο μπορεί να απαντά σε αιτήματα που απαιτούν ενημερωμένες πληροφορίες, καλώντας εξωτερικές υπηρεσίες (π.χ. για λήψη καιρού, ισοτιμιών νομισμάτων, ειδήσεων).
  • Αυτοματοποίηση ενεργειών χρήστη. Το LLM μπορεί να εκτελεί ρουτίνες εργασίες: αποστολή ηλεκτρονικών μηνυμάτων, δημιουργία συμβάντων στο ημερολόγιο, τοποθέτηση παραγγελιών σε ηλεκτρονικά καταστήματα.
  • Πρόσβαση σε βάσεις δεδομένων και αναλυτική. Αιτήματα σε φυσική γλώσσα μπορούν να μεταφράζονται σε κλήσεις εσωτερικών API ή ερωτήματα SQL για εξαγωγή και ανάλυση δεδομένων.
  • Εξαγωγή δομημένων πληροφοριών. Το LLM μπορεί να εξάγει από μόνο του γεγονότα από μακρύ κείμενο (π.χ. ονόματα, ημερομηνίες, διευθύνσεις) και να τα επιστρέφει ως δομημένο JSON array, κατάλληλο για μεταγενέστερη προγραμματιστική επεξεργασία.

Ζητήματα ασφάλειας

Ενώ διευρύνει τις δυνατότητες των μοντέλων, το Function Calling εισάγει ταυτόχρονα νέους κινδύνους.

  • Μη επαληθευμένες εξόδοι. Η αλληλεπίδραση του μοντέλου με εξωτερικά εργαλεία πρέπει να προστατεύεται προσεκτικά. Εάν το μοντέλο λάβει από ένα API κακόβουλη ή εσφαλμένη τιμή, μπορεί να την ενσωματώσει στην απάντηση ή να καλέσει άλλη συνάρτηση βάσει αυτής, οδηγώντας σε απρόβλεπτες συνέπειες.
  • Επιθέσεις μέσω ορισμάτων συναρτήσεων. Ερευνητές ανακάλυψαν τρωτά σημεία ειδικά για τον τρόπο Function Calling. Το 2025 επιδείχθηκε μια επίθεση που ονομάστηκε «Η Σκοτεινή Πλευρά του Function Calling». Η ουσία της συνίσταται στην προσφορά στο μοντέλο μιας ειδικής «συνάρτησης», μέσα στα ορίσματα της οποίας αποκρύπτεται μια απαγορευμένη οδηγία (jailbreak payload). Το μοντέλο, ακολουθώντας την αρχή κλήσης συνάρτησης, παράγει ορίσματα που περιέχουν περιεχόμενο που παραβιάζει τους κανόνες, παρακάμπτοντας έτσι τα φίλτρα διαμόρφωσης. Οι δοκιμές έδειξαν επιτυχία της επίθεσης σε περισσότερες από 90% περιπτώσεις σε έξι σύγχρονα μοντέλα, συμπεριλαμβανομένων των GPT-4 και Claude[2].

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

Παραπομπές

  • Επίσημη ανακοίνωση Function Calling από την OpenAI
  • Σελίδα του έργου Gorilla LLM
  • Apideck (2024). An Introduction to Function Calling and Tool Use. Apideck Blog.
  • LangChain (2025). Tool Calling (Documentation). LangChain Docs.
  • Mistral AI (2025). Function Calling – Documentation. Mistral Docs.
  • Hopsworks (2024). What is Function Calling with LLMs?. Hopsworks Dictionary.
  • Hopsworks (2024). Unlocking the Power of Function Calling with LLMs. Hopsworks Blog.
  • University of California, Berkeley (2025). Berkeley Function Calling Leaderboard V3. Online Resource.

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

  • Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. ACL 2025.
  • OpenAI (2023). Function Calling and Other API Updates. OpenAI Blog.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
  • Liu, W. et al. (2024). ToolACE: Winning the Points of LLM Function Calling. arXiv:2409.00920.
  • Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.

Σημειώσεις

  1. «What is Function Calling with LLMs?». Hopsworks. [1]
  2. 2.0 2.1 Wu, Z. et al. «The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models». Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing, 2025. [2]
  3. Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv:2302.04761, 2023. [3]
  4. 4.0 4.1 «Function calling and other API updates». OpenAI, 2023. [4]
  5. «Gorilla: Large Language Model Connected to Massive APIs». University of California, Berkeley. [5]