מודלים גדולים של שפה (LLM) במכשיר עם Keras ו-TensorFlow Lite

1. לפני שמתחילים

אחת מפרצות הדרך המלהיבות ביותר בלמידת מכונה לאחרונה היא מודלים גדולים של שפה (LLM). אפשר להשתמש בהם כדי ליצור טקסט, לתרגם שפות ולענות על שאלות בצורה מקיפה ואינפורמטיבית. מודלי שפה גדולים, כמו LaMDA ו-PaLM של Google, מאומנים על כמויות עצומות של נתוני טקסט, וכך הם יכולים ללמוד את הדפוסים הסטטיסטיים ואת הקשרים בין מילים וביטויים. כך הם יכולים ליצור טקסט שדומה לטקסט שנכתב על ידי בני אדם, ולתרגם שפות ברמת דיוק גבוהה.

מודלים מסוג LLM הם גדולים מאוד מבחינת נפח אחסון, ובדרך כלל צורכים הרבה כוח מחשוב כדי לפעול. כלומר, הם בדרך כלל פרוסים בענן והם מאתגרים למדי בלמידת מכונה במכשיר (ODML) בגלל כוח חישוב מוגבל במכשירים ניידים. אבל אפשר להריץ מודלים מסוג LLM בקנה מידה קטן יותר (למשל, GPT-2) במכשיר Android מודרני ועדיין להשיג תוצאות מרשימות.

זוהי הדגמה להרצת גרסה של מודל Google PaLM עם 1.5 מיליארד פרמטרים ב-Google Pixel 7 Pro ללא האצת הפעלה.

PaLM ב-Pixel 7 Pro

ב-Codelab הזה תלמדו את הטכניקות והכלים לפיתוח אפליקציה מבוססת-LLM (באמצעות GPT-2 כמודל לדוגמה) עם:

  • KerasNLP כדי לטעון LLM שעבר אימון מראש
  • KerasNLP כדי לשפר מודל שפה גדול
  • TensorFlow Lite כדי להמיר, לבצע אופטימיזציה ולפרוס את ה-LLM ב-Android

דרישות מוקדמות

  • ידע ברמה בינונית ב-Keras וב-TensorFlow Lite
  • ידע בסיסי בפיתוח Android

מה תלמדו

  • איך להשתמש ב-KerasNLP כדי לטעון מודל שפה גדול (LLM) שעבר אימון מראש ולכוונן אותו
  • איך לכמת ולהמיר LLM ל-TensorFlow Lite
  • איך להריץ את ההסקה במודל TensorFlow Lite המומר

למה תזדקק?

  • גישה ל-Colab
  • את הגרסה האחרונה של Android Studio
  • מכשיר Android מודרני עם יותר מ-4G של RAM

2. להגדרה

כדי להוריד את הקוד ל-Codelab הזה:

  1. עוברים אל מאגר ה-GitHub של ה-Codelab הזה.
  2. לוחצים על קוד > כדי להוריד את כל הקוד ל-Codelab הזה, צריך להוריד את ה-ZIP.

תמונת מאגר

  1. מחלצים את קובץ ה-ZIP שהורדתם כדי לפתוח תיקיית בסיס מסוג examples עם כל המשאבים הדרושים.

3. הפעלת האפליקציה לתחילת פעולה

  1. ייבוא תיקייה אחת (examples/lite/examples/generative_ai/android) ל-Android Studio.
  2. מפעילים את האמולטור של Android ולוחצים על execute.png הפעלה בתפריט הניווט.

הפעלה וגילוי של האפליקציה

האפליקציה אמורה להתחיל במכשיר Android שלכם. האפליקציה נקראת 'השלמה אוטומטית'. ממשק המשתמש די פשוט: אפשר להקליד כמה מילות מקור בתיבת הטקסט ולהקיש על יצירה. לאחר מכן האפליקציה מריצים מסקנות על סמך מודל שפה גדול (LLM) ויוצרת טקסט נוסף על סמך הקלט שלכם.

אם מקישים על יצירה אחרי שמקלידים כמה מילים, לא יקרה כלום. הסיבה לכך היא שעדיין לא מופעל בו מודל שפה גדול (LLM).

צילום מסך לאפליקציה לתחילת פעולה

4. הכנת ה-LLM לפריסה במכשיר

5. השלמת האפליקציה ל-Android

עכשיו, אחרי שהמרתם את מודל GPT-2 ל-TensorFlow Lite, תוכלו סוף סוף לפרוס אותו באפליקציה.

הפעלת האפליקציה

  1. גוררים את קובץ המודל autocomplete.tflite שהורדתם מהשלב האחרון אל התיקייה app/src/main/assets/ ב-Android Studio.

הוספת מודל ל-Android Studio

  1. לוחצים על execute.png הפעלה בתפריט הניווט ומחכים עד שהאפליקציה תיטען.
  2. מקלידים כמה מילות מפתח בשדה הטקסט ומקישים על יצירה.

צילום מסך לאפליקציה הסופית

6. הערות על אתיקה של בינה מלאכותית

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

ה-Codelab הזה נוצר רק כדי להדגים איך ליצור אפליקציה שמבוססת על מודלים גדולים של שפה (LLM) בעזרת כלים של TensorFlow. המודל שמופק ב-Codelab הזה הוא למטרות לימוד בלבד ולא מיועד לשימוש בסביבת הייצור.

כדי להשתמש במודלים גדולים של שפה (LLM) צריך לבחור מערכי נתונים לאימון בצורה קפדנית ולהקטין את הסיכונים בתחום הבטיחות. למידע נוסף על האתיקה של הבינה המלאכותית בהקשר של מודלים גדולים של שפה, כדאי לצפות במפגש הטכני בנושא פיתוח בטוח ואחראי בעזרת מודלים גנרטיביים של שפה ב-Google I/O 2023, ובערכת הכלים האחראית על AI.

7. סיכום

מעולה! יצרת אפליקציה שמאפשרת ליצור טקסט עקבי על סמך קלט של משתמשים, באמצעות הרצת מודל שפה גדול (LLM) שעבר אימון מראש רק במכשיר!

מידע נוסף