Toolformer (HE)

From Systems analysis Wiki
Jump to navigation Jump to search

Toolformer — זוהי גישה ליצירת מודלים לשוניים גדולים (LLM), המאפשרת להם להשתמש באופן עצמאי בכלים חיצוניים באמצעות קריאות API[1]. שיטה זו הוצעה בשנת 2023 על ידי קבוצת חוקרים מ-Meta AI Research בשיתוף עם אוניברסיטת פומפאו פברה (ספרד). במאמרם «Toolformer: Language Models Can Teach Themselves to Use Tools» (Timo Schick et al., 2023) מציינים המחברים פרדוקס: LLM מודרניים מפגינים יכולות מרשימות בפתרון משימות חדשות ומורכבות על בסיס דוגמאות טקסטואליות, אך לעיתים קרובות אינם מסוגלים לבצע בצורה אמינה פעולות בסיסיות — כגון ספירה או חיפוש עובדות[1]. כדי להתגבר על מגבלות אלו, פיתחה הצוות את מודל Toolformer, אשר מתאמן בעצמו לבחור ולהפעיל כלים חיצוניים (כגון מנועי חיפוש, מחשבונים או שירותי תרגום) לשיפור איכות ביצוע משימות מגוונות[1]. בפברואר 2023 הוצג מודל זה כ-preprint ב-arXiv, ומאוחר יותר זכה להכרה והתקבל לכנס NeurIPS 2023[2].

הרעיון המרכזי ויכולות המודל

Toolformer הוא מודל לשוני שעבר fine-tuning, המסוגל להחליט איזה כלי להפעיל, מתי בדיוק להפעילו, אילו פרמטרים להעביר, וכיצד לשלב את התוצאה המתקבלת בטקסט הנוצר[3]. האימון מאורגן במצב self-supervised — המודל בעצמו מייצר ומעריך דוגמאות לשימוש ב-API, ומצריך רק מספר קטן של הדגמות (ממש כמה דוגמאות) עבור כל כלי[3]. בשונה מגישות קודמות, אין צורך בתיוגים נרחבים או בתבניות הנשענות על מאמץ אנושי לשם שילוב הכלים; המודל לומד בעצמו מתי וכיצד להשתמש ב-API כזה או אחר, תוך שמירה על יכולות לשוניות כלליות ומבלי להגביל את עצמו למשימות מוגדרות בצמצום[1].

המחברים שילבו ב-Toolformer מגוון רחב של כלים הנגישים דרך קריאות API פשוטות. בגרסה הניסויית שולבו הכלים הבאים[3]:

  • מחשבון – לביצוע חישובים אריתמטיים.
  • מערכת שאלות-תשובות (Q&A) – לחיפוש תשובות לשאלות עובדתיות ממאגר ידע.
  • מנועי חיפוש (2 שונים) – לחיפוש מידע עדכני באינטרנט.
  • מערכת תרגום מכונה – לתרגום טקסטים בין שפות.
  • לוח שנה – לקבלת מידע על תאריכים ושעות.

כל כלי מיוצג בפורמט של קטע טקסט (תווית טקסטואלית מיוחדת), המאפשרת למודל לשלב קריאת API ישירות בתוך הטקסט שהוא מייצר[4]. לדוגמה, המודל יכול להכניס מבנה מסוג `[Calculator(...)]` או `[Search("שאילתה")]` לתוך ההקשר הנוכחי, לאותת על הצורך בפנייה חיצונית. במהלך יצירת התשובה, Toolformer מייצר סמל מיוחד (חץ →), שבאמצעותו המערכת מפסיקה את היצירה ומבצעת את קריאת ה-API המתאימה; התוצאה המתקבלת מוכנסת לתוך הטקסט, ולאחר מכן ממשיכה יצירת הקטע הבא[4]. מנגנון זה מאפשר למודל לגייס באופן דינמי את יכולות השירותים החיצוניים, תוך הישארות כמודול לשוני אחד מבלי לשנות את הארכיטקטורה.

אימון המודל (מתודולוגיה)

