סקירה כללית של LiteRT

‫LiteRT (קיצור של Lite Runtime), שנקרא בעבר TensorFlow Lite, הוא זמן ריצה של Google עם ביצועים גבוהים ל-AI במכשיר. אתם יכולים למצוא מודלים של LiteRT שמוכנים להרצה למגוון רחב של משימות של למידת מכונה (ML) או AI, או להמיר ולהריץ מודלים של TensorFlow,‏ PyTorch ו-JAX לפורמט TFLite באמצעות כלי ההמרה והאופטימיזציה של AI Edge.

תכונות עיקריות

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

  • תמיכה במספר פלטפורמות: תואם למכשירי Android ו-iOS, ל-Linux מוטמע ול-מיקרו-בקרים.

  • אפשרויות למודלים מרובי-מסגרות: AI Edge מספק כלים להמרת מודלים מ-PyTorch ומ-TensorFlow לפורמט FlatBuffers ‏ (.tflite), וכך מאפשר לכם להשתמש במגוון רחב של מודלים מתקדמים ב-LiteRT. יש לכם גם גישה לכלים לאופטימיזציה של מודלים, שיכולים לטפל בקוונטיזציה ובמטא-נתונים.

  • תמיכה במגוון שפות: כולל SDKs ל-Java/Kotlin,‏ Swift,‏ Objective-C,‏ C++‎ ו-Python.

  • ביצועים גבוהים: האצת חומרה באמצעות נציגים ייעודיים כמו GPU ו-iOS Core ML.

תהליך עבודה של פיתוח

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

1. זיהוי הפתרון המתאים ביותר לבעיה של למידת מכונה

‫LiteRT מציע למשתמשים גמישות גבוהה ואפשרויות התאמה אישית רבות כשמדובר בפתרון בעיות של למידת מכונה, ולכן הוא מתאים למשתמשים שזקוקים למודל ספציפי או להטמעה מיוחדת. משתמשים שמחפשים פתרונות plug-and-play עשויים להעדיף את MediaPipe Tasks, שמספק פתרונות מוכנים מראש למשימות נפוצות של למידת מכונה, כמו זיהוי אובייקטים, סיווג טקסט והסקת מסקנות של LLM.

בוחרים אחת ממסגרות ה-AI Edge הבאות:

  • LiteRT: סביבת זמן ריצה גמישה וניתנת להתאמה אישית שיכולה להריץ מגוון רחב של מודלים. בוחרים מודל לתרחיש השימוש, ממירים אותו לפורמט LiteRT (אם צריך) ומריצים אותו במכשיר. אם אתם מתכוונים להשתמש ב-LiteRT, כדאי להמשיך לקרוא.
  • MediaPipe Tasks: פתרונות plug-and-play עם מודלים שמוגדרים כברירת מחדל ומאפשרים התאמה אישית. בוחרים את המשימה שפותרת את הבעיה שלכם ב-AI/ML, ומיישמים אותה בכמה פלטפורמות. אם אתם מתכוונים להשתמש ב-MediaPipe Tasks, כדאי לעיין במסמכי התיעוד של MediaPipe Tasks.

2. בחירת מודל

מודל LiteRT מיוצג בפורמט נייד ויעיל שנקרא FlatBuffers, עם סיומת הקובץ .tflite.

אפשר להשתמש במודל LiteRT בדרכים הבאות:

  • שימוש במודל LiteRT קיים: הגישה הפשוטה ביותר היא להשתמש במודל LiteRT שכבר קיים בפורמט .tflite. המודלים האלה לא דורשים שלבי המרה נוספים. אפשר למצוא מודלים של LiteRT ב-Kaggle Models.

  • המרת מודל למודל LiteRT: אפשר להשתמש ב-PyTorch Converter או ב-TensorFlow Converter כדי להמיר מודלים לפורמט FlatBuffers ‏ (.tflite) ולהריץ אותם ב-LiteRT. כדי להתחיל, אפשר למצוא מודלים באתרים הבאים:

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

3. שילוב המודל באפליקציה

אתם יכולים להטמיע את מודלי LiteRT כדי להריץ מסקנות באופן מלא במכשיר באינטרנט, במכשירים מוטמעים ובמכשירים ניידים. ‫LiteRT כולל ממשקי API ל-Python,‏ Java ו-Kotlin ל-Android,‏ Swift ל-iOS ו-C++‎ למכשירים קטנים.

כדי להטמיע מודל LiteRT בפלטפורמה המועדפת, אפשר להיעזר במדריכים הבאים:

  • הפעלה ב-Android: הפעלת מודלים במכשירי Android באמצעות ממשקי Java/Kotlin API.
  • הרצה ב-iOS: הרצת מודלים במכשירי iOS באמצעות ממשקי ה-API של Swift.
  • Run on Micro: הפעלת מודלים במכשירים מוטמעים באמצעות ממשקי ה-API של C++.

במכשירי Android ו-iOS, אפשר לשפר את הביצועים באמצעות האצת חומרה. בכל אחת מהפלטפורמות אפשר להשתמש ב-GPU Delegate, וב-iOS אפשר להשתמש ב-Core ML Delegate. כדי להוסיף תמיכה במאיצי חומרה חדשים, אפשר להגדיר נציג משלכם.

אפשר להריץ הסקה בדרכים הבאות, בהתאם לסוג המודל:

  • מודלים ללא מטא-נתונים: אפשר להשתמש ב-API של LiteRT Interpreter. התמיכה קיימת בפלטפורמות ובשפות שונות, כמו Java,‏ Swift,‏ C++‎,‏ Objective-C ו-Python.

  • מודלים עם מטא-נתונים: אפשר ליצור צינורות הסקה מותאמים אישית באמצעות ספריית התמיכה של LiteRT.

העברה מ-TF Lite

אפליקציות שמשתמשות בספריות TF Lite ימשיכו לפעול, אבל כל פיתוח ועדכונים חדשים יכללו רק בחבילות LiteRT. ממשקי ה-API של LiteRT מכילים את אותם שמות של שיטות כמו ממשקי ה-API של TF Lite, כך שמעבר ל-LiteRT לא דורש שינויים מפורטים בקוד.

מידע נוסף זמין במדריך להעברת נתונים.

השלבים הבאים

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

המרת מודל

מדריכים לפלטפורמות