איך למצוא את הפתרון המתאים לאפליקציה שלכם בתחום ה-AI/ML

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

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

המדריך הזה יעזור לכם לבחור את פתרון ה-AI הטוב ביותר לאפליקציה שלכם. כדאי לקחת בחשבון את הגורמים הבאים: סוג הנתונים (טקסט, תמונות, אודיו, וידאו), מורכבות המשימה (סיכום פשוט לעומת משימות מורכבות שדורשות ידע מיוחד) וגודל הנתונים (קלט קצר לעומת מסמכים גדולים). ההסבר הזה יעזור לכם להחליט אם להשתמש ב-Gemini Nano במכשיר או ב-AI מבוסס-הענן של Firebase ‏ (Gemini Flash או Gemini Pro).

תרשים זרימה של תרחישים לדוגמה לשימוש ב-AI גנרטיבי. הקריטריונים כוללים את אופן הפעולה (טקסט, תמונה לעומת אודיו, סרטון, יצירת תמונה), המורכבות (סיכום, כתיבה מחדש לעומת ידע בתחום) וחלון ההקשר (קלט/פלט קצר לעומת מסמכים/מדיה נרחבים), מה שמוביל ל-AI גנרטיבי במכשיר (Gemini Nano) או ל-Firebase AI Logic (‏Gemini Flash,‏ Pro).
תרשים 1: המחשה של מדריך פתרונות ברמה גבוהה שיעזור לכם למצוא את פתרון ה-AI/ML המתאים לאפליקציית Android שלכם. כדי לקבל פירוט מפורט יותר של אפשרויות ה-AI וה-ML, אפשר לעיין במדריך הפתרונות שמופיע בהמשך המסמך.

מנצלים את הכוח של הסקת מסקנות במכשיר

כשמוסיפים תכונות מבוססות-AI ו-ML לאפליקציית Android, אפשר לבחור בין כמה דרכים להטמיע אותן – במכשיר או באמצעות הענן.

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

עם Gemini Nano אפשר להריץ הסקה ישירות במכשיר מבוסס-Android. אם אתם עובדים עם טקסט, תמונות או אודיו, כדאי להתחיל עם ממשקי ה-API של GenAI ב-ML Kit כדי לקבל פתרונות מוכנים לשימוש. ממשקי ה-API של AI גנרטיבי ב-ML Kit מבוססים על Gemini Nano, ומשתמשים ב-AICore כשירות המערכת הבסיסי. הם מותאמים במיוחד למשימות ספציפיות במכשיר. ממשקי ה-API של GenAI ב-ML Kit הם דרך אידיאלית להעביר את האפליקציות שלכם לסביבת הייצור, כי הם כוללים ממשק ברמה גבוהה יותר וניתנים להרחבה. ממשקי ה-API האלה מאפשרים לכם לשלוח בקשות בשפה טבעית עם קלט של טקסט ותמונות, וכך להשתמש בהם במגוון תרחישים כמו הבנת תמונות, תרגומים קצרים, סיכומים מודרכים ועוד.

למשימות מסורתיות של למידת מכונה, יש לכם את הגמישות להטמיע מודלים מותאמים אישית משלכם. אנחנו מספקים כלים חזקים כמו ML Kit,‏ MediaPipe,‏ LiteRT ותכונות של Google Play כדי לייעל את תהליך הפיתוח.

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

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

אפליקציות לנייד משתמשות בדרך כלל במודלים מקומיים לנתוני טקסט קטנים, כמו שיחות בצ'אט או מאמרים בבלוג. עם זאת, כשמדובר במקורות נתונים גדולים יותר (כמו קובצי PDF) או כשנדרש ידע נוסף, יכול להיות שיהיה צורך בפתרון מבוסס-ענן עם מודלים חזקים יותר של Gemini.

שילוב של מודלים מתקדמים של Gemini

מפתחי Android יכולים לשלב באפליקציות שלהם את היכולות המתקדמות של ה-AI הגנרטיבי של Google, כולל המודלים המתקדמים Gemini Pro ו-Gemini Flash, באמצעות Firebase AI Logic SDK. ה-SDK הזה מיועד לצרכים של נתונים גדולים יותר, ומספק יכולות מורחבות וגמישות על ידי מתן גישה למודלים של AI רב-אופנתי עם ביצועים גבוהים.

