תאריך פרסום: 13 בינואר 2024
זהו החלק הראשון בסדרה בת שלושה חלקים בנושא מודלים שפועלים ברמת הטקסט (LLM) ו-chatbots. חלק 2 בנושא יצירת צ'אטבוט באמצעות WebLLM וחלק 3 בנושא שימוש ב-Prompt API כבר זמינים.
מודלים גדולים של שפה (LLM) הופכים לרכיב חשוב בפיתוח תוכנה: מודלים כאלה מתאימים מאוד ליצירה ולעיבוד של טקסט בשפה טבעית, ומאפשרים ליישם תרחישי שימוש כמו חילוץ נתונים, סיכום או יצירת דיאלוגים עם נתוני משתמשים.
בסדרה הזו אסביר על היתרונות והחסרונות של מודלים גדולים של שפה (LLM) במכשיר, ואראה איך מוסיפים יכולות של צ'אטבוט לאפליקציה קיימת באמצעות שתי גישות מקומיות שפועלות גם במצב אופליין: WebLLM – סביבת זמן ריצה של LLM מבוססת-אינטרנט, ו-Prompt API הניסיוני של Chrome.
תרחישים לדוגמה
נבנה צ'אטבוט על גבי אפליקציה קלאסית של רשימת משימות. קוד המקור של כל שלב זמין ב-GitHub. המשתמשים יכולים להוסיף משימות חדשות, לסמן אותן כ'בוצעה' ולמחוק אותן.
כדאי להוסיף תכונה שמאפשרת למשתמשים לקבל מידע נוסף על הנתונים של רשימת המשימות או לבצע פונקציות נוספות. התכונה של צ'אטבוט יכולה לאפשר למשתמשים:
- לברר מה מספר המשימות הפתוחות.
- לזהות משימות כפולות או משימות דומות מאוד.
- לסווג את המשימות לקבוצות.
- לקבל המלצות למשימות חדשות על סמך משימות שהושלמו.
- לתרגם משימות לשפות שונות.
- מייצאים את רשימת המשימות בפורמט XML.
אלה רק כמה דוגמאות למשימות שמודלים של שפה גדולה יכולים לבצע.
מהם מודלים גדולים של שפה?
מודלים של שפה גדולה הם רשתות נוירונים מלאכותיות שמעבדות ויוצרות טקסט בשפה טבעית. רוב ה-LLMs הנוכחיים מבוססים על ארכיטקטורת הטרנספורמר שפותחה ב-Google. דוגמאות למודלים כאלה הן המודלים Gemini ו-Gemma של Google, סדרת המודלים GPT של OpenAI ומודלים בקוד פתוח, כמו LLaMa של Meta AI ו-Mistral של Mistral AI.
בזכות האימון שלהם על כמויות אדירות של נתונים, למודלים מסוג LLM יש מגוון רחב של יכולות. הם מבינים שפות רבות, יודעים טריוויה, יכולים לתרגם בין שפות או ליצור קוד תכנות. ההיקף של היכולות האלה עשוי להשתנות באופן משמעותי בהתאם לגודל המודל, כפי שמתואר בקטע הסבר על הגדלים של LLM.
מודלים גדולים של שפה מובילים לשינוי פרדיגמה בארכיטקטורת התוכנה, כי שפה טבעית הופכת עכשיו לתכונה מרכזית בהנדסת תוכנה. במקום להפעיל ממשקי API באמצעות ממשקים מוגדרים היטב, מספיק להביע את הכוונה בשפה טבעית בהנחיה שנקראת 'הנחיה'.
המגבלות של מודלים גדולים של שפה (LLM)
ל-LLM יש גם מגבלות מסוימות:
- התנהגות לא דטרמיניסטית: מודלים גדולים של שפה (LLMs) יכולים לספק תשובות שונות, ולפעמים גם סותרות, לאותה הנחיה, כי הפלט שלהם תלוי במודלים סטטיסטיים ולא בכללים קבועים.
- תגובות לא תואמות נתונים: לפעמים המודלים האלה עשויים ליצור מידע שגוי או לא הגיוני, על סמך דפוסים שנלמדו ולא על סמך דיוק עובדתי.
- הזרקות של הנחיות: מודלים של LLM עלולים להיות חשופים להתקפות הזרקה של הנחיות, שבהן משתמשים יוצרים הנחיות קלט שמאפשרות להם לשנות את המודל כך שיחרוג מהפונקציה המיועדת שלו או יניב תוצאות לא רצויות.
לכן, המשתמשים צריכים לאמת את התוצאות שנוצרו על ידי מודלים של LLM לפני שהם מבצעים פעולות שעלולות להשפיע על התוצאות.
כשעובדים עם LLM במכשיר, צריך להביא בחשבון את הגודל שלהם. גודל הקובץ שלהם יכול להגיע לכמה ג'יגה-בייט, וצריך להוריד אותם למכשיר של המשתמש לפני השימוש הראשון. במודלים קטנים יותר, התשובות הן בדרך כלל באיכות נמוכה יותר, במיוחד בהשוואה למודלים שמבוססים על ענן.
בחירה בפתרונות מקומיים
כשרוצים לשלב LLM באפליקציית אינטרנט, הנטייה הראשונה היא להשתמש בספק ענן. יש הרבה ספקים שמציעים LLMs איכותיים, חלקם בלעדיים לספקים ספציפיים. מודלים גדולים של שפה מבוססי-ענן מספקים מהירות הסקת מסקנות מהירה במחיר סביר, שמחושב בדרך כלל לכל אסימון מעובד.
לעומת זאת, לפתרונות מקומיים יש יתרונות משמעותיים. מכיוון שהן פועלות ישירות במכשיר של המשתמש, רשתות LLM שמתארחות באופן מקומי מספקות זמני תגובה מהימנים יותר, הן זמינות גם כשהמשתמש אופליין והמפתחים לא צריכים לשלם עליה דמי מינוי או עלויות שוטפות אחרות. חשוב לציין שהן יכולות לשפר באופן משמעותי את הבטיחות של המשתמשים. שמירת כל הפעילויות במכשיר מאפשרת לכם למנוע העברה של פרטים אישיים מזהים (PII) לספקים או לאזורים חיצוניים.
הדגמות
לפני שתלמדו איך ליצור צ'אט בוט בעצמכם, תוכלו לצפות בהדגמות המוגמרות עם יכולות של צ'אט בוט.
- אפליקציית המשימות המקורית
- אפליקציית 'משימות' עם WebLLM
- אפליקציית משימות עם Prompt API
- המקור ב-GitHub
בשלב הבא, תשתמשו ב-WebLLM כדי להוסיף צ'אטבוט לאפליקציית רשימת המשימות.