הפעלת יצירת תוכן והסקת מסקנות ב-Gemma

יש שתי החלטות חשובות שצריך לקבל כשרוצים להריץ מודל Gemma: 1) איזה וריאנט של Gemma רוצים להריץ, ו-2) באיזו מסגרת ביצוע של AI רוצים להשתמש כדי להריץ אותו? בעיה מרכזית שצריך להתייחס אליה כשמקבלים את שתי ההחלטות האלה קשורה לחומרה שזמינה לכם ולמשתמשים שלכם להרצת המודל.

סקירה כללית זו עוזרת לכם לקבל את ההחלטות האלה ולהתחיל לעבוד עם מודלים של Gemma. אלה השלבים הכלליים להפעלת מודל Gemma:

בחירת מסגרת

מודלים של Gemma תואמים למגוון רחב של כלים בסביבה העסקית. הבחירה באפשרות הנכונה תלויה בחומרה הזמינה (מעבדים גרפיים ב-Cloud לעומת מחשב נייד מקומי) ובהעדפות הממשק (קוד Python לעומת אפליקציה למחשב).

הטבלה הבאה תעזור לכם לזהות במהירות את הכלי המתאים ביותר לצרכים שלכם:

אם אתה רוצה... מסגרת מומלצת מתאים במיוחד עבור
הרצה מקומית עם ממשק משתמש של Chat ‫– LM Studio
Ollama
משתמשים מתחילים או משתמשים שרוצים חוויה דומה ל-Gemini במחשב הנייד שלהם.
הרצה יעילה ב-Edge ‫- Gemma.cpp
- LiteRT-LM
- llama.cpp
- MediaPipe LLM Inference API
- MLX
הסקת מסקנות מקומית עם ביצועים גבוהים ושימוש מינימלי במשאבים.
בנייה/אימון ב-Python ‫- Gemma library for JAX
‫- Hugging Face Transformers
‫- Keras
‫- PyTorch
‫- Unsloth
חוקרים ומפתחים שיוצרים אפליקציות בהתאמה אישית או מכווננים מודלים.
פריסה ב-Production או ב-Enterprise ‫- Google Cloud Kubernetes Engine (GKE)
- Google Cloud Run
- Vertex AI
- vLLM
פריסה מנוהלת בענן שניתנת להרחבה, עם אבטחה ברמת הארגון ותמיכה ב-MLOps.

פרטי ה-Framework

בהמשך מופיעים מדריכים להפעלת מודלים של Gemma, שמסווגים לפי סביבת הפריסה שלכם.

1. הסקת מסקנות במחשב ובמכשיר (יעילות גבוהה)

הכלים האלה מאפשרים להריץ את Gemma על חומרה לצרכנים (מחשבים ניידים, מחשבים שולחניים) באמצעות פורמטים מותאמים (כמו GGUF) או מאיצי חומרה ספציפיים.

  • LM Studio: אפליקציה למחשב שמאפשרת להוריד מודלים של Gemma ולנהל איתם שיחה בממשק ידידותי למשתמש. אין צורך בכתיבת קוד.
  • llama.cpp: פורט פופולרי של Llama (ו-Gemma) בקוד פתוח ב-C++‎, שפועל מהר מאוד במעבדי CPU וב-Apple Silicon.
  • LiteRT-LM: מציע ממשק שורת פקודה (CLI) להרצת מודלים ממוטבים של Gemma במחשב (Windows, ‏ Linux, ‏ macOS), שמבוסס על LiteRT (לשעבר TFLite)..litertlm
  • MLX: מסגרת שנועדה במיוחד ללמידת מכונה ב-Apple Silicon, ומתאימה למשתמשי Mac שרוצים ביצועים מובנים.
  • Gemma.cpp: מנוע הסקה קל משקל ועצמאי ב-C++‎, שפותח במיוחד על ידי Google.
  • Ollama: כלי להפעלת מודלים גדולים של שפה (LLM) בקוד פתוח באופן מקומי, שמשמש לעיתים קרובות להפעלת אפליקציות אחרות.

2. פיתוח Python (מחקר וכוונון עדין)