בעזרת Firebase AI Logic SDK, מפתחים יכולים לבצע קריאות בצד הלקוח למודלים של AI של Google בלי להתאמץ. המודלים האלה, כמו Gemini Pro ו-Gemini Flash, מריצים הסקה בענן ומאפשרים לאפליקציות ל-Android לעבד מגוון קלטים, כולל תמונות, אודיו, וידאו וטקסט. ‫Gemini Pro מצטיין בחשיבה רציונלית לגבי בעיות מורכבות ובניתוח נתונים נרחב, בעוד שמודלים מסדרת Gemini Flash מציעים מהירות גבוהה יותר וחלון ההקשר גדול מספיק לרוב המשימות.

מתי כדאי להשתמש בלמידת מכונה מסורתית

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

מסגרות ML מסורתיות מציעות פתרונות חזקים ומותאמים, ולעתים קרובות גם פרקטיים יותר, לאפליקציות שמתמקדות בניתוח קלט, בזיהוי תכונות או ביצירת תחזיות שמבוססות על דפוסים שנלמדו – ולא ביצירת פלט חדש לגמרי. כלים כמו ML Kit,‏ LiteRT ו-MediaPipe של Google מספקים יכולות עוצמתיות שמותאמות לתרחישי השימוש האלה שאינם גנרטיביים, במיוחד בסביבות של מחשוב נייד ומחשוב קצה.

איך מתחילים לשלב למידת מכונה באמצעות ML Kit

‫ML Kit מציע פתרונות מוכנים לייצור ומותאמים לנייד למשימות נפוצות של למידת מכונה, ללא צורך במומחיות קודמת בתחום. ערכת ה-SDK לניידים, שקל מאוד להשתמש בה, מאפשרת לכם להשתמש במומחיות של Google בתחום למידת המכונה ישירות באפליקציות ל-Android ול-iOS, כך שתוכלו להתמקד בפיתוח תכונות במקום באימון מודלים ובאופטימיזציה שלהם. ‫ML Kit מספק ממשקי API מוכנים מראש ומודלים מוכנים לשימוש לתכונות כמו סריקת ברקודים, זיהוי טקסט (OCR), זיהוי פנים, הוספת תוויות לתמונות, זיהוי ומעקב אחרי אובייקטים, זיהוי שפה ותשובה חכמה.

המודלים האלה בדרך כלל מותאמים לביצוע במכשיר, כדי להבטיח חביון נמוך, פונקציונליות אופליין ופרטיות משופרת של המשתמשים, כי הנתונים לרוב נשארים במכשיר. כדאי לבחור ב-ML Kit כדי להוסיף במהירות תכונות מבוססות-ML לאפליקציה לנייד, בלי לאמן מודלים או לדרוש פלט גנרטיבי. הוא אידיאלי לשיפור יעיל של אפליקציות עם יכולות "חכמות" באמצעות המודלים המותאמים של Google או באמצעות פריסה של מודלים מותאמים אישית של TensorFlow Lite.

כדי להתחיל, אפשר להיעזר במדריכים ובמסמכי התיעוד המקיפים שלנו באתר למפתחים של ML Kit.

פריסת ML בהתאמה אישית באמצעות LiteRT

כדי לקבל שליטה רבה יותר או כדי לפרוס מודלים משלכם של למידת מכונה, אתם יכולים להשתמש במערכת מותאמת אישית של למידת מכונה שמבוססת על LiteRT ועל Google Play Services. החבילה הזו מספקת את כל מה שצריך כדי לפרוס תכונות של ML עם ביצועים גבוהים. ‫LiteRT הוא ערכת כלים שעברה אופטימיזציה להרצת מודלים של TensorFlow ביעילות במכשירים ניידים, במכשירים מוטמעים ובמכשירי קצה עם משאבים מוגבלים. ערכת הכלים הזו מאפשרת להריץ מודלים קטנים ומהירים יותר באופן משמעותי, שצורכים פחות זיכרון, חשמל ונפח אחסון. סביבת זמן הריצה LiteRT מותאמת במיוחד למאיצי חומרה שונים (GPU, ‏ DSP, ‏ NPU) במכשירי קצה, ומאפשרת הסקת מסקנות עם זמן אחזור קצר.

