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

מודלים גדולים של שפה במכשיר באמצעות Keras ו-TensorFlow Lite

מידע על Codelab זה

subjectהעדכון האחרון: אוג׳ 29, 2024
account_circleנכתב על ידי Wei Wei

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

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

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

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

‫PaLM ב-Pixel 7 Pro

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

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

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

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

מה תלמדו

  • איך משתמשים ב-KerasNLP כדי לטעון LLM שאומן מראש ולבצע לו כוונון עדין
  • איך לבצע קוונטיזציה ולהמיר מודל 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 Emulator ואז לוחצים על 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. למעשה, למודלים מסוג LLM יש היום כמה בעיות מוכרות, כמו הזיות, פלט פוגע, הוגנות והטיה. הסיבה לכך היא שהמודלים האלה מאומנים על נתונים מהעולם האמיתי, ולכן הם משקפים בעיות מהעולם האמיתי.

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

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

7.‏ סיכום

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

מידע נוסף