LiteRT מאפשר להפעיל מודלים של TensorFlow, PyTorch ו-JAX באפליקציות ל-Android. מערכת LiteRT מספקת סביבות הפעלה מוכנות מראש וניתנות להתאמה אישית להרצת מודלים ב-Android במהירות וביעילות, כולל אפשרויות להאצת חומרה.
לדוגמה, אפליקציות ל-Android שמשתמשות ב-LiteRT, אפשר לעיין במאגר הדוגמאות של LiteRT.
מודלים של למידת מכונה
LiteRT משתמש במודלים של TensorFlow, PyTorch ו-JAX שהומרו לפורמט קטן יותר, נייד ויעיל יותר של מודל למידת מכונה. אפשר להשתמש במודלים מוכנים מראש עם LiteRT ב-Android, או לבנות מודלים משלכם ולהמיר אותם לפורמט LiteRT.
בדף הזה מוסבר איך להשתמש במודלים של למידת מכונה שכבר נוצרו, ולא מוסבר איך ליצור, לאמן, לבדוק או להמיר מודלים. מידע נוסף על בחירה, שינוי, בנייה והמרה של מודלים של למידת מכונה ל-LiteRT זמין בדף Models.
הפעלת מודלים ב-Android
מודל LiteRT שפועל בתוך אפליקציית Android מקבל נתונים, מעבד אותם ומפיק תחזית על סמך הלוגיקה של המודל. כדי להפעיל מודל LiteRT, צריך סביבת זמן ריצה מיוחדת, והנתונים שמועברים למודל צריכים להיות בפורמט נתונים ספציפי שנקרא טנסור. כשמודל מעבד את הנתונים, בתהליך שנקרא הסקת מסקנות, הוא יוצר תוצאות חיזוי כטנסורים חדשים ומעביר אותם לאפליקציית Android כדי שהיא תוכל לבצע פעולה, כמו הצגת התוצאה למשתמש או הפעלת לוגיקה עסקית נוספת.