מסגרות סטנדרטיות למפתחי AI שיוצרים אפליקציות, צינורות או מודלים לאימון.

  • Hugging Face Transformers: הסטנדרט בתעשייה לגישה מהירה למודלים ולצינורות.
  • Unsloth: ספרייה שעברה אופטימיזציה לצורך כוונון עדין של מודלים גדולים של שפה (LLM). היא מאפשרת לאמן מודלים של Gemma פי 2 עד פי 5 מהר יותר עם הרבה פחות זיכרון, וכך אפשר לבצע כוונון עדין במעבדי GPU לצרכנים (למשל, בתוכניות ללא תשלום של Google Colab).
  • Keras / JAX / PyTorch: ספריות ליבה למחקר למידה עמוקה וליישום ארכיטקטורה בהתאמה אישית.

3. פריסה בנייד ובקצה (במכשיר)

מסגרות שנועדו להפעיל מודלים של שפה גדולה (LLM) ישירות במכשירי משתמשים (Android, ‏ iOS, אינטרנט) ללא חיבור לאינטרנט, ולרוב נעשה בהן שימוש ביחידות עיבוד עצבי (NPU).

  • LiteRT-LM: מסגרת קוד פתוח מלאה לפיתוח מודלים גדולים של שפה (LLM) במכשיר, שמציעה ביצועים מקסימליים ושליטה פרטנית, עם תמיכה ישירה בהאצת CPU, ‏ GPU ו-NPU ב-Android וב-iOS.
  • MediaPipe LLM Inference API: הדרך הקלה ביותר לשלב את Gemma באפליקציות חוצות פלטפורמות. הוא מציע API ברמה גבוהה שפועל ב-Android, ב-iOS ובאינטרנט.

4. פריסה בענן ובסביבת ייצור

שירותים מנוהלים להרחבת האפליקציה לאלפי משתמשים או לגישה לכוח מחשוב עצום.

  • Vertex AI: פלטפורמת ה-AI המנוהלת במלואה של Google Cloud. האפשרות הטובה ביותר לאפליקציות ארגוניות שדורשות הסכמי רמת שירות (SLA) והתאמה לגודל.
  • Google Cloud Kubernetes Engine‏ (GKE): לניהול אשכולות משלכם להצגת מודלים.
  • vLLM: מנוע הסקה והצגה עם תפוקה גבוהה ושימוש יעיל בזיכרון, שמשמש לעיתים קרובות בפריסות בענן.

מוודאים שהפורמט של מודל Gemma שרוצים לפרוס, כמו פורמט מובנה של Keras,‏ Safetensors או GGUF, נתמך על ידי המסגרת שבחרתם.

בחירת וריאציה של Gemma

מודלי Gemma זמינים בכמה וריאציות וגדלים, כולל מודלי הבסיס או הליבה של Gemma, ווריאציות מודל יותר ייעודיות כמו PaliGemma ו-DataGemma, וגם וריאציות רבות שנוצרו על ידי קהילת מפתחי ה-AI באתרים כמו Kaggle ו-Hugging Face. אם אתם לא בטוחים באיזה וריאנט כדאי להתחיל, כדאי לבחור את המודל העדכני ביותר של Gemma core שעבר כוונון להוראות (IT) עם מספר הפרמטרים הנמוך ביותר. למודל Gemma מהסוג הזה יש דרישות מחשוב נמוכות, והוא יכול להגיב למגוון רחב של הנחיות בלי שיידרש פיתוח נוסף.