המפתחים תיארו את תהליך אימון Toolformer בכמה שלבים[4], תוך שימוש בטכניקת in-context learning לצורך יצירת נתונים סינתטיים[1]:

  1. יצירת מועמדים לקריאות API. תחילה נלקחים טקסטים ממאגר גדול (כגון מאמרים או דפי אינטרנט), ובהם מוכנסות באופן מלאכותי קריאות כלים שעשויות לסייע בהמשך או בהשלמת הטקסט. מודל מייצר הכנסות אלו בעצמו באמצעות N-shot prompting, בהסתמך על מספר קטן של דוגמאות שימוש שהוגדרו ידנית עבור כל API[1]. לדוגמה, המודל עשוי לקבל קטע: «בשנת 2024 מנה אוכלוסיית העיר [QA("מהו מספר תושבי העיר?") → ...] נפשות», כאשר QA( ) הוא קריאה למערכת שאלות-תשובות שאמורה להחזיר את הנתון החסר. עבור כל כלי נבחרים הקשרים מתאימים; כך, עבור המחשבון בוחר המודל משפטים המכילים מספר מספרים ומילים כגון «שווה» או «סך הכול»[4] — שם אכן יהיה צורך בתוצאה אריתמטית.
  2. ביצוע קריאות API והשלמת הנתונים. לאחר מכן כל קריאות ה-API שנוצרו על ידי המודל מבוצעות בפועל — לדוגמה, נשלחות שאילתות למנוע חיפוש או מחושבים ביטויים במחשבון. התשובות המתקבלות מוכנסות חזרה לתוך הטקסטים, ויוצרות גרסאות משפטים מושלמות עם הכנסות מסוג `{תשובה}`[4][4]. במקביל נשמרים גם הגרסאות ה«ריקות» (ללא הכנסת תשובה), וכן הטקסטים המקוריים ללא כל קריאות — לצורך השוואה עתידית.
  3. סינון והערכה עצמית של שימושיות. בשלב זה Toolformer מעריך באופן עצמאי אילו מהכנסות ה-API שנוצרו אכן שימושיות לחיזוי המשך הטקסט[4]. מתבצעת השוואה של הסתברות המודל הלשוני להמשיך את הטקסט בשלושה תרחישים: (א) ללא כל קריאה, (ב) עם קריאת הכלי אך ללא תוצאה מוכנסת, (ג) עם קריאה ועם תוצאה מוכנסת[4]. אם הוספת תשובת ה-API הספציפית מגדילה את הסתברות המודל להמשך נכון של המשפט (כלומר, אכן מסייעת למודל לחזות את המילים הבאות), אזי דוגמה זו נחשבת שימושית. רק הכנסות המניבות רווח בהסתברות נשארות בסדרת הנתונים. כך מסוננים המקרים בהם קריאת הכלי הייתה מיותרת או לא הוסיפה מידע חדש. לבסוף, המודל עובר fine-tuning על הסדרה המסוננת שהתקבלה, המכילה דוגמאות אמיתיות של טקסט עם קריאות API שהוכנסו באופן אופטימלי[1]. האימון מתבצע לפי מטרת מודל לשוני סטנדרטית — לחזות את ה-token הבא ברצף, כולל ה-tokens המייצגים את תוצאות קריאות הכלים.

חשוב להדגיש כי להטמעת כל כלי חדש נדרשו רק מספר דוגמאות ידניות לשימושו — מכאן הלאה יצירת נתוני האימון התנהלה אוטומטית[3]. הודות לכך, גישת Toolformer אינה תלויה כמעט כלל בקיומם של מאגרים מסומנים מיוחדים וממזערת את עלויות תיוג הנתונים. המודל לומד בעצמו את הפורמט ואת ההתאמה של קריאות ה-API, ושומר על אוניברסליותו: הוא משתמש בכלים רק כאשר הדבר אכן נחוץ לפתרון המשימה הנתונה[1].

תוצאות ניסויות