איור 1. תהליך ביצוע פונקציונלי למודלים של LiteRT באפליקציות ל-Android.
ברמת התכנון הפונקציונלי, אפליקציית Android צריכה לכלול את הרכיבים הבאים כדי להפעיל מודל LiteRT:
- סביבת זמן ריצה של LiteRT להרצת המודל
- Model input handler כדי להפוך נתונים לטנסורים
- Model output handler כדי לקבל טנסורים של תוצאות פלט ולפרש אותם כתוצאות חיזוי
בקטעים הבאים מוסבר איך ספריות וכלים של LiteRT מספקים את הרכיבים הפונקציונליים האלה.
פיתוח אפליקציות באמצעות LiteRT
בקטע הזה מתואר הנתיב המומלץ והנפוץ ביותר להטמעת LiteRT באפליקציית Android. כדאי לשים לב במיוחד לקטעים סביבת זמן הריצה וספריות הפיתוח. אם פיתחתם מודל בהתאמה אישית, כדאי לעיין בקטע נתיבי פיתוח מתקדמים.
אפשרויות של סביבת זמן הריצה
יש כמה דרכים להפעיל סביבת זמן ריצה להרצת מודלים באפליקציית Android. אלה האפשרויות המומלצות:
- LiteRT בסביבת זמן הריצה של Google Play Services (מומלץ)
- סביבת זמן ריצה עצמאית של LiteRT
באופן כללי, מומלץ להשתמש בסביבת זמן הריצה שמסופקת על ידי שירותי Google Play, כי היא חוסכת יותר מקום מאשר הסביבה הרגילה, כי היא נטענת באופן דינמי, וכך גודל האפליקציה קטן יותר. בנוסף, שירותי Google Play משתמשים באופן אוטומטי בגרסה היציבה העדכנית ביותר של זמן הריצה LiteRT, וכך אתם מקבלים תכונות נוספות וביצועים משופרים לאורך זמן. אם אתם מציעים את האפליקציה שלכם במכשירים שלא כוללים את Google Play Services או שאתם צריכים לנהל באופן מדויק את סביבת זמן הריצה של ה-ML, אתם צריכים להשתמש בזמן הריצה הרגיל של LiteRT. האפשרות הזו מאגדת קוד נוסף באפליקציה, וכך מאפשרת לכם לשלוט יותר בזמן הריצה של ה-ML באפליקציה, אבל מגדילה את גודל ההורדה של האפליקציה.
כדי לגשת לסביבות זמן הריצה האלה באפליקציית Android, צריך להוסיף ספריות פיתוח של LiteRT לסביבת פיתוח האפליקציה. בקטע הבא מוסבר איך להשתמש בסביבות זמן הריצה הרגילות באפליקציה.
ספריות
אפשר לגשת ל-Interpreter API באמצעות Google Play Services. אתם יכולים להשתמש בספריות הליבה והתמיכה של LiteRT באפליקציית Android שלכם. לפרטים על תכנות באמצעות ספריות LiteRT וסביבות זמן ריצה, אפשר לעיין במאמר כלי פיתוח ל-Android.
קבלת מודלים
כדי להריץ מודל באפליקציית Android, צריך מודל בפורמט LiteRT. אתם יכולים להשתמש במודלים מוכנים מראש או ליצור מודל ולהמיר אותו לפורמט Lite. מידע נוסף על השגת מודלים לאפליקציית Android זמין בדף Models (מודלים) של LiteRT.
טיפול בנתוני קלט
כל נתון שמעבירים למודל למידת מכונה חייב להיות טנסור עם מבנה נתונים ספציפי, שלעתים קרובות נקרא צורה של הטנסור. כדי לעבד נתונים באמצעות מודל, קוד האפליקציה צריך להמיר את הנתונים מהפורמט המקורי שלהם, כמו נתוני תמונה, טקסט או אודיו, לטנסור בצורה הנדרשת למודל.
הרצת מסקנות
עיבוד נתונים באמצעות מודל כדי ליצור תוצאת חיזוי נקרא הסקת מסקנות. כדי להריץ הסקה באפליקציית Android, צריך סביבת זמן ריצה של LiteRT, מודל ונתוני קלט.
המהירות שבה מודל יכול ליצור הסקה במכשיר מסוים תלויה בגודל הנתונים שעוברים עיבוד, במורכבות של המודל ובמשאבי המחשוב הזמינים, כמו זיכרון ומעבד (CPU), או במעבדים מיוחדים שנקראים מאיצים. מודלים של למידת מכונה יכולים לפעול מהר יותר במעבדים מיוחדים כאלה, כמו מעבדים גרפיים (GPU) ומעבדי טנסור (TPU), באמצעות מנהלי התקנים של חומרה מסוג LiteRT שנקראים delegates. מידע נוסף על האצת חומרה של עיבוד מודלים ועל נציגים זמין במאמר סקירה כללית של האצת חומרה.
ניהול תוצאות הפלט
המודלים יוצרים תוצאות חיזוי כטנסורים, שהאפליקציה שלכם ל-Android צריכה לטפל בהם על ידי ביצוע פעולה או הצגת תוצאה למשתמש. תוצאות הפלט של המודל יכולות להיות פשוטות כמו מספר שמתאים לתוצאה יחידה (0 = כלב, 1 = חתול, 2 = ציפור) לסיווג תמונה, או מורכבות יותר, כמו תיבות תוחמות מרובות לכמה אובייקטים מסווגים בתמונה, עם דירוגי מהימנות של התחזית בין 0 ל-1.
תוכניות לימודים מתקדמות לפיתוח
כשמשתמשים במודלים מתוחכמים ומותאמים אישית יותר של LiteRT, יכול להיות שיהיה צורך בגישות פיתוח מתקדמות יותר מאלה שמתוארות למעלה. בקטעים הבאים מתוארות טכניקות מתקדמות להרצת מודלים ולפיתוח שלהם עבור LiteRT באפליקציות ל-Android.
סביבות הרצה מתקדמות
בנוסף לסביבות הרגילות של זמן הריצה ושל זמן הריצה של שירותי Google Play עבור LiteRT, יש סביבות נוספות של זמן ריצה שאפשר להשתמש בהן באפליקציית Android. השימוש בסביבות האלה הכי סביר אם יש לכם מודל של למידת מכונה שמשתמש בפעולות ML שלא נתמכות על ידי סביבת זמן הריצה הרגילה של LiteRT.
- זמן ריצה גמיש ל-LiteRT
- זמן ריצה (runtime) של LiteRT בהתאמה אישית
זמן הריצה הגמיש של LiteRT מאפשר לכם לכלול אופרטורים ספציפיים שנדרשים למודל. כאפשרות מתקדמת להפעלת המודל, אפשר ליצור את LiteRT ל-Android כדי לכלול אופרטורים ופונקציות אחרות שנדרשות להפעלת מודל למידת מכונה של TensorFlow. מידע נוסף זמין במאמר בנושא בניית LiteRT ל-Android.
ממשקי API של C ו-C++
LiteRT מספק גם API להרצת מודלים באמצעות C ו-C++. אם האפליקציה שלכם משתמשת ב-Android NDK, כדאי לשקול שימוש ב-API הזה. כדאי גם לשקול להשתמש ב-API הזה אם רוצים לשתף קוד בין כמה פלטפורמות. מידע נוסף על אפשרות הפיתוח הזו זמין בדף כלים למפתחים.
הרצת מודל שמבוסס על שרת
באופן כללי, מומלץ להריץ מודלים באפליקציה במכשיר Android כדי ליהנות מיתרונות של חביון נמוך יותר ושיפור הפרטיות של הנתונים עבור המשתמשים. עם זאת, יש מקרים שבהם עדיף להריץ מודל בשרת בענן, מחוץ למכשיר. לדוגמה, אם יש לכם מודל גדול שלא ניתן לדחוס בקלות לגודל שמתאים למכשירי Android של המשתמשים, או שלא ניתן להפעיל אותו בביצועים סבירים במכשירים האלה. הגישה הזו עשויה להיות הפתרון המועדף עליכם גם אם חשוב לכם שהמודל יפעל באופן עקבי במגוון רחב של מכשירים.
Google Cloud מציעה חבילה מלאה של שירותים להרצת מודלים של AI. מידע נוסף זמין בדף מוצרי AI ולמידת מכונה של Google Cloud.
פיתוח ואופטימיזציה של מודלים בהתאמה אישית
סביר להניח שתוכניות פיתוח מתקדמות יותר יכללו פיתוח של מודלים מותאמים אישית ללמידת מכונה ואופטימיזציה של המודלים האלה לשימוש במכשירי Android. אם אתם מתכננים ליצור מודלים בהתאמה אישית, הקפידו להשתמש בטכניקות קוונטיזציה כדי לצמצם את העלויות של הזיכרון והעיבוד. מידע נוסף על יצירת מודלים עם ביצועים גבוהים לשימוש ב-LiteRT זמין במאמר שיטות מומלצות לשיפור הביצועים בקטע 'מודלים'.
גרסאות Android נתמכות
| גרסת LiteRT | סטטוס | רמת ה-SDK המינימלית | רמת NDK מינימלית (אם נעשה שימוש) | תאריך פרסום |
|---|---|---|---|---|
v1.2.0 ⭐ |
✅ פעיל | 21 (Android 5 Lollipop) |
r26a |
2025-03-13 |
חשוב: כדי להבטיח תאימות לתכונות העדכניות ולעדכוני האבטחה, חשוב לעדכן את התלות שלכם.