המודלים של למידת המכונה (ML) שבהם אתם משתמשים ב-LiteRT הם במקור פותחו והוכשרו באמצעות ספריות וכלים מרכזיים של TensorFlow. אחרי שבנית מודל עם ליבה של TensorFlow, אפשר להמיר אותו זהו פורמט יעיל של מודל למידת מכונה שנקרא מודל LiteRT. בקטע הזה מפורטות הנחיות לביצוע המרות במודלים של TensorFlow לפורמט של מודל LiteRT.
תהליך עבודה של המרות
יש כמה דרכים להמיר מודלים של TensorFlow לפורמט LiteRT בהתאם לתוכן של מודל למידת המכונה שלכם. בשלב הראשון בתהליך הזה, עליכם להעריך את המודל כדי לראות אם ניתן להמיר אותו באופן ישיר. ההערכה הזו קובעת אם התוכן של המודל נתמך על ידי סביבות זמן ריצה רגילות של LiteRT שמבוססות על פעולות TensorFlow שבה הוא משתמש. אם המודל שלך משתמש בפעולות מחוץ לקבוצה הנתמכת, עליך אפשרות לשנות את ארגון המודל או להשתמש בשיטות המרה מתקדמות.
בתרשים הבא מוצגים השלבים הכלליים בהמרת מודל.
איור 1. תהליך עבודה של המרת LiteRT.
בקטעים הבאים מפורט התהליך של הערכה והמרה של מודלים לשימוש ב-LiteRT.
פורמטים של מודל קלט
אפשר להשתמש בממיר עם הפורמטים הבאים של מודל קלט:
- SavedModel (מומלץ): מודל TensorFlow שנשמר כקבוצת קבצים בדיסק.
- מודל Keeras: מודל שנוצר באמצעות Keras API ברמה גבוהה.
- פורמט Keeras H5: חלופה קלילה לפורמט SaveModel שנתמך על ידי Keras API.
- מודלים שנוצרו מפונקציות בטון: מודל שנוצר באמצעות API של TensorFlow ברמה נמוכה.
אפשר לשמור גם את המודלים של פונקציות Keras וגם מודלים של פונקציות בטון כ-SavedModel וממירים באמצעות הנתיב המומלץ.
אם יש לך מודל Jax, אפשר להשתמש ב-TFLiteConverter.experimental_from_jax
API כדי להמיר אותו לפורמט LiteRT. שימו לב שה-API הזה כפוף
כדי להשתנות במצב ניסיוני.
הערכת המרות
הערכת המודל היא שלב חשוב לפני שמנסים להמיר אותו. בזמן הבדיקה, שאתם רוצים לקבוע אם התוכן של המודל תואם פורמט LiteRT. צריך גם להחליט אם המודל מתאים לשימוש לשימוש במכשירים ניידים ובמכשירי קצה מבחינת נפח הנתונים שהמודל משתמש בהם, לדרישות עיבוד החומרה שלו, והגודל הכולל של המודל את המורכבות שלו.
במודלים רבים, הממיר צריך לפעול באופן עצמאי. אבל, לפעמים ספריית המפעילים המובנית של LiteRT תומכת בקבוצת משנה של אופרטורים של ליבה של TensorFlow, לכן יכול להיות שחלק מהמודלים יצטרכו שלבים לפני המרה ל-LiteRT. בנוסף, חלק מהפעולות שנתמכות על ידי LiteRT דרישות שימוש מוגבלות מסיבות של ביצועים. לצפייה מדריך לתאימות למפעילים כדי לקבוע אם המודל שלכם צריך לעבור ארגון מחדש לצורך המרה.
המרה של מודל
ממיר LiteRT משתמש במודל TensorFlow ויוצר
מודל LiteRT (מודל שעבר אופטימיזציה
פורמט FlatBuffer מזוהה על ידי
סיומת הקובץ .tflite
). אפשר לטעון
מודל שמור או המרה ישירה של מודל שיצרתם בקוד.
כשמבצעים המרה, המערכת מתייחסת ל-3 דגלים (או אפשרויות) עיקריים להתאמה אישית של ההמרה עבור המודל שלכם:
- סימוני תאימות מאפשרים לציין האם ההמרה לאפשר אופרטורים מותאמים אישית.
- סימוני אופטימיזציה מאפשרים לציין את סוג האופטימיזציה שרוצים להחיל במהלך ההמרה. שיטת האופטימיזציה הנפוצה ביותר היא קווניזציה לאחר האימון.
- דגלים של מטא-נתונים מאפשרים להוסיף מטא-נתונים למודל שהומר שמקל על יצירת קוד wrapper ספציפי לפלטפורמה בזמן הפריסה במכשירים ניידים.
תוכלו להמיר את המודל באמצעות API של Python או כלי שורת הפקודה. לצפייה מדריך מפורט להמרת מודל TF הוראות להפעלת הממיר במודל שלך.
בדרך כלל ממירים את המודל לפורמט LiteRT הרגיל סביבת זמן הריצה סביבת זמן הריצה של Google Play Services עבור LiteRT (בטא). תרחישים מתקדמים לדוגמה מחייבים התאמה אישית של סביבת זמן הריצה של המודל, שמחייבת שלבים נוספים תהליך ההמרה. לצפייה סביבת זמן ריצה מתקדמת ב-Android לקבלת הנחיות נוספות.
המרה מתקדמת
נתקלתם בשגיאות? בזמן שהפעלתם את הממיר במודל שלכם, סביר להניח שיש בעיית תאימות של מפעיל. לא כל פעולות TensorFlow נתמך על ידי TensorFlow Lite. כדי לפתור את הבעיות האלה אפשר לארגן מחדש את המודל (Refactoring) או להשתמש אפשרויות המרה מתקדמות, שמאפשרות ליצור LiteRT שעבר שינוי וסביבת זמן ריצה מותאמת אישית למודל הזה.
- סקירה כללית על תאימות של מודלים למידע נוסף על התאימות של מודלים של TensorFlow ו-LiteRT שיקולים.
- הנושאים בסקירה הכללית של תאימות המודל עוסקים בשיטות מתקדמות של ארגון מחדש של המודל, למשל בחירת אופרטורים מותאמת אישית.
- לרשימה המלאה של הפעולות ומגבלות: דף תפעול LiteRT.
השלבים הבאים
- כדי להתחיל במהירות, מומלץ לעיין במדריך בנושא המרת מודלים של TF להמיר את המודל.
- אפשר לעיין בסקירה כללית בנושא אופטימיזציה כדי הנחיות לביצוע אופטימיזציה של המודל שעבר המרה באמצעות שיטות כמו קווניזציה לאחר האימון.
- אפשר לקרוא מידע נוסף על הוספת מטא-נתונים בסקירה הכללית על הוספת מטא-נתונים של המודלים שלך. מטא נתונים מספקים גם שימושים אחרים בתיאור של המודל שלך כמו מידע שאפשר להשתמש בו על ידי מחוללי קוד.