לצורך בדיקה ניסויית של השיטה, לקחו החוקרים מודל לשוני קיים — GPT-J (6.7 מיליארד פרמטרים) — LLM פתוח שאומן על מאגר The Pile[4]. מודל זה עבר fine-tuning לפי ההליך המתואר, ויצר את Toolformer המבוסס על GPT-J. ביצועי הגישה החדשה הוערכו במצב zero-shot (ללא דוגמאות) על מספר משימות סטנדרטיות, כולל פתרון מתמטי של בעיות מילוליות, חיפוש עובדות ומענה על שאלות ידע (QA), כמו גם תרגום ומילוי חסרים בטקסט. כנתוני בדיקה שימשו, לדוגמה, מאגרי השאלות הפתוחים Natural Questions, TriviaQA (להערכת ידע עובדתי) ומאגרי המשימות ASDiv, MAWPS, SVAMP (בעיות מילוליות מתמטיות באריתמטיקה), כמו גם benchmark-ים רב-לשוניים MLQA, LAMA[5].

התוצאות הראו כי Toolformer עולה בהרבה על המודל המקורי באותו גודל במשימות רבות[1]. יתרה מזאת, הודות לחיבור הכלים, מודל קטן יחסית (6.7 מיליארד פרמטרים) הצליח במדדים מסוימים לעלות על מודל GPT-3 הגדול הרבה יותר (175 מיליארד פרמטרים)[1][6]. לדוגמה, בבעיות מילוליות מתמטיות הדורשות חישובים מדויקים, Toolformer הפגין התקדמות בולטת במיוחד בהשוואה ל-LLM רגילים, פותר משימות כאלו בדיוק הודות למחשבון, בעוד שאפילו GPT-3 טעה[1]. במבחני שאלות עובדתיות (QA), Toolformer המבוסס על GPT-J הפגין גם כן איכות תשובה דומה או טובה יותר מזו של GPT-3, מכיוון שיכול היה לבצע חיפוש באינטרנט עבור מידע עדכני[1]. יחד עם זאת, חשוב לציין כי הגישה החדשה לא פגעה ביכולות הכלליות של המודל הלשוני, כגון המשך קוהרנטי של טקסט על נתונים רגילים: Toolformer שמר על רמת יצירת השפה הטבעית ללא כלים ברמה של GPT-J המקורי[3]. במילים אחרות, הוספת פונקציונליות קריאת API לא «גזלה» מהמודל את כישוריו הבסיסיים, אלא הרחיבה אותם ביכולות נוספות.

חשיבות העבודה ומחקרים המשך

פיתוח Toolformer הדגים את האפשרות העקרונית לאמן מודל להשתמש בכלים חיצוניים כמעט ללא תיוג ידני, הודות ליצירת נתונים סינתטיים והערכה עצמית של שימושיות. הישג זה פותח דרך למודלים לשוניים גדולים יעילים ואמינים יותר: במקום הגדלת מיליארדי פרמטרים לצורך שינון עובדות או כללים מתמטיים, מודל קומפקטי יחסית יכול לגייס באופן דינמי משאבים חיצוניים (מאגרי ידע, מחשבונים, שירותים) כדי להשלים את פערי הידע שלו[1]. גישה כזו מאפשרת להפחית את מספר ה«הזיות» (כאשר המודל ממציא מידע שאינו קיים), לשפר את דיוק התשובות ועדכניות הידע מבלי לעבד מחדש את המודל כולו. למעשה, Toolformer משיג «את המיטב משני העולמות» — משלב את הכישורים הלשוניים של מודל גדול עם הדיוק של כלים ממוקדים[3].

