Function calling (LLM) (TR)

From Systems analysis wiki
Jump to navigation Jump to search

Function Calling (Fonksiyon Çağırma) — büyük dil modellerinde (LLM) modelin harici araçlar ve API'lerle etkileşime girmesine olanak tanıyan; doğrudan metin yanıtı vermek yerine fonksiyonları çağırmak için yapılandırılmış veriler (genellikle JSON) üreten bir mekanizmadır[1].

Başka bir deyişle, model kullanıcının isteğine dayanarak önerilen araç kümesinden hangi fonksiyonun hangi parametrelerle çağrılması gerektiğini belirler. Bu mekanizma, LLM'lerin doğal dil ile pratik eylemler arasında bir arayüz görevi görmesine izin vererek uygulama alanlarını genişletir. Bu durum, yapay zekanın harici sistemlerle entegrasyonu için yeni olanaklar açar: model güncel verileri sorgulayabilir, işlemler gerçekleştirebilir veya hizmetlerden yararlanabilir; bu da özellikle akıllı asistanlar ve özerk ajanlar oluşturulurken büyük değer taşır. Harici araçların kullanımı, güvenilir kaynaklara başvurarak halüsinasyon (uydurulmuş olgular) riskini de azaltır[2].

Tarihçe ve Uygulama Yaklaşımları

Erken Yaklaşımlar (Prompting ve Toolformer)

Dil modellerine araç çağırmayı öğretme fikri 2022–2023 yılları arasında şekillendi. Erken yaklaşımlar karmaşık prompting teknolojilerine dayanıyordu. 2022 yılında, modelin diyalog sırasında akıl yürütme ile eylemleri (araç çağrılarını) tek bir metin içinde dönüşümlü olarak gerçekleştirdiği ReAct şeması önerildi.

Önemli bir dönüm noktası, Meta araştırmacıları tarafından 2023 yılının başında tanıtılan Toolformer modelinin ortaya çıkmasıyla yaşandı. Toolformer, LLM'lerin metin ipuçlarıyla harici araçları (hesap makinesi, arama motoru, takvim) bağımsız olarak çağırabilmesi ve üretilen metne özel API çağrı token'ları ekleyebilmesi için özel olarak ince ayar yapılabileceğini gösterdi[3].

Resmi Destek ve Gelişim

Önemli bir kilometre taşı, OpenAI'nin Haziran 2023'te GPT-3.5 ve GPT-4 modelleri için API'larında Function Calling desteğini resmi olarak hayata geçirmesiyle gerçekleşti[4]. Modellerin yeni sürümleri, kullanıcı isteğinin harici bir fonksiyona başvurmayı ima ettiği durumları tanıyacak ve argümanları içeren tam yapılandırılmış bir JSON nesnesi üretecek şekilde ince ayar yapılarak eğitildi. OpenAI bu özelliği "GPT'yi harici araçlar ve API'lerle güvenilir biçimde bağlamanın yeni bir yolu" olarak nitelendirdi.

Açık Kaynak Girişimleri

Ticari uygulamaların ardından, doğru fonksiyon çağrıları üretmek üzere ince ayar yapılmış açık kaynak modeller ortaya çıktı.

  • Gorilla: UC Berkeley projesi; binlerce farklı API'ye çağrı oluşturabilen, LLaMA'nın ince ayarlı bir versiyonu. Bu tür modelleri değerlendirmek amacıyla Berkeley Function-Calling Leaderboard benchmark'ı oluşturuldu[5].
  • ToolAlpaca, ToolLLaMA, Hermes: Çoğunlukla daha güçlü modeller tarafından üretilen sentetik fonksiyon çağrısı örnekleri üzerinde ince ayar yapılmış açık kaynak model serileri.

Çalışma Mekanizması

Function Calling kullanım süreci genellikle birkaç adımı kapsar:

  1. Fonksiyonların tanımlanması. Geliştirici, model için kullanılabilecek fonksiyon kümesini (örneğin harici API'ler) önceden tanımlar ve bunların imzalarını ile amaçlarını genellikle JSON Schema formatında açıklar.
  2. İsteğin analizi. Diyalog sırasında model, kullanıcının niyetini analiz eder ve yanıt vermek için tanımlı fonksiyonlardan birini çağırıp çağırmama kararını bağımsız olarak verir.
  3. Çağrının üretilmesi. Bir eylem gerekiyorsa LLM, normal metin yerine özel bir yapılandırılmış çıktı (örneğin fonksiyon adı ve argümanlarını içeren JSON) üretir. Çağrı gerekmiyorsa model normal bir metin yanıtı döndürür.
  4. Fonksiyonun çalıştırılması. Harici program (sohbet botu kabuğu veya ajan) JSON'ı alır, önerilen parametrelerle belirtilen fonksiyonu gerçek anlamda çalıştırır ve sonucu modele geri iletir.
  5. Nihai yanıtın oluşturulması. Model, elde ettiği verileri kullanarak kullanıcıya yönelik nihai yanıtı üretir[4].

Bu çok adımlı süreci yönetmek için model eğitimi sırasında özel diyalog formatları kullanılır; örneğin OpenAI'nin ChatML biçimlendirmesinde "kullanıcı" ve "asistan" rollerine ek olarak çağrı sonuçlarını iletmek için "fonksiyon" rolü de tanımlanmıştır.

Kullanım Alanları ve Avantajları

Fonksiyon çağırma yeteneği, LLM'lerle çözülebilecek görev yelpazesini önemli ölçüde genişletir.

  • Harici API'lerle entegrasyon. Model, güncel bilgi gerektiren isteklere yanıt verirken harici hizmetleri çağırabilir (örneğin hava durumu, döviz kurları, haberler almak için).
  • Kullanıcı eylemlerinin otomasyonu. LLM, rutin görevleri yerine getirebilir: e-posta gönderme, takvimde etkinlik oluşturma, çevrimiçi mağazalarda sipariş verme.
  • Veritabanı ve analitik erişimi. Doğal dil sorguları, veri çıkarmak ve analiz etmek için dahili API çağrılarına veya SQL sorgularına dönüştürülebilir.
  • Yapılandırılmış bilgi çıkarımı. LLM, uzun bir metinden olguları (örneğin isimler, tarihler, adresler) kendisi ayıklayabilir ve bunları sonraki programatik işleme için uygun yapılandırılmış bir JSON dizisi olarak döndürebilir.

Güvenlik Sorunları

Function Calling, modellerin yeteneklerini genişletirken beraberinde yeni riskler de getirir.

  • Doğrulanmamış çıktılar. Modelin harici araçlarla etkileşimi titizlikle korunmalıdır. Model bir API'den zararlı veya hatalı bir değer alırsa bunu yanıta dahil edebilir ya da buna dayanarak başka bir fonksiyon çağırabilir; bu da öngörülemeyen sonuçlara yol açabilir.
  • Fonksiyon argümanları üzerinden saldırılar. Araştırmacılar, Function Calling moduna özgü güvenlik açıkları keşfetti. 2025 yılında "Function Calling'in Karanlık Yüzü" olarak adlandırılan bir saldırı gösterildi. Bu saldırının özü, modele özel bir "fonksiyon" sunmaktır; bu fonksiyonun argümanlarının içinde yasaklı bir talimat (jailbreak payload) gizlidir. Model, fonksiyon çağırma ilkesine uyarak kural ihlali içeren bir içeriğe sahip argümanlar üretir ve böylece moderasyon filtrelerini aşar. Testler, saldırının GPT-4 ve Claude dahil altı güncel modelde %90'ın üzerinde başarı oranı gösterdiğini ortaya koydu[2].

Bu tür olayları önlemek için modele yalnızca güvenilir araçların sağlanması, kritik eylemler gerçekleştirilmeden önce kullanıcı onayının alınması ve özel "savunma amaçlı" prompt'ların ile argümanlar üzerinde tehlikeli içerik için sıkı denetimlerin uygulanması önerilmektedir.

Literatür

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

Kaynakça

  • OpenAI'nin resmi Function Calling duyurusu
  • Gorilla LLM proje sayfası
  • 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.

Notlar

  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]