סקירה כללית של המרות לפי מודל

המודלים של למידת המכונה (ML) שבהם אתם משתמשים ב-LiteRT הם במקור פותחו והוכשרו באמצעות ספריות וכלים מרכזיים של TensorFlow. אחרי שבנית מודל עם ליבה של TensorFlow, אפשר להמיר אותו זהו פורמט יעיל של מודל למידת מכונה שנקרא מודל LiteRT. בקטע הזה מפורטות הנחיות לביצוע המרות במודלים של TensorFlow לפורמט של מודל LiteRT.

תהליך עבודה של המרות

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

בתרשים הבא מוצגים השלבים הכלליים בהמרת מודל.

תהליך עבודה של המרה ב-TFLite

איור 1. תהליך עבודה של המרת LiteRT.

בקטעים הבאים מפורט התהליך של הערכה והמרה של מודלים לשימוש ב-LiteRT.

פורמטים של מודל קלט

אפשר להשתמש בממיר עם הפורמטים הבאים של מודל קלט:

אפשר לשמור גם את המודלים של פונקציות Keras וגם מודלים של פונקציות בטון כ-SavedModel וממירים באמצעות הנתיב המומלץ.

אם יש לך מודל Jax, אפשר להשתמש ב-TFLiteConverter.experimental_from_jax API כדי להמיר אותו לפורמט LiteRT. שימו לב שה-API הזה כפוף כדי להשתנות במצב ניסיוני.

הערכת המרות

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

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

המרה של מודל

ממיר LiteRT משתמש במודל TensorFlow ויוצר מודל LiteRT (מודל שעבר אופטימיזציה פורמט FlatBuffer מזוהה על ידי סיומת הקובץ .tflite). אפשר לטעון מודל שמור או המרה ישירה של מודל שיצרתם בקוד.

כשמבצעים המרה, המערכת מתייחסת ל-3 דגלים (או אפשרויות) עיקריים להתאמה אישית של ההמרה עבור המודל שלכם:

  1. סימוני תאימות מאפשרים לציין האם ההמרה לאפשר אופרטורים מותאמים אישית.
  2. סימוני אופטימיזציה מאפשרים לציין את סוג האופטימיזציה שרוצים להחיל במהלך ההמרה. שיטת האופטימיזציה הנפוצה ביותר היא קווניזציה לאחר האימון.
  3. דגלים של מטא-נתונים מאפשרים להוסיף מטא-נתונים למודל שהומר שמקל על יצירת קוד wrapper ספציפי לפלטפורמה בזמן הפריסה במכשירים ניידים.

תוכלו להמיר את המודל באמצעות API של Python או כלי שורת הפקודה. לצפייה מדריך מפורט להמרת מודל TF הוראות להפעלת הממיר במודל שלך.

בדרך כלל ממירים את המודל לפורמט LiteRT הרגיל סביבת זמן הריצה סביבת זמן הריצה של Google Play Services עבור LiteRT (בטא). תרחישים מתקדמים לדוגמה מחייבים התאמה אישית של סביבת זמן הריצה של המודל, שמחייבת שלבים נוספים תהליך ההמרה. לצפייה סביבת זמן ריצה מתקדמת ב-Android לקבלת הנחיות נוספות.

המרה מתקדמת

נתקלתם בשגיאות? בזמן שהפעלתם את הממיר במודל שלכם, סביר להניח שיש בעיית תאימות של מפעיל. לא כל פעולות TensorFlow נתמך על ידי TensorFlow Lite. כדי לפתור את הבעיות האלה אפשר לארגן מחדש את המודל (Refactoring) או להשתמש אפשרויות המרה מתקדמות, שמאפשרות ליצור LiteRT שעבר שינוי וסביבת זמן ריצה מותאמת אישית למודל הזה.

השלבים הבאים