Function calling (LLM) (RO)

From Systems analysis Wiki
Jump to navigation Jump to search

Function Calling (Apelarea funcțiilor) — este un mecanism în cadrul modelelor lingvistice de mari dimensiuni (LLM), care permite modelului să interacționeze cu instrumente externe și API-uri, generând date structurate (de regulă, JSON) pentru apelarea funcțiilor în loc de un răspuns textual direct[1].

Cu alte cuvinte, modelul determină, pe baza solicitării utilizatorului, ce funcție din setul propus trebuie apelată și cu ce parametri. Acest mecanism extinde domeniul de aplicare al LLM-urilor, permițându-le să servească drept interfață între limbajul natural și acțiunile practice. Aceasta deschide posibilități de integrare a inteligenței artificiale cu sisteme externe: modelul poate solicita date actualizate, poate executa operații sau poate utiliza servicii, ceea ce este deosebit de valoros la crearea asistenților inteligenți și a agenților autonomi. Utilizarea instrumentelor externe reduce, de asemenea, riscul halucinațiilor (fapte inventate) prin apelarea la surse de încredere[2].

Istorie și abordări de implementare

Abordări timpurii (prompting și Toolformer)

Ideea de a instrui modelele lingvistice să apeleze instrumente s-a conturat în anii 2022–2023. Abordările timpurii se bazau pe tehnici complexe de prompting. Astfel, în 2022 a fost propusă schema ReAct, în care modelul alterna în cadrul dialogului raționamente și acțiuni (apeluri de instrumente), codificate într-un singur text.

Un pas esențial l-a constituit apariția modelului Toolformer, prezentat de cercetătorii Meta la începutul anului 2023. Toolformer a demonstrat că LLM-urile pot fi special fine-tuned pentru a apela în mod autonom instrumente externe (calculator, motor de căutare, calendar) pe baza indiciilor textuale, inserând în textul generat token-uri speciale de apel API[3].

Suport oficial și dezvoltare

O etapă importantă a fost marcată de compania OpenAI, care în iunie 2023 a introdus oficial suportul pentru Function Calling în API-urile sale pentru modelele GPT-3.5 și GPT-4[4]. Noile versiuni ale modelelor au fost fine-tuned să recunoască situațiile în care solicitarea utilizatorului implică apelarea unei funcții externe și să genereze un obiect JSON precis structurat cu argumente. OpenAI a denumit această capabilitate „o nouă modalitate de a conecta în mod fiabil GPT cu instrumente și API-uri externe".

Inițiative open-source

În urma implementărilor comerciale au apărut modele open-source, fine-tuned pentru generarea corectă a apelurilor de funcții.

  • Gorilla: Proiect al UC Berkeley, o versiune fine-tuned a LLaMA, capabilă să genereze apeluri către mii de API-uri diferite. Pentru evaluarea unor astfel de modele a fost creat benchmark-ul Berkeley Function-Calling Leaderboard[5].
  • ToolAlpaca, ToolLLaMA, Hermes: Serii de modele open-source fine-tuned pe exemple sintetice de apeluri de funcții, adesea generate de modele mai puternice.

Mecanismul de funcționare

Procesul de utilizare a Function Calling include, de regulă, mai mulți pași:

  1. Definirea funcțiilor. Dezvoltatorul definește în prealabil un set de funcții disponibile pentru model (de exemplu, API-uri externe) și descrie semnăturile și scopul acestora, de regulă în format JSON Schema.
  2. Analiza solicitării. În cursul dialogului, modelul analizează intenția utilizatorului și decide în mod independent dacă este necesară apelarea uneia dintre funcțiile definite pentru a răspunde.
  3. Generarea apelului. Dacă este necesară o acțiune, LLM generează, în loc de text obișnuit, o ieșire structurată specială (de exemplu, JSON cu numele funcției și argumentele). Dacă apelul nu este necesar, modelul returnează un răspuns textual obișnuit.
  4. Execuția funcției. Programul extern (mediul chatbot-ului sau agentul) primește JSON-ul, execută apelul real al funcției indicate cu parametrii propuși și transmite rezultatul înapoi modelului.
  5. Formularea răspunsului final. Modelul utilizează datele obținute pentru a genera răspunsul definitiv adresat utilizatorului[4].

Pentru gestionarea acestui proces în mai mulți pași, în cadrul antrenării modelelor se utilizează formate speciale de dialog, de exemplu, marcajul ChatML de la OpenAI, care introduce, pe lângă rolurile „utilizator" și „asistent", rolul „funcție" pentru transmiterea rezultatelor apelurilor.

Aplicații și avantaje

Posibilitatea de a apela funcții extinde considerabil spectrul de sarcini rezolvabile cu ajutorul LLM-urilor.

  • Integrare cu API-uri externe. Modelul poate răspunde la solicitări care necesită informații actualizate, apelând servicii externe (de exemplu, pentru obținerea datelor meteo, cursurilor valutare, știrilor).
  • Automatizarea acțiunilor utilizatorului. LLM-ul poate executa sarcini de rutină: trimiterea de e-mailuri, crearea de evenimente în calendar, plasarea de comenzi în magazine online.
  • Acces la baze de date și analiză. Solicitările în limbaj natural pot fi traduse în apeluri de API-uri interne sau interogări SQL pentru extragerea și analiza datelor.
  • Extragerea informațiilor structurate. LLM-ul poate extrage singur fapte dintr-un text lung (de exemplu, nume, date, adrese) și le poate returna sub forma unui array JSON structurat, convenabil pentru procesarea programatică ulterioară.

Probleme de securitate

Extinzând capacitățile modelelor, Function Calling aduce în același timp noi riscuri.

  • Rezultate neverificate. Interacțiunea modelului cu instrumente externe trebuie protejată cu atenție. Dacă modelul primește de la un API o valoare malițioasă sau eronată, o poate include în răspuns sau poate apela o altă funcție pe baza acesteia, ceea ce va conduce la consecințe imprevizibile.
  • Atacuri prin argumentele funcțiilor. Cercetătorii au descoperit vulnerabilități specifice modului Function Calling. În 2025 a fost demonstrat un atac denumit „Latura întunecată a Function Calling". Esența sa constă în propunerea modelului a unei „funcții" speciale, în interiorul argumentelor căreia se ascunde o instrucțiune interzisă (jailbreak payload). Modelul, urmând principiul apelării funcției, generează argumente care conțin conținut ce încalcă regulile, eludând astfel filtrele de moderare. Testele au arătat succesul atacului în peste 90% din cazuri pe șase modele contemporane, inclusiv GPT-4 și Claude[2].

Pentru prevenirea unor astfel de incidente se recomandă furnizarea modelului doar a instrumentelor de încredere, implementarea confirmării din partea utilizatorului înainte de executarea acțiunilor critice, precum și utilizarea unor prompt-uri speciale „defensive" și verificarea strictă a argumentelor pentru conținut periculos.

Referințe

  • Anunțul oficial Function Calling de la OpenAI
  • Pagina proiectului 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.

Bibliografie

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

Note

  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]