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