עבודת Schick ועמיתיו הייתה מהראשונות שהדגימו רכישה עצמאית של API חיצוניים על ידי LLM, ועוררה עניין רב בקהילה. הופיעו מחקרי המשך הפיתוח רעיון זה. לדוגמה, בשנת 2023 הוצע מודל Graph-ToolFormer, המתאים את עקרונות Toolformer לעבודה עם נתוני גרף. תוך הסתמכות על רמזים שנוצרו על ידי ChatGPT, Graph-ToolFormer מלמד מודל לשוני לקרוא לכלים חיצוניים לצורך פתרון משימות של ניתוח גרפים (לדוגמה, קבלת מאפייני גרף, עבודה עם רשתות ידע וכו')[7]. פיתוח בולט נוסף הוא מודל Gorilla (Univ. of California, Berkeley, 2023), המתמקד בשימוש מדויק במגוון רחב של API של צד שלישי[8]. Gorilla הוא מודל LLaMA שעבר fine-tuning על מאגר נרחב של פונקציות מתועדות; הוא מסוגל לייצר קריאות API נכונות לפי תיאור משימה, ועשה זאת בהצלחה כה רבה שבניסויים עלה אפילו על GPT-4 בדיוק יצירת קריאות לספריות ושירותים[8]. ב-Gorilla מומשה אינטגרציה עם מנגנון חיפוש בתיעוד, המאפשרת עדכון מידע על שינויים ב-API ומפחיתה משמעותית שגיאות והזיות בעת שימוש בכלים[8]. עבודות אלו מאשרות את חשיבות הכיוון שנפתח על ידי Toolformer: שילוב LLM עם כלים חיצוניים נתפס כנתיב מבטיח ליצירת מערכות AI חזקות ואמינות יותר.

מצוין כי רעיון שילוב כלים במודלים לשוניים מתפתח לא רק במחקר אלא גם בתעשייה. כך, במרץ 2023 הציגה חברת OpenAI את מערכת הפלאגינים של ChatGPT — ממשק מיוחד המאפשר לחבר את המודל לשירותים חיצוניים (דפדפן אינטרנט, מאגרי ידע, מנועי חישוב ועוד) לקבלת מידע עדכני וביצוע חישובים[9]. משתמשים דרשו פונקציונליות כזו מזה זמן רב, והופעת הפלאגינים מממשת בפועל קונספציה דומה ל-Toolformer: המודל מועשר ב«כלים» להרחבת יכולותיו בפתרון בקשות משתמש מגוונות[9]. כך, Toolformer משתלב במגמה הכללית של פיתוח AI, שבה מודלים לשוניים גדולים הופכים לפלטפורמה המסוגלת לפי בקשה לגייס ידע וחישובים חיצוניים. המחקר שנערך על ידי צוות Meta AI ו-UPF הניח יסוד חשוב לכיוון זה, והראה כיצד LLM יכולים ללמוד לעבוד עם כלים כמעט ללא הדרכה ידנית, ובכך להתקרב לעוזר אינטלקטואלי אוניברסלי ובטוח יותר[1][3].

קישורים

  • המאמר המקורי «Toolformer: Language Models Can Teach Themselves to Use Tools» ב-arXiv
  • סקירת Toolformer ב-Synced Review
  • דף Toolformer ב-OpenReview
  • סקירת Toolformer ב-Medium
  • מאמר על מודל Gorilla ב-arXiv
  • דף פלאגיני ChatGPT באתר OpenAI

ספרות

  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS 2023. OpenReview.
  • Li, M. et al. (2023). API-Bank: A Comprehensive Benchmark for Tool-Augmented LLMs. arXiv:2304.08244.
  • Zhang, T. et al. (2023). Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT. arXiv:2304.11116.
  • Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
  • Qin, Y. et al. (2023). ToolLLM: Facilitating Large Language Models to Master 16 000+ Real-World APIs. arXiv:2307.16789.
  • Li, Y. et al. (2024). Tool Learning with Large Language Models: A Survey. arXiv:2405.17935.
  • OpenAI (2023). ChatGPT Plugins. OpenAI Blog.
  • Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Schick, T. et al. (2023). Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools. Synced Review.

הערות

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 Schick, T. et al. «Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools». Synced. [1]
  2. Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». OpenReview. [2]
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv. [3]
  4. 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 OXEN AI. «Arxiv Dives Toolformer: Language models can teach themselves to use tools». Medium. [4]
  5. «Toolformer: Language Models Can Teach Themselves to Use Tools». Papers With Code. [5]
  6. Brown, Tom B. et al. «Language Models are Few-Shot Learners». arXiv. [6]
  7. Zhang, Tingkai et al. «Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT». arXiv. [7]
  8. 8.0 8.1 8.2 Patil, Shishir G. et al. «Gorilla: Large Language Model Connected with Massive APIs». arXiv. [8]
  9. 9.0 9.1 «ChatGPT plugins». OpenAI. [9]