המדריך הזה נועד לעזור לכם לשלב את הפתרונות של Google בתחום הבינה המלאכותית הגנרטיבית ולמידת המכונה (AI/ML) באפליקציות שלכם. המדריך מספק הנחיות שיעזרו לכם להבין את הפתרונות השונים של בינה מלאכותית ולמידת מכונה שזמינים לכם, ולבחור את הפתרון שהכי מתאים לצרכים שלכם. המטרה של המסמך הזה היא לעזור לכם להחליט באיזה כלי להשתמש ולמה, על ידי התמקדות בצרכים שלכם ובתרחישים לדוגמה.
כדי לעזור לכם לבחור את פתרון ה-AI/ML המתאים ביותר לדרישות הספציפיות שלכם, במסמך הזה יש מדריך פתרונות. המדריך כולל סדרה של שאלות על המטרות והמגבלות של הפרויקט, ועל סמך התשובות הוא מפנה אתכם לכלים ולטכנולוגיות המתאימים ביותר.
המדריך הזה יעזור לכם לבחור את פתרון ה-AI הטוב ביותר לאפליקציה שלכם. כדאי לקחת בחשבון את הגורמים הבאים: סוג הנתונים (טקסט, תמונות, אודיו, וידאו), מורכבות המשימה (סיכום פשוט לעומת משימות מורכבות שדורשות ידע מיוחד) וגודל הנתונים (קלט קצר לעומת מסמכים גדולים). ההסבר הזה יעזור לכם להחליט אם להשתמש ב-Gemini Nano במכשיר או ב-AI מבוסס-הענן של Firebase (Gemini Flash, Gemini Pro או Imagen).
מנצלים את הכוח של הסקת מסקנות במכשיר
כשמוסיפים תכונות מבוססות-AI ו-ML לאפליקציית Android, אפשר לבחור דרכים שונות להפעלת התכונות – במכשיר או באמצעות הענן.
פתרונות במכשיר כמו Gemini Nano מספקים תוצאות ללא עלות נוספת, משפרים את פרטיות המשתמשים ומספקים פונקציונליות אמינה במצב אופליין, כי נתוני הקלט מעובדים באופן מקומי. היתרונות האלה יכולים להיות קריטיים בתרחישי שימוש מסוימים, כמו סיכום הודעות, ולכן חשוב לתת עדיפות לפתרונות במכשיר כשבוחרים את הפתרונות המתאימים.
Gemini Nano מאפשר לכם להריץ הסקה ישירות במכשיר עם Android. אם אתם עובדים עם טקסט, תמונות או אודיו, כדאי להתחיל עם ממשקי ה-API של GenAI ב-ML Kit כדי לקבל פתרונות מוכנים מראש. ממשקי ה-API של GenAI ב-ML Kit מבוססים על Gemini Nano ועברו כוונון עדין למשימות ספציפיות במכשיר. ממשקי ה-API של ML Kit GenAI הם דרך אידיאלית להעביר את האפליקציות שלכם לייצור, כי יש להם ממשק ברמה גבוהה יותר והם ניתנים להרחבה. ממשקי ה-API האלה מאפשרים לכם להטמיע תרחישי שימוש לסיכום, הגהה וכתיבה מחדש של טקסט, ליצור תיאורי תמונות ולבצע זיהוי דיבור.
כדי להרחיב את השימוש מעבר לתרחישי השימוש הבסיסיים שמסופקים על ידי ממשקי ה-API של ML Kit GenAI, כדאי לשקול גישה ניסיונית ל-Gemini Nano. גישה ל-Gemini Nano Experimental מאפשרת לכם גישה ישירה יותר ליצירת הנחיות בהתאמה אישית באמצעות Gemini Nano.
למשימות של למידת מכונה מסורתית, יש לכם גמישות להטמיע מודלים מותאמים אישית משלכם. אנחנו מספקים כלים חזקים כמו ML Kit, MediaPipe, LiteRT ותכונות של Google Play להפצה, כדי לייעל את תהליך הפיתוח.
לאפליקציות שדורשות פתרונות מאוד מיוחדים, אתם יכולים להשתמש במודל מותאם אישית משלכם, כמו Gemma או מודל אחר שמותאם לתרחיש השימוש הספציפי שלכם. אפשר להריץ את המודל ישירות במכשיר של המשתמש באמצעות LiteRT, שמספק ארכיטקטורות של מודלים שתוכננו מראש לביצועים אופטימליים.
אפשר גם לשקול בניית פתרון היברידי שמבוסס על מודלים במכשיר וגם על מודלים בענן.
אפליקציות לנייד משתמשות בדרך כלל במודלים מקומיים לנתוני טקסט קטנים, כמו שיחות בצ'אט או מאמרים בבלוג. עם זאת, כשמדובר במקורות נתונים גדולים יותר (כמו קובצי PDF) או כשנדרש ידע נוסף, יכול להיות שיהיה צורך בפתרון מבוסס-ענן עם מודלים חזקים יותר של Gemini.
שילוב של מודלים מתקדמים של Gemini
מפתחי Android יכולים לשלב באפליקציות שלהם את היכולות המתקדמות של ה-AI הגנרטיבי של Google, כולל המודלים Gemini Pro, Gemini Flash ו-Imagen, באמצעות 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 לנייד, שקל מאוד להשתמש בה, מאפשרת לכם להוסיף לאפליקציות שלכם ל-Android ול-iOS את הידע של Google בתחום למידת המכונה. כך תוכלו להתמקד בפיתוח תכונות במקום באימון ובאופטימיזציה של מודלים. 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, לאינטרנט, למחשב ול-backend. כדאי לבחור ב-MediaPipe אם האפליקציה צריכה להבין ולהגיב באופן מיידי לנתוני חיישנים בזמן אמת, במיוחד לסטרימינג של וידאו, לתרחישי שימוש כמו זיהוי תנועות ידיים, אפקטים של מציאות רבודה, מעקב אחר כושר או שליטה באווטאר – כל אלה מתמקדים בניתוח של קלט ובהסבר שלו.
כדאי לעיין בפתרונות ולהתחיל ליצור באמצעות MediaPipe.
בחירת גישה: במכשיר או בענן
כשמשלבים תכונות של AI/ML באפליקציית Android, אחת ההחלטות הראשונות והחשובות היא אם לבצע את העיבוד ישירות במכשיר של המשתמש או בענן. כלים כמו ML Kit, Gemini Nano ו-TensorFlow Lite מאפשרים יכולות במכשיר, בעוד ש-Gemini Cloud APIs עם Firebase AI Logic יכולים לספק עיבוד עוצמתי מבוסס-ענן. הבחירה הנכונה תלויה במגוון גורמים שספציפיים לתרחיש השימוש ולצרכים של המשתמשים.
כדי לקבל החלטה מושכלת, כדאי לשקול את ההיבטים הבאים:
- קישוריות ופונקציונליות אופליין: אם האפליקציה שלכם צריכה לפעול בצורה מהימנה בלי חיבור לאינטרנט, פתרונות במכשיר כמו Gemini Nano הם אידיאליים. כדי לעבד בענן, צריך גישה לרשת.
- פרטיות הנתונים: בתרחישי שימוש שבהם נתוני המשתמשים צריכים להישאר במכשיר מסיבות שקשורות לפרטיות, עיבוד במכשיר מציע יתרון מובהק בכך שהוא שומר על מידע רגיש באופן מקומי.
- יכולות המודל ומורכבות המשימה: מודלים מבוססי-Cloud הם לרוב גדולים יותר, חזקים יותר ומעודכנים בתדירות גבוהה יותר, ולכן הם מתאימים למשימות AI מורכבות מאוד או לעיבוד נתונים גדולים שבהם איכות הפלט ויכולות נרחבות הם בעלי חשיבות עליונה. מודלים במכשיר יכולים לטפל במשימות פשוטות.
- שיקולי עלות: בדרך כלל, ממשקי Cloud API כרוכים בתמחור מבוסס-שימוש, כלומר העלויות יכולות לגדול בהתאם למספר ההסקות או לכמות הנתונים שעוברים עיבוד. הסקת מסקנות במכשיר בדרך כלל לא כרוכה בחיובים ישירים לכל שימוש, אבל היא כרוכה בעלויות פיתוח ויכולה להשפיע על משאבי המכשיר, כמו חיי הסוללה והביצועים הכוללים.
- משאבי המכשיר: מודלים במכשיר צורכים נפח אחסון במכשיר של המשתמש. חשוב גם לדעת אילו מכשירים תואמים למודלים ספציפיים שפועלים במכשיר, כמו Gemini Nano, כדי לוודא שקהל היעד יוכל להשתמש בתכונות.
- התאמה מדויקת והתאמה אישית: אם אתם צריכים את האפשרות להתאים מודלים לתרחיש שימוש ספציפי, פתרונות מבוססי-ענן בדרך כלל מציעים גמישות רבה יותר ואפשרויות נרחבות יותר להתאמה אישית.
- עקביות בין פלטפורמות: אם חשוב לכם להשתמש בתכונות AI עקביות בכמה פלטפורמות, כולל iOS, שימו לב שחלק מהפתרונות במכשיר, כמו Gemini Nano, עדיין לא זמינים בכל מערכות ההפעלה.
אם תבחנו בקפידה את הדרישות של תרחיש השימוש ואת האפשרויות הזמינות, תוכלו למצוא את פתרון ה-AI/ML המושלם לשיפור אפליקציית Android שלכם ולספק למשתמשים חוויות חכמות ומותאמות אישית.
מדריך לפתרונות AI/ML
מדריך הפתרונות הזה יעזור לכם לזהות את כלי הפיתוח המתאימים לשילוב טכנולוגיות AI/ML בפרויקטים שלכם ב-Android.
מהי המטרה העיקרית של תכונת ה-AI?
- א) יצירת תוכן חדש (טקסט, תיאורי תמונות) או ביצוע עיבוד טקסט פשוט (סיכום, הגהה או שכתוב של טקסט)? → עוברים אל AI גנרטיבי
- ב) ניתוח נתונים או קלט קיימים לצורך חיזוי, סיווג, זיהוי, הבנת תבניות או עיבוד של סטרימינג בזמן אמת (כמו וידאו או אודיו)? → עוברים אל Traditional ML & Perception
למידת מכונה מסורתית ותפיסה
אתם צריכים לנתח קלט, לזהות תכונות או לבצע חיזויים על סמך דפוסים שנלמדו, ולא ליצור פלט חדש לגמרי.
מהי המשימה הספציפית שאתה מבצע?
- א) רוצים לשלב במהירות תכונות נפוצות של 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, מגבלות ספציפיות על טוקנים (1,024 הנחיות, 4,096 הקשר), המודלים פחות חזקים מהמודלים המקבילים בענן.
האם תרחיש השימוש שלכם תואם באופן ספציפי למשימות הפשוטות שמציעים ממשקי ה-API של ML Kit GenAI? (סיכום טקסט, הגהת טקסט, כתיבה מחדש של טקסט, יצירת תיאורי תמונות או ביצוע זיהוי דיבור) והאם מגבלות הטוקנים מספיקות?
- א) כן:
- → שימוש: ממשקי API של ML Kit GenAI (מבוססים על Gemini Nano)
- הסיבה: הדרך הכי קלה לשלב משימות גנרטיביות ספציפיות ונפוצות במכשיר, והפתרון במכשיר עם העדיפות הכי גבוהה.
- ב) לא (אתם צריכים הנחיות גמישות יותר או משימות שחורגות מממשקי ה-API הספציפיים של ML
Kit GenAI, אבל עדיין רוצים לבצע את ההפעלה במכשיר במסגרת היכולות של Nano):
- → שימוש: גישה ניסיונית ל-Gemini Nano
- למה: מספק יכולות הנחיה פתוחות במכשיר לתרחישי שימוש מעבר לממשקי ה-API המובנים של GenAI ב-ML Kit, תוך התחשבות במגבלות של Nano.
AI גנרטיבי בענן
השיטה הזו משתמשת במודלים חזקים יותר, מחייבת קישוריות, בדרך כלל כוללת עלויות הסקה, מציעה טווח רחב יותר של מכשירים ועקביות קלה יותר בין פלטפורמות (Android ו-iOS).
מה חשוב לכם יותר: שילוב קל ב-Firebase או גמישות ושליטה מקסימליות?
- א) אתם מעדיפים שילוב פשוט יותר, חוויית API מנוהלת, וכנראה כבר משתמשים ב-Firebase?
- → שימוש ב-Firebase AI Logic SDK → מעבר אל Firebase AI Logic
- ב) אתם צריכים גמישות מקסימלית, גישה למגוון רחב של מודלים (כולל מודלים של צד שלישי או מודלים בהתאמה אישית), כוונון עדין מתקדם, ומוכנים לנהל את השילוב שלכם עם העורף האחורי (מורכב יותר)?
- → שימוש ב-Gemini API עם עורף ענן מותאם אישית (באמצעות Google Cloud Platform)
- הסיבה: האפשרות הזו מספקת את השליטה הכי גדולה, גישה למגוון רחב של מודלים ואפשרויות אימון בהתאמה אישית, אבל היא דורשת מאמץ פיתוח משמעותי בשרת העורפי. מתאים לצרכים מורכבים, רחבי היקף או מותאמים אישית.
(בחרת ב-Firebase AI Logic SDK) איזה סוג של משימה גנרטיבית ופרופיל ביצועים דרושים לך?
- א) אתם צריכים איזון בין ביצועים לעלות, שמתאים ליצירת טקסט כללי, לסיכום או לאפליקציות צ'אט שבהן המהירות חשובה?
- → שימוש ב: Firebase AI Logic SDK עם Gemini Flash
- למה: מותאם למהירות וליעילות בסביבה המנוהלת של Vertex AI.
- ב) רוצים איכות ויכולות גבוהות יותר ליצירת טקסט מורכב, להסקת מסקנות, ל-NLU מתקדם או לביצוע הוראות?
- → שימוש ב-Firebase AI Logic SDK עם Gemini Pro
- למה: מודל טקסט חזק יותר למשימות תובעניות, שאפשר לגשת אליו דרך Firebase.
- ג) אתם צריכים ליצור תמונות מורכבות או לבצע מניפולציות מתקדמות בתמונות על סמך הנחיות טקסט?
- → שימוש ב: Firebase AI Logic SDK עם Imagen 3
- למה: מודל מתקדם ליצירת תמונות שאפשר לגשת אליו באמצעות סביבת Firebase מנוהלת.