מודלים גדולים של שפה (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. הערות בנושא אתיקה של בינה מלאכותית

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

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

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

7. סיכום

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

מידע נוסף