LiteRT מאפשר להריץ מודלים של למידת מכונה (ML) של TensorFlow אפליקציות ל-Android. מערכת LiteRT מספקת מערכת מובנית מראש וניתנת להתאמה אישית סביבות ביצוע להרצת מודלים ב-Android במהירות וביעילות, כולל אפשרויות לשיפור מהירות באמצעות חומרה.
מודלים של למידת מכונה
ב-LiteRT נעשה שימוש במודלים של TensorFlow שעברו המרה למודלים קטנים יותר, פורמט של מודל למידת מכונה יעיל ונייד יותר. אפשר להשתמש בתכונות ב-LiteRT ב-Android, או לפתח מודלים של TensorFlow להמיר אותם לפורמט LiteRT.
בדף הזה מוסבר על שימוש במודלים מוכנים של למידת מכונה, בנושאים של בנייה, אימון, בדיקה או המרה של מודלים. מידע נוסף על בחירה, שינוי, פיתוח והמרה של מודלים של למידת מכונה LiteRT בדף Models.
הפעלת מודלים ב-Android
מודל LiteRT שפועל באפליקציה ל-Android מקבל נתונים, תהליכים של הנתונים, ויוצרת חיזוי שמבוסס על הלוגיקה של המודל. A TensorFlow כדי להפעיל את המודל Lite נדרשת סביבת זמן ריצה מיוחדת. הנתונים שמועברים למודל חייבים להיות בפורמט נתונים ספציפי, שנקרא tensor. כשהמודל מעבד את נתונים, שנקראים הרצת הסקה, היא יוצרת תוצאות חיזוי את Tensors, ומעביר אותם לאפליקציה ל-Android כדי שיוכל לבצע פעולה, כמו מציג את התוצאה למשתמש או מבצע לוגיקה עסקית נוספת.
איור 1. תהליך ביצוע פונקציונלי למודלים של LiteRT ב-Android תרגום מכונה.
ברמת העיצוב הפונקציונלי, האפליקציה ל-Android צריכה את הרכיבים הבאים כדי: להריץ מודל LiteRT:
- סביבת זמן הריצה של LiteRT להפעלת המודל
- מודל handler של קלט למודל כדי להפוך נתונים לטינורים
- Model handler handler: כדי לקבל את הפרמטרים Tensor של תוצאות הפלט ולפרש אותם כתוצאות חיזוי
בקטעים הבאים מתואר האופן שבו הספריות והכלים של LiteRT מספקים את האלמנטים הפונקציונליים האלה.
בניית אפליקציות עם LiteRT
בקטע הזה מתואר הנתיב המומלץ והנפוצ ביותר להטמעה LiteRT באפליקציה ל-Android. עליך לשים לב ביותר בקטעים סביבת זמן ריצה וספריות פיתוח. אם המיקום ויצרת מודל מותאם אישית, הקפידו לעיין בהנחיות 'נתיבים'.
אפשרויות של סביבת זמן ריצה
יש כמה דרכים להפעיל סביבת זמן ריצה לצורך הפעלת מודלים באפליקציה ל-Android. אלה האפשרויות המועדפות:
- LiteRT בזמן הריצה של Google Play Services סביבה (מומלץ)
- סביבה עצמאית של זמן ריצה של LiteRT
באופן כללי, עליך להשתמש בסביבת זמן הריצה שמסופקת על ידי Google Play מאחר שהיא חסכונית יותר בחלל מהסביבה הסטנדרטית, היא נטענת באופן דינמי, כך שגודל האפליקציה נשאר קטן יותר. גם Google Play Services משתמש אוטומטית בגרסה היציבה והעדכנית ביותר של LiteRT זמן ריצה, כך שתוכלו ליהנות מתכונות נוספות ולשפר את הביצועים לאורך זמן. אם המיקום הצעת את האפליקציה שלך במכשירים שלא כוללים את Google Play Services, או שלא צריך לנהל בקפדנות את סביבת זמן הריצה של למידת מכונה, אז צריך להשתמש זמן ריצה רגיל של LiteRT. אפשרות זו מאגדת קוד נוסף כך שתהיה לכם יותר שליטה על זמן הריצה של למידת מכונה באפליקציה שלכם העלות של הגדלת גודל ההורדה של האפליקציה.
כדי לגשת לסביבות זמן הריצה האלה באפליקציה ל-Android צריך להוסיף את TensorFlow ספריות פיתוח Lite לסביבת הפיתוח של האפליקציה. למידע איך להשתמש בסביבות זמן הריצה הרגילות באפליקציה, .
ספריות
ניתן לגשת לממשק ה-API של 'תרגום שיחה פעילה' דרך Google Play שירותים שונים. אפשר להשתמש core ו-LiteRT לתמוך בספריות באפליקציה ל-Android. עבור פרטי תכנות לגבי שימוש בספריות LiteRT ובזמן ריצה במאמר כלי פיתוח ל-Android.
קבלת מודלים
כדי להפעיל מודל באפליקציה ל-Android נדרש מודל בפורמט LiteRT. שלך להשתמש במודלים מוכנים מראש או לבנות מודל עם TensorFlow ולהמיר אותו הפורמט. למידע נוסף על השגת מודלים לאפליקציה ל-Android, אפשר לעיין במאמר הדף מודלים של LiteRT.
טיפול בנתוני הקלט
כל הנתונים שאתם מעבירים למודל למידת מכונה חייבים להיות טנזור עם נתונים ספציפיים נקרא גם הצורה של הטנזור. כדי לעבד נתונים באמצעות מודל, קוד האפליקציה חייב לשנות את הנתונים מהפורמט המקורי שלו, כמו תמונה, טקסט, או נתוני אודיו לטרנספורמר בצורה הנדרשת למודל.
הרצת ההסקה
עיבוד הנתונים באמצעות מודל כדי ליצור תוצאת חיזוי נקרא והרצת הֶקֵּשׁ. כדי להריץ מסקנות באפליקציה ל-Android סביבת זמן ריצה של LiteRT, מודל וקלט .
המהירות שבה מודל יכול ליצור הסקת מסקנות על מכשיר מסוים תלוי בגודל הנתונים שמעובדים, במורכבות המודל, כמו זיכרון ומעבד (CPU), או מעבדים מיוחדים שנקרא מאיצים. מודלים של למידת מכונה יכולים לפעול מהר יותר מעבדים מיוחדים, כמו יחידות עיבוד גרפיות (GPU) וטנזור. יחידות עיבוד (TPU), באמצעות מנהלי התקנים של חומרת LiteRT שנקראו נציגים. למידע נוסף על מקבלי הרשאה והאצת חומרה של מידע נוסף על עיבוד המודל, ראו האצת חומרה סקירה כללית.
טיפול בתוצאות הפלט
מודלים יוצרים תוצאות חיזוי כרכיבי tensor, וצריך לטפל בהן אפליקציה ל-Android על ידי ביצוע פעולה או הצגת תוצאה למשתמש. הפלט של המודל תוצאות יכולות להיות פשוטות כמו מספר שתואם לתוצאה יחידה (0 = כלב, 1 = חתול, 2 = ציפור) לסיווג תמונות, לתוצאות מורכבות יותר. כמו כמה תיבות תוחמות למספר אובייקטים מסווגים בתמונה, של צפי הסמך, בין 0 ל-1.
מסלולי פיתוח מתקדמים
כשמשתמשים בדגמי LiteRT מתוחכמים ומותאמים אישית יותר, ניתן להשתמש בגישות פיתוח מתקדמות יותר ממה שתואר למעלה. החלקים הבאים מתארים טכניקות מתקדמות לביצוע מודלים לפתח אותם עבור LiteRT באפליקציות ל-Android.
סביבות זמן ריצה מתקדמות
בנוסף לזמן הריצה הרגיל ולזמן הריצה של Google Play Services ל-LiteRT, יש סביבות זמן ריצה נוספות שאפשר להשתמש בהם באפליקציה ל-Android. השימוש הסביר ביותר בסביבות אלה הוא אם יש מודל למידת מכונה שמשתמש בפעולות של למידת מכונה שלא נתמכות בסביבת זמן הריצה הרגילה של LiteRT.
- Flex runtime עבור LiteRT
- זמן ריצה מותאם אישית של LiteRT
זמן ריצה של Flex LiteRT מאפשר לכלול אופרטורים ספציפיים הנדרשים למודל שלך. כאפשרות מתקדמת לריצה את המודל, אפשר לבנות את LiteRT ל-Android כדי לכלול אופרטורים פונקציונליות אחרת שנדרשת להפעלת מודל למידת המכונה של TensorFlow. למידע נוסף, ראו בניית LiteRT ל-Android.
ממשקי API של C ו-C++
LiteRT מספק גם ממשק API להרצת מודלים באמצעות C ו-C++. אם משתמש ב-Android NDK, עליך כדאי להשתמש ב-API הזה. כדאי גם להשתמש בממשק ה-API הזה אם יכולת לשתף קוד בין מספר פלטפורמות. אפשר לקבל מידע נוסף על אפשרות פיתוח זו, ראו פיתוח הדף 'כלים'.
הפעלת מודל מבוסס-שרת
באופן כללי, צריך להריץ מודלים באפליקציה במכשיר Android כדי נהנים מזמן אחזור קצר ומפרטיות נתונים משופרת למשתמשים. אבל, לפעמים יש מקרים שבהם עדיף להפעיל מודל בשרת ענן, מחוץ למכשיר. לפתרון הבעיה. לדוגמה, אם יש לכם מודל גדול שלא דוחס בקלות עד גודל שמתאים למשתמשים מכשירי Android, או שאפשר להריץ באמצעות ביצועים סבירים במכשירים אלה. הגישה הזו יכולה להיות גם הפתרון המועדף, אם הביצועים של המודל עקביים בטווח רחב של המכשירים נמצאים בעדיפות עליונה.
ב-Google Cloud יש חבילה מלאה של שירותים להרצת מכונת TensorFlow מודלים של למידת מכונה. למידע נוסף, אפשר לעיין בהסבר על הבינה המלאכותית והמכונות ב-Google Cloud מוצרי למידה.
פיתוח ואופטימיזציה של מודלים מותאמים אישית
מסלולי פיתוח מתקדמים יותר עשויים לכלול פיתוח של מכונות מותאמות אישית של למידת מכונה ואופטימיזציה של המודלים האלה לשימוש במכשירי Android. אם לתכנן מודלים מותאמים אישית, וכדאי שתשקלו להשתמש ב שיטות לצמצום עלויות של זיכרון ועיבוד. למידע נוסף על מודלים בעלי ביצועים גבוהים לשימוש ב-LiteRT, ניתן לעיין בקטע הביצועים הטובים ביותר שיטות בקטע 'מודלים'.