כדאי לבחור ב-LiteRT כשצריך לפרוס ביעילות מודלים של ML שאומנו (בדרך כלל לסיווג, לרגרסיה או לזיהוי) במכשירים עם כוח מחשוב מוגבל או חיי סוללה מוגבלים, כמו סמארטפונים, מכשירי IoT או מיקרו-בקרים. זהו הפתרון המועדף לפריסת מודלים סטנדרטיים או מותאמים אישית של חיזוי בקצה הרשת, במקומות שבהם המהירות וחיסכון במשאבים הם בעלי חשיבות עליונה.

מידע נוסף על פריסת ML באמצעות LiteRT

הוספת תפיסה בזמן אמת לאפליקציות באמצעות MediaPipe

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

צינורות הנתונים מבוססי הגרפים של MediaPipe ניתנים להתאמה אישית רבה, ומאפשרים לכם להתאים פתרונות לאפליקציות ל-Android, ל-iOS, לאינטרנט, למחשב ולפלטפורמת העורפית. כדאי לבחור ב-MediaPipe אם האפליקציה צריכה להבין ולהגיב באופן מיידי לנתוני חיישנים בזמן אמת, במיוחד לסטרימינג של סרטונים, לתרחישי שימוש כמו זיהוי תנועות, אפקטים של מציאות רבודה, מעקב אחר כושר או שליטה באווטאר – כל אלה מתמקדים בניתוח של קלט ובהסבר שלו.

אפשר לעיין בפתרונות ולהתחיל לפתח באמצעות MediaPipe.

שילוב האפליקציה עם העוזר הדיגיטלי במכשיר

בעוד ששילוב AI מסורתי מתמקד ב'הוספת AI לאפליקציה', אפשר גם 'להוסיף את האפליקציה ל-AI'. כשאתם משלבים את הפונקציונליות של האפליקציה שלכם בתכונות AI של המערכת, אתם מאפשרים לעוזרים דיגיטליים ברמת המערכת (כמו Gemini) לגלות את היכולות של האפליקציה שלכם ולהפעיל אותן באופן אוטונומי. הדרך העיקרית לשילוב הזה היא באמצעות AppFunctions, שמאפשרת לאפליקציה שלכם להשתתף במערכת האקולוגית הרחבה יותר של AI ב-Android.

בחירת גישה

כשמשלבים AI כדי לשפר את אפליקציית Android, כדאי לשקול שלוש גישות עיקריות: ביצוע עיבוד במכשיר, שימוש במודלים מבוססי-ענן או הוספת הפונקציונליות של האפליקציה ל-AI ברמת המערכת. כלים כמו ML Kit,‏ Gemini Nano ו-LiteRT מאפשרים יכולות במכשיר, בעוד שממשקי Gemini Cloud API עם Firebase AI Logic מספקים עיבוד עוצמתי מבוסס-ענן. ‫AppFunctions מייצג נתיב שלישי, שמאפשר לכם "להכניס את האפליקציה שלכם ל-AI" על ידי הפיכת התכונות שלה לזמינות למערכת באמצעות סוכן.

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

פירוק לגורמים פתרונות במכשיר פתרונות בענן
קישוריות ופונקציונליות במצב אופליין אידיאלי לשימוש אופליין; פועל ללא חיבור לרשת. נדרש חיבור לרשת כדי לתקשר עם שרתים מרוחקים.
פרטיות נתונים מעבדת ומאחסנת מידע אישי רגיש באופן מקומי במכשיר. הנתונים מועברים לענן, ולכן צריך לבטוח באבטחה של הספק.
קלות הגילוי ופוטנציאל החשיפה שילוב ישיר במערכת ההפעלה (AppFunctions) מאפשר לעוזרים וירטואליים לגלות תכונות. הגילוי מוגבל בדרך כלל לממשק המשתמש הפנימי של האפליקציה או לשילובי API ספציפיים.
יכולות המודל אופטימיזציה לזמן אחזור נמוך ולמשימות ספציפיות ופחות אינטנסיביות. מודלים מתקדמים שיכולים להתמודד עם מורכבות גבוהה ועם קלט גדול.
שיקולי עלות אין חיובים ישירים לכל שימוש, המערכת משתמשת בחומרה הקיימת של המכשיר. בדרך כלל כולל תמחור לפי שימוש או עלויות מינוי שוטפות.
משאבי מכשירים השימוש באפליקציה ינצל את האחסון המקומי, את ה-RAM ואת חיי הסוללה. ההשפעה המקומית מינימלית, והעבודה הכבדה מועברת לשרת.
כוונון עדין גמישות מוגבלת; מוגבלת על ידי יכולות החומרה המקומיות. גמישות רבה יותר להתאמה אישית נרחבת ולשינויים בהיקף גדול.
עקביות בפלטפורמות שונות הזמינות עשויה להשתנות בהתאם למערכת ההפעלה ולתמיכה בחומרה. חוויה עקבית בכל פלטפורמה עם גישה לאינטרנט.

