Function calling (LLM) (HU)

From Systems analysis Wiki
Jump to navigation Jump to search

Function Calling (Függvényhívás) — ez egy mechanizmus a nagy nyelvi modellekben (LLM), amely lehetővé teszi a modell számára, hogy külső eszközökkel és API-kkal kommunikáljon, strukturált adatokat (jellemzően JSON formátumban) generálva a függvények meghívásához, közvetlen szöveges válasz helyett[1].

Más szóval, a modell a felhasználói kérés alapján meghatározza, hogy a felkínált készletből melyik függvényt kell meghívni és milyen paraméterekkel. Ez a mechanizmus bővíti az LLM-ek alkalmazási körét, lehetővé téve számukra, hogy interfészként szolgáljanak a természetes nyelv és a gyakorlati műveletek között. Ez lehetőséget nyit a mesterséges intelligencia külső rendszerekkel való integrációjára: a modell aktuális adatokat kérhet le, műveleteket hajthat végre, vagy szolgáltatásokat vehet igénybe, ami különösen értékes intelligens asszisztensek és autonóm ágensek létrehozásakor. A külső eszközök használata csökkenti a hallucinációk (kitalált tények) kockázatát is, mivel megbízható forrásokhoz fordul[2].

Történet és megvalósítási megközelítések

Korai megközelítések (prompting és Toolformer)

Az az elképzelés, hogy a nyelvi modelleket megtanítsák eszközök meghívására, 2022–2023-ban alakult ki. A korai megközelítések összetett prompting technológiákra támaszkodtak. Így 2022-ben vezették be a ReAct sémát, ahol a modell a párbeszéd során felváltva végzett következtetéseket és műveleteket (eszközhívásokat), amelyek egyetlen szövegbe voltak kódolva.

Meredek lépést jelentett a Toolformer modell megjelenése, amelyet a Meta kutatói 2023 elején mutattak be. A Toolformer megmutatta, hogy az LLM-ek speciálisan továbbtaníthatók arra, hogy önállóan hívjanak meg külső eszközöket (számológép, keresőmotor, naptár) szöveges utasítások alapján, speciális API-hívási tokeneket illesztve a generált szövegbe[3].

Hivatalos támogatás és fejlesztés

Mérföldkövet jelentett az OpenAI, amely 2023 júniusában hivatalosan bevezette a Function Calling támogatást a GPT-3.5 és GPT-4 modellekhez tartozó API-jaiba[4]. A modellek új verzióit arra tanították tovább, hogy felismerjék azokat a helyzeteket, amikor a felhasználói kérés külső függvény meghívását feltételezi, és pontosan strukturált JSON-objektumot generáljanak az argumentumokkal. Az OpenAI ezt a lehetőséget „új módszernek nevezte a GPT és a külső eszközök, illetve API-k megbízható összekapcsolására".

Nyílt kezdeményezések

A kereskedelmi megvalósításokat követően megjelentek a nyílt modellek, amelyeket helyes függvényhívások generálására tanítottak tovább.

  • Gorilla: A UC Berkeley projektje, a LLaMA továbbtanított változata, amely több ezer különböző API-hoz képes hívásokat generálni. Az ilyen modellek értékelésére létrehozták a Berkeley Function-Calling Leaderboard benchmarkot[5].
  • ToolAlpaca, ToolLLaMA, Hermes: Nyílt modellek sorozatai, amelyeket szintetikus függvényhívás-példákon tanítottak tovább, ezeket gyakran erősebb modellek generálták.

A működési mechanizmus

