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

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

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

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

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

‫PaLM ב-Pixel 7 Pro

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

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

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

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

מה תלמדו

  • איך להשתמש ב-KerasNLP כדי לטעון מודל LLM שעבר אימון מראש (pre-trained) ולבצע כוונון עדין שלו
  • איך מבצעים קוונטיזציה של מודל LLM וממירים אותו ל-TensorFlow Lite
  • איך מריצים הסקה על מודל TensorFlow Lite שהומר

הדרישות

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

2. להגדרה

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

  1. עוברים אל מאגר GitHub של ה-Codelab הזה.
  2. לוחצים על Code > Download zip (קוד > הורדת קובץ zip) כדי להוריד את כל הקוד של ה-Codelab הזה.

תמונת מאגר

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

3. הפעלת האפליקציה לתחילת הדרך

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

הפעלה של האפליקציה וסקירת התכונות שלה

האפליקציה אמורה להיפתח במכשיר 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 Run (הפעלה) בתפריט הניווט ומחכים שהאפליקציה תיטען.
  2. מקלידים כמה מילות זרע בשדה הטקסט ומקישים על יצירה.

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

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

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

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

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

7. סיכום

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

מידע נוסף