אם תבחנו בקפידה את הדרישות של תרחיש השימוש ואת האפשרויות הזמינות, תוכלו למצוא את הפתרון המושלם של AI/ML לשיפור אפליקציית Android ולספק למשתמשים חוויות חכמות ומותאמות אישית.


מדריך לפתרונות AI/ML

מדריך הפתרונות הזה יעזור לכם לזהות את כלי הפיתוח המתאימים לשילוב טכנולוגיות AI/ML בפרויקטים שלכם ב-Android.

מה המטרה העיקרית של תכונת ה-AI?

  • א) יצירת תוכן חדש (טקסט, תיאורי תמונות) או ביצוע עיבוד טקסט פשוט (סיכום, הגהה או שכתוב של טקסט)? → עוברים אל AI גנרטיבי
  • ב) ניתוח נתונים או קלט קיימים לצורך חיזוי, סיווג, זיהוי, הבנת תבניות או עיבוד של סטרימינג בזמן אמת (כמו וידאו או אודיו)? → מעבר אל Traditional ML & Perception
  • ג) שיפור הפונקציונליות של האפליקציה כדי לשלב אותה עם תכונות מבוססות-AI של המערכת (הוספת האפליקציה ל-AI)?איך להוסיף את האפליקציה ל-AI

למידת מכונה מסורתית ותפיסה

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