כשבוחרים וריאנט של Gemma, כדאי להביא בחשבון את הגורמים הבאים:

  • Gemma core ומשפחות נוספות של וריאציות כמו PaliGemma ו-CodeGemma: מומלץ להשתמש ב-Gemma (core). לווריאציות של Gemma מעבר לגרסת הליבה יש את אותה ארכיטקטורה כמו למודל הליבה, והן אומנו לביצועים טובים יותר במשימות ספציפיות. אלא אם האפליקציה או היעדים שלכם תואמים להתמחות של וריאציה ספציפית של Gemma, מומלץ להתחיל עם מודל ליבה או מודל בסיס של Gemma.
  • התאמה להוראות (IT), אימון מראש (PT), כוונון עדין (FT), מעורב (mix): מומלץ לבחור באפשרות IT.
    • וריאציות של Gemma שעברו התאמה להוראות (IT) הן מודלים שאומנו להגיב למגוון הוראות או בקשות בשפה טבעית. הווריאציות האלה של המודלים הן נקודת התחלה מצוינת כי הן יכולות להגיב להנחיות בלי שנדרש אימון נוסף של המודל.
    • ‫Gemma מאומן מראש (PT) הוא מודל שאומן להסיק מסקנות לגבי שפה או נתונים אחרים, אבל לא אומן לפעול לפי הוראות של בני אדם. המודלים האלה דורשים אימון או כוונון נוספים כדי לבצע משימות בצורה יעילה, והם מיועדים לחוקרים או למפתחים שרוצים ללמוד או לפתח את היכולות של המודל והארכיטקטורה שלו.
    • אפשר להתייחס לגרסאות של Gemma שעברו כוונון עדין (FT) כאל גרסאות IT, אבל בדרך כלל הן מאומנות לבצע משימה ספציפית או להשיג ביצועים טובים במדד השוואה ספציפי של AI גנרטיבי. משפחת הווריאציות של PaliGemma כוללת מספר וריאציות של FT.
    • Mixed (mix) Gemma variants הם גרסאות של מודלים של PaliGemma שעברו כוונון באמצעות מגוון הוראות, והם מתאימים לשימוש כללי.
  • פרמטרים: מומלץ להשתמש במספר הקטן ביותר שזמין. באופן כללי, ככל שיש למודל יותר פרמטרים, כך היכולות שלו טובות יותר. עם זאת, הפעלת מודלים גדולים יותר דורשת משאבי מחשוב גדולים ומורכבים יותר, ובדרך כלל מאטה את הפיתוח של אפליקציית AI. אלא אם כבר קבעתם שמודל Gemma קטן יותר לא יכול לענות על הצרכים שלכם, כדאי לבחור מודל עם מספר קטן של פרמטרים.
  • רמות קוונטיזציה: מומלץ להשתמש בחצי דיוק (16 ביט), למעט במקרים של כוונון. קוונטיזציה היא נושא מורכב, אבל אפשר להסביר אותו בפשטות: היא קובעת את הגודל והדיוק של הנתונים, וכתוצאה מכך את כמות הזיכרון שנדרשת למודל AI גנרטיבי כדי לבצע חישובים וליצור תשובות. אחרי שמבצעים אימון של מודל עם נתונים ברמת דיוק גבוהה, בדרך כלל נתונים של 32 ביט, אפשר לשנות מודלים כמו Gemma כדי להשתמש בנתונים ברמת דיוק נמוכה יותר, כמו גדלים של 16, 8 או 4 ביט. מודלים כמותיים של Gemma עדיין יכולים להניב ביצועים טובים, בהתאם למורכבות המשימות, תוך שימוש בפחות משאבי מחשוב וזיכרון. עם זאת, הכלים לכוונון מודלים שעברו קוונטיזציה מוגבלים, ויכול להיות שהם לא יהיו זמינים במסגרת פיתוח ה-AI שבחרתם. בדרך כלל, צריך לבצע כוונון עדין של מודל כמו Gemma בדיוק מלא, ואז לכמת את המודל שמתקבל.

רשימה של מודלים מרכזיים של Gemma שפורסמו על ידי Google זמינה במאמר תחילת העבודה עם מודלים של Gemma.

הרצת בקשות ליצירה ולניתוח

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

עיצוב ההנחיה

לכל הגרסאות של Gemma שעברו כוונון להוראות יש דרישות ספציפיות לגבי פורמט ההנחיות. חלק מדרישות העיצוב האלה מטופלות באופן אוטומטי על ידי המסגרת שבה אתם משתמשים כדי להפעיל מודלים של Gemma, אבל כשאתם שולחים נתוני הנחיה ישירות לטוקנייזר, אתם צריכים להוסיף תגים ספציפיים, והדרישות לגבי התיוג יכולות להשתנות בהתאם לגרסת Gemma שבה אתם משתמשים. במדריכים הבאים מופיע מידע על הפורמט של הנחיות לגרסאות של Gemma והוראות למערכת: