Function calling (LLM) (HE)

From Systems analysis Wiki
Jump to navigation Jump to search

Function Calling (קריאה לפונקציות) — מנגנון במודלים שפתיים גדולים (LLM) המאפשר למודל לתקשר עם כלים חיצוניים ו-API על ידי יצירת נתונים מובנים (בדרך כלל JSON) לצורך קריאה לפונקציות, במקום מתן תשובה טקסטואלית ישירה[1].

במילים אחרות, המודל על בסיס פניית המשתמש קובע איזו פונקציה מתוך הקבוצה המוצעת יש לקרוא ועם אילו פרמטרים. מנגנון זה מרחיב את תחומי השימוש של LLM, ומאפשר להם לשמש כממשק בין שפה טבעית לפעולות מעשיות. הדבר פותח אפשרויות לשילוב AI עם מערכות חיצוניות: המודל יכול לשאול נתונים עדכניים, לבצע פעולות או להשתמש בשירותים, וזה בעל ערך מיוחד בעת יצירת עוזרים אינטליגנטיים וסוכנים אוטונומיים. שימוש בכלים חיצוניים גם מפחית את הסיכון להזיות (עובדות מומצאות) הודות לפנייה למקורות מהימנים[2].

היסטוריה וגישות למימוש

גישות מוקדמות (prompting ו-Toolformer)

הרעיון ללמד מודלים שפתיים לקרוא לכלים התגבש בשנים 2022–2023. גישות מוקדמות התבססו על טכנולוגיות prompting מורכב. כך, בשנת 2022 הוצעה הסכמה ReAct, שבה המודל במהלך הדיאלוג סירוג בין חשיבה לפעולה (קריאות לכלים), מקודדות בטקסט אחד.

צעד מפתח היה הופעת המודל Toolformer, שהוצג על ידי חוקרי Meta בתחילת 2023. Toolformer הדגים שניתן לכוונן-עדין LLM ספציפית כדי לקרוא באופן עצמאי לכלים חיצוניים (מחשבון, מנוע חיפוש, לוח שנה) על פי רמזים טקסטואליים, על ידי הכנסת token מיוחדים לקריאת API לתוך הטקסט המיוצר[3].

תמיכה רשמית ופיתוח

ציון דרך מיוחד סימנה חברת OpenAI, שביוני 2023 הטמיעה רשמית תמיכה ב-Function Calling ב-API שלה עבור מודלים GPT-3.5 ו-GPT-4[4]. גרסאות חדשות של המודלים עברו כוונון-עדין לזהות מצבים שבהם פניית המשתמש מרמזת על פנייה לפונקציה חיצונית, וליצור אובייקט JSON מובנה במדויק עם הארגומנטים. OpenAI כינתה יכולת זו "דרך חדשה לחבר GPT בצורה אמינה עם כלים ו-API חיצוניים".

יוזמות פתוחות

בעקבות מימושים מסחריים הופיעו מודלים פתוחים שעברו כוונון-עדין ליצירת קריאות פונקציות תקינות.

  • Gorilla: פרויקט של UC Berkeley, גרסה מכווננת של LLaMA, המסוגלת ליצור קריאות לאלפי API שונים. להערכת מודלים כאלה נוצר ה-benchmark Berkeley Function-Calling Leaderboard[5].
  • ToolAlpaca, ToolLLaMA, Hermes: סדרות של מודלים פתוחים שעברו כוונון-עדין על דוגמאות סינתטיות של קריאות פונקציות, שנוצרו לעיתים קרובות על ידי מודלים חזקים יותר.

מנגנון הפעולה

תהליך השימוש ב-Function Calling כולל בדרך כלל מספר שלבים:

  1. הגדרת פונקציות. המפתח מגדיר מראש קבוצת פונקציות זמינות למודל (למשל, API חיצוניים) ומתאר את ה-signatures ומטרתן, בדרך כלל בפורמט JSON Schema.
  2. ניתוח הפנייה. במהלך הדיאלוג המודל מנתח את כוונת המשתמש ומחליט באופן עצמאי האם לענות יש לקרוא לאחת הפונקציות המוגדרות.
  3. יצירת קריאה. אם נדרשת פעולה, ה-LLM במקום טקסט רגיל מייצר פלט מובנה מיוחד (למשל, JSON עם שם הפונקציה והארגומנטים). אם קריאה אינה נדרשת, המודל מחזיר תשובה טקסטואלית רגילה.
  4. הרצת הפונקציה. התוכנית החיצונית (מעטפת ה-chatbot או הסוכן) מקבלת את ה-JSON, מבצעת את הקריאה האמיתית לפונקציה המצוינת עם הפרמטרים המוצעים ומעבירה את התוצאה חזרה למודל.
  5. יצירת התשובה הסופית. המודל משתמש בנתונים שהתקבלו ליצירת התשובה הסופית למשתמש[4].

לניהול תהליך רב-שלבי זה במהלך אימון המודלים משתמשים בפורמטי דיאלוג מיוחדים, למשל, סימון ChatML של OpenAI, שבו בנוסף לתפקידי "משתמש" ו"עוזר" מוכנס תפקיד "פונקציה" להעברת תוצאות הקריאות.

שימושים ויתרונות

יכולת קריאה לפונקציות מרחיבה באופן ניכר את מגוון המשימות הניתנות לפתרון בעזרת LLM.

  • שילוב עם API חיצוניים. המודל יכול לענות על פניות הדורשות מידע עדכני על ידי קריאה לשירותים חיצוניים (למשל, לקבלת תחזית מזג אוויר, שערי מטבע, חדשות).
  • אוטומציה של פעולות המשתמש. LLM יכול לבצע משימות שגרתיות: שליחת דואר אלקטרוני, יצירת אירועים בלוח שנה, ביצוע הזמנות בחנויות מקוונות.
  • גישה למסדי נתונים ואנליטיקה. פניות בשפה טבעית יכולות להיות מתורגמות לקריאות API פנימיות או שאילתות SQL לחילוץ וניתוח נתונים.
  • חילוץ מידע מובנה. LLM יכול בעצמו לחלץ עובדות מטקסט ארוך (למשל, שמות, תאריכים, כתובות) ולהחזיר אותן כמערך JSON מובנה, נוח לעיבוד תכנותי מאוחר יותר.

בעיות אבטחה

בהרחבת יכולות המודלים, 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]