מהי המשימה הספציפית שאתה מבצע?

  • א) רוצים לשלב במהירות תכונות נפוצות של ML לנייד שמוכנות מראש? (למשל: סריקת ברקודים, זיהוי טקסט (OCR), איתור פנים, הוספת תוויות לתמונות, זיהוי אובייקטים ומעקב, זיהוי שפה, תשובה מהירה בסיסית)
    • ← שימוש ב: ML Kit (ממשקי API מסורתיים)
    • הסיבה: זהו השילוב הכי פשוט למשימות ML בנייד שכבר קיימות, ולרוב הוא מותאם לשימוש במכשיר (חביון נמוך, אופליין, פרטיות).
  • ב) צריך לעבד נתוני סטרימינג בזמן אמת (כמו וידאו או אודיו) למשימות תפיסה? (לדוגמה, מעקב ידיים, הערכת תנוחה, רשת פנים, זיהוי אובייקטים ופילוח בסרטון בזמן אמת)
    • → שימוש ב: MediaPipe
    • למה: מסגרת שמתמחה בצינורות עיבוד נתונים של תפיסה בזמן אמת עם ביצועים גבוהים בפלטפורמות שונות.
  • ג) אתם צריכים להריץ ביעילות במכשיר מודל ML בהתאמה אישית (למשל, לסיווג, לרגרסיה, לזיהוי), תוך מתן עדיפות לביצועים ולשימוש נמוך במשאבים?
    • → שימוש ב: LiteRT (TensorFlow Lite Runtime)
    • הסיבה: זמן ריצה אופטימלי לפריסת מודלים בהתאמה אישית בצורה יעילה במכשירים ניידים ובמכשירי קצה (גודל קטן, הסקה מהירה, האצת חומרה).
  • ד) צריך לאמן מודל מותאם אישית של למידת מכונה לביצוע משימה ספציפית?
    • → שימוש ב: LiteRT (TensorFlow Lite Runtime) + אימון מודל בהתאמה אישית
    • למה: מספק את הכלים לאימון ולפריסה של מודלים בהתאמה אישית, שעברו אופטימיזציה לניידים ולמכשירי קצה.
  • ה) צריך סיווג מתקדם של תוכן, ניתוח סנטימנט או תרגום של שפות רבות עם ניואנסים מורכבים?
    • כדאי לשקול אם מודלים מסורתיים של למידת מכונה (שעשויים להיות פרוסים באמצעות LiteRT או ענן) מתאימים, או אם NLU מתקדם דורש מודלים גנרטיביים (חוזרים להתחלה, בוחרים באפשרות א'). לסיווג, לניתוח סנטימנט או לתרגום מבוססי-ענן:
    • ← שימוש: פתרונות מבוססי-ענן (לדוגמה, Google Cloud Natural Language API, ‏ Google Cloud Translation API, ‏ שאולי יש אליהם גישה באמצעות קצה עורפי מותאם אישית או Vertex AI). (עדיפות נמוכה יותר מאפשרויות במכשיר אם המכשיר במצב אופליין או אם הפרטיות היא הדבר הכי חשוב).
    • למה: פתרונות בענן מציעים מודלים מתקדמים ותמיכה בשפות רבות, אבל הם דורשים קישוריות ויכול להיות שהם כרוכים בעלויות.

‫AI גנרטיבי

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

האם אתם רוצים שה-AI יפעל אופליין, צריכים פרטיות נתונים מקסימלית (שמירת נתוני המשתמשים במכשיר) או רוצים להימנע מעלויות של הסקת מסקנות בענן?

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

‫AI גנרטיבי במכשיר (באמצעות Gemini Nano)

הערות: נדרשים מכשירי Android תואמים, תמיכה מוגבלת ב-iOS, המודלים פחות חזקים מהמודלים המקבילים בענן.

בעזרת Prompt API של ML Kit, אתם יכולים לשלוח בקשות בשפה טבעית עם קלט של טקסט בלבד או טקסט ותמונה למגוון תרחישי שימוש, כמו הבנת תמונות, תרגומים קצרים וסיכומים מודרכים. אם מקרי השימוש שלכם עומדים במגבלות האסימונים האלה, ממשקי ה-API של ML Kit GenAI הם האפשרות הטובה ביותר ל-AI גנרטיבי במכשיר. בנוסף, ML Kit מציע ממשקי API יעילים למשימות נפוצות כמו סיכום ותשובה מהירה.


‫AI גנרטיבי בענן

השימוש במודלים חזקים יותר דורש קישוריות, בדרך כלל כולל עלויות היקש, ומאפשר גישה למגוון רחב יותר של מכשירים ועקביות קלה יותר בפלטפורמות שונות (Android ו-iOS).

מה חשוב לכם יותר: שילוב קל ב-Firebase או גמישות ושליטה מקסימליות?

  • א) אתם מעדיפים שילוב קל יותר, חוויית API מנוהלת, וכנראה כבר משתמשים ב-Firebase?
  • ב) אתם צריכים גמישות מקסימלית, גישה למגוון רחב של מודלים (כולל מודלים של צד שלישי או מודלים בהתאמה אישית), כוונון עדין מתקדם, ומוכנים לנהל את השילוב שלכם עם העורף (מורכב יותר)?
    • → שימוש ב-Gemini API עם עורף ענן מותאם אישית (באמצעות Google Cloud Platform)
    • למה: האפשרות הזו מאפשרת לכם הכי הרבה שליטה, גישה למגוון רחב של מודלים ואפשרויות אימון בהתאמה אישית, אבל היא דורשת מאמץ פיתוח משמעותי בבק-אנד. מתאים לצרכים מורכבים, רחבי היקף או מותאמים אישית מאוד.

(בחרת ב-Firebase AI Logic SDK) איזה סוג של משימה גנרטיבית ופרופיל ביצועים דרושים לך?

  • א) אתם צריכים איזון בין ביצועים לעלות, שמתאים ליצירת טקסט כללי, לסיכום או לאפליקציות צ'אט שבהן המהירות חשובה?
  • ב) אתם צריכים איכות ויכולות גבוהות יותר ליצירת טקסט מורכב, הסקת מסקנות, הבנת שפה טבעית (NLU) מתקדמת או מילוי הוראות?

AppFunctions

צריך לשפר את הפונקציונליות של האפליקציה כדי לשלב אותה עם תכונות AI במערכת (הוספת האפליקציה ל-AI).

  • → שימוש: AppFunctions
  • למה: כדי לאפשר לתכונות מבוססות-AI במערכת, כמו Assistant, לגלות את היכולות של האפליקציה ולהפעיל אותן.