A Function Calling használatának folyamata általában több lépésből áll:

  1. Függvények meghatározása. A fejlesztő előre meghatározza a modell számára elérhető függvények készletét (például külső API-kat), és leírja azok szignatúráját és rendeltetését, általában JSON Schema formátumban.
  2. Kérés elemzése. A párbeszéd során a modell elemzi a felhasználó szándékát, és önállóan dönt arról, hogy a válaszhoz szükséges-e valamelyik meghatározott függvény meghívása.
  3. Hívás generálása. Ha műveletre van szükség, az LLM a szokásos szöveg helyett speciális strukturált kimenetet generál (például JSON-t a függvény nevével és argumentumaival). Ha nincs szükség hívásra, a modell normál szöveges választ ad vissza.
  4. Függvény végrehajtása. A külső program (a chatbot kerete vagy az ágens) megkapja a JSON-t, végrehajtja a megadott függvény tényleges hívását a javasolt paraméterekkel, és az eredményt visszaküldi a modellnek.
  5. Végső válasz kialakítása. A modell a kapott adatokat felhasználva generálja a felhasználónak szóló végleges választ[4].

Ennek a többlépéses folyamatnak a kezelésére a modellek tanítása során speciális párbeszédformátumokat alkalmaznak, például az OpenAI ChatML jelölését, ahol a „felhasználó" és az „asszisztens" szerepeken kívül bevezetik a „függvény" szerepet a hívási eredmények átadásához.

Alkalmazás és előnyök

A függvények meghívásának lehetősége jelentősen bővíti az LLM-ekkel megoldható feladatok körét.

  • Integráció külső API-kkal. A modell válaszolhat olyan kérésekre, amelyek aktuális információt igényelnek, külső szolgáltatásokat hívva meg (például az időjárás, a devizaárfolyamok vagy a hírek lekéréséhez).
  • Felhasználói műveletek automatizálása. Az LLM képes elvégezni rutinfeladatokat: e-maileket küldeni, naptáreseményeket létrehozni, rendeléseket leadni webáruházakban.
  • Adatbázisokhoz és elemzésekhez való hozzáférés. A természetes nyelvű kérések belső API-hívásokká vagy SQL-lekérdezésekké alakíthatók az adatok kinyeréséhez és elemzéséhez.
  • Strukturált információ kinyerése. Az LLM maga is képes tényeket kiemelni hosszú szövegekből (például neveket, dátumokat, címeket), és azokat strukturált JSON-tömb formájában visszaadni, amely kényelmesen feldolgozható programozottan.

Biztonsági problémák

A Function Calling a modellek lehetőségeit bővítve egyúttal új kockázatokat is hordoz.

  • Ellenőrizetlen kimenetek. A modell és a külső eszközök közötti interakciót gondosan védeni kell. Ha a modell az API-tól rosszindulatú vagy hibás értéket kap, azt beépítheti a válaszba, vagy egy másik függvényt hívhat meg annak alapján, ami kiszámíthatatlan következményekhez vezethet.
  • Támadások a függvényargumentumokon keresztül. A kutatók a Function Calling módhoz specifikus sebezhetőségeket fedeztek fel. 2025-ben bemutattak egy támadást, amelyet „A Function Calling sötét oldala" névvel illettek. Lényege abban áll, hogy a modellnek egy speciális „függvényt" ajánlanak fel, amelynek argumentumaiban tiltott utasítás (jailbreak-payload) rejtőzik. A modell, a függvényhívás elvét követve, szabályszegő tartalmat hordozó argumentumokat generál, és ezzel megkerüli a moderációs szűrőket. A tesztelés során a támadás több mint 90%-os sikerességet mutatott hat modern modellen, köztük a GPT-4-en és a Claude-on[2].

Az ilyen incidensek megelőzése érdekében javasolt, hogy a modell csak megbízható eszközökhöz férhessen hozzá, kritikus fontosságú műveletek végrehajtása előtt vezessenek be felhasználói megerősítést, valamint alkalmazzanak speciális „védelmi" promptokat és az argumentumok szigorú ellenőrzését veszélyes tartalom szempontjából.

Hivatkozások

  • Az OpenAI hivatalos Function Calling bejelentése
  • A Gorilla LLM projekt oldala
  • 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.

Irodalom

  • 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.

Jegyzetek

  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]