تصدير نماذج YOLO إلى LiteRT للنشر على الحافة والويب#
LiteRT (اختصارًا لـ Lite Runtime) هو بيئة التشغيل عالية الأداء من Google للذكاء الاصطناعي على الجهاز. وهو الجيل التالي والاسم الجديد لـ TensorFlow Lite (TFLite)، ويشغّل تنسيق النموذج نفسه .tflite. باستخدام LiteRT، يُنشر نموذج Ultralytics YOLO واحد مُصدَّر عبر الأجهزة المحمولة والمضمّنة والحافة والمتصفح، ليغطي كل ما كانت تنسيقات التصدير الأقدم tflite وtfjs تتعامل معه بشكل منفصل، والآن ضمن مظلة واحدة.
Watch: How to Export Ultralytics YOLO26 to Google LiteRT | Deploy Vision AI on Android & iOS | Mobile AI 📱🚀
يُحسّن تنسيق تصدير LiteRT نماذجك لمهام مثل اكتشاف الأجسام والتقسيم وتقدير الوضعية والتصنيف، بحيث تعمل بسرعة ودون اتصال بالإنترنت على مجموعة واسعة من الأجهزة.
تشغّل إضافة Ultralytics YOLO الرسمية لـ Flutter عمليات تصدير LiteRT .tflite على Android مباشرةً، مع استدلال فوري من الكاميرا، والتنبؤ بصورة واحدة، وتسريع GPU، وتنزيل تلقائي للنموذج لجميع مهام YOLO26 السبع، بما في ذلك Depth. بالنسبة إلى أجهزة Apple، استخدم تصدير CoreML، وبالنسبة إلى NPU من Qualcomm Snapdragon، راجع تكامل Qualcomm QNN.
صدّر نماذج التصنيف في imgsz=224. وصدّر نماذج الكشف والتقسيم والتقسيم الدلالي والعمق والوضعية وOBB في
imgsz=640. ويُستخدم هذا المعيار 224/640 في أصول LiteRT وCoreML وQNN الرسمية للأجهزة المحمولة.
تشغّل حزمة Ultralytics YOLO الرسمية لـ NPM عمليات تصدير LiteRT .tflite مباشرةً في المتصفح عبر LiteRT.js، من دون الحاجة إلى خادم أو Python، مع استدلال فوري من كاميرا الويب، والتنبؤ بصورة واحدة، وتسريع WebGPU (مع الرجوع التلقائي إلى CPU/WASM) عبر مهام YOLO26 الست (الكشف والتقسيم والوضعية وOBB والتصنيف والتقسيم الدلالي). وعلى WebGPU، يكون غالبًا أسرع بنحو ~2× من ONNX Runtime Web.
npm i @ultralytics/yolo @litertjs/coreلماذا ينبغي لك التصدير إلى LiteRT؟#
LiteRT هو إطار عمل مفتوح المصدر مصمم للاستدلال على الجهاز، ويُعرف أيضًا باسم الحوسبة الطرفية. ويوفر للمطورين الأدوات اللازمة لتنفيذ النماذج المدرَّبة على الأجهزة المحمولة والمضمّنة وأجهزة IoT، وأجهزة الكمبيوتر التقليدية، وكذلك مباشرةً في متصفحات الويب وNode.js من خلال LiteRT.js.
تنسيق نموذج واحد، وكل وجهات النشر:
- الأجهزة المحمولة والمضمّنة: Android وiOS وLinux المضمّن ووحدات التحكم الدقيقة (MCUs).
- مسرّعات الحافة: متوافق مع Coral Edge TPU لمزيد من التسريع.
- المتصفح وNode.js: يشغّل LiteRT.js النموذج نفسه
.tfliteعلى الويب مع تسريع WebGPU/WASM، ما يلغي الحاجة إلى تصدير TensorFlow.js منفصل.
الميزات الرئيسية لنماذج LiteRT#
- التحسين على الجهاز: يقلل زمن الاستجابة عبر معالجة البيانات محليًا، ويعزز الخصوصية من خلال عدم نقل البيانات الشخصية، ويقلل حجم النموذج لتوفير المساحة.
- دعم منصات متعددة: يعمل على Android وiOS وLinux المضمّن ووحدات التحكم الدقيقة ومتصفحات الويب الحديثة.
- تسريع الأجهزة: يستفيد من XNNPACK على CPU، ومن تسريع GPU عبر OpenCL وMetal وWebGPU. ويعمل مفوَّض GPU افتراضيًا بدقة FP16 لمزيد من السرعة.
- التكميم: يدعم FP32 وINT8 الثابت (
quantize=8، أوزان int8 وتنشيطات int8) وINT16-activation الثابت (quantize="w8a16"، أوزان int8 وتنشيطات int16 لدقة أعلى) وINT8 الديناميكي (quantize="w8a32"، أوزان int8 وتنشيطات FP32، من دون الحاجة إلى بيانات معايرة) لضغط النماذج وتسريع الاستدلال مع فقدان طفيف في الدقة. - دعم لغات متنوع: متوافق مع Java/Kotlin وSwift وObjective-C وC++ وPython وJavaScript.
الأداء المُقاس#
الأجهزة: Xiaomi 17 بذاكرة LPDDR5X سعتها 12 GB وAndroid 16 / API 36. ويحتوي Snapdragon 8 Elite Gen 5 بدقة تصنيع 3 nm (SM8850) على CPU من Qualcomm Oryon بثماني أنوية (نواتان Prime بتردد يصل إلى 4.6 GHz و6 أنوية Performance بتردد يصل إلى 3.62 GHz)، ووحدة GPU من Adreno ووحدة NPU من Hexagon.
| النموذج | المهمة | الحجم (بكسل) | CPU w8a32 LiteRT (ms) | GPU w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | Detect | 640 | 52.2 1.8 / 48.1 / 2.4 | 15.8 2.3 / 8.9 / 4.6 |
| YOLO26n-seg | Segment | 640 | 73.4 1.8 / 65.6 / 6.0 | 33.2 1.8 / 23.8 / 7.6 |
| YOLO26n-sem | دلالي | 640 | 61.2 1.8 / 51.1 / 8.3 | 34.2 1.8 / 24.0 / 8.3 |
| YOLO26n-depth | العمق | 640 | 124.4 1.9 / 115.1 / 7.4 | 23.0 1.8 / 13.5 / 7.7 |
| YOLO26n-cls | التصنيف | 224 | 4.4 0.4 / 4.0 / 0.0 | 3.1 0.8 / 2.1 / 0.2 |
| YOLO26n-pose | الوضعية | 640 | 57.4 1.8 / 53.8 / 1.8 | 16.6 2.7 / 10.1 / 3.9 |
| YOLO26n-obb | OBB | 640 | 50.3 1.8 / 47.2 / 1.4 | 11.7 1.8 / 7.8 / 2.0 |
- قيم السرعة هي أزمنة استجابة متتالية لصورة واحدة، أي متوسط 15 تشغيلًا بعد 3 عمليات إحماء على
bus.jpg، وقد قِيست باستخدام إضافة Ultralytics Flutter0.6.10والأصول المعياريةv0.6.6. وقد تناوب ترتيب CPU/GPU بين المهام ضمن جولة تسلسلية واحدة. وأكدت السجلات الأصلية أن كل صف خاص بـ CPU استخدم LiteRT CPU/XNNPACK، وأن كل صف خاص بـ GPU فوّض الرسم البياني الكامل إلى LiteRT OpenCL (LITERT_CL). - يتتبّع تصدير LiteRT نموذج PyTorch مباشرةً، وينتج
.tfliteNCHW بمدخل عائم، إذ يترجم مفوَّض GPU الرسم البياني بأكمله (وتعمل جميع المهام السبع على GPU من Adreno هنا)، ولا يحتاجw8a32إلى بيانات معايرة. ينبغي للمستهلكين قراءة أشكال الموترات وأسماء التوقيعات بدلًا من افتراض تخطيط NHWC القديم الخاص بـ onnx2tf أو أسماء المخرجاتIdentity؛ إذ يجب تعبئة بيانات RGB مباشرةً بصيغة CHW المستوية أو تبديل محاورها قبل الاستدلال. وتُرجع عمليات التصدير الدلالية logits بتنسيق NCHW وتتطلب حساب argmax للفئة على المضيف. وتُستضاف أصول Android الرسمية في إصدار yolo-flutter-appv0.6.6، مع سجل القياس التفصيلي في وثيقة أداء Flutter. - توجد أرقام NPU من Hexagon المطابقة على Snapdragon، إلى جانب أرقام LiteRT الخاصة بـ CPU/GPU، في تكامل Qualcomm QNN.
- قارن نتائج CPU/المسرّع على Apple في تكامل CoreML.
تستخدم عمليات المسح التالية للأجهزة الأصول المعيارية نفسها v0.6.6.
Google Pixel 10#
الأجهزة: Google Pixel 10 بذاكرة سعتها 12 GB وAndroid 16 / API 36. ويحتوي Google Tensor G5 بدقة تصنيع 3 nm على CPU بثماني أنوية (نواة Prime واحدة بتردد يصل إلى 3.78 GHz، و5 أنوية Performance بتردد يصل إلى 3.05 GHz، ونواتا Efficiency بتردد يصل إلى 2.25 GHz)، ووحدة GPU من PowerVR D-Series، ووحدة Google TPU. وقد قُرئت ترددات الأنوية واسم برنامج تشغيل GPU من جهاز القياس، لأن Google لا تنشرهما في المواصفات المرتبطة.
| النموذج | المهمة | الحجم (بكسل) | CPU w8a32 LiteRT (ms) | GPU w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | Detect | 640 | 53.3 1.5 / 50.2 / 1.6 | 45.5 3.8 / 37.7 / 4.0 |
| YOLO26n-seg | Segment | 640 | 87.7 1.8 / 78.5 / 7.5 | 50.9 3.0 / 36.9 / 10.9 |
| YOLO26n-sem | دلالي | 640 | 68.6 1.5 / 59.0 / 8.0 | 71.6 1.5 / 59.5 / 10.6 |
| YOLO26n-depth | العمق | 640 | 120.3 1.5 / 112.5 / 6.3 | 52.5 2.0 / 37.5 / 13.0 |
| YOLO26n-cls | التصنيف | 224 | 4.0 0.3 / 3.4 / 0.2 | 17.6 0.9 / 16.7 / 0.1 |
| YOLO26n-pose | الوضعية | 640 | 59.7 1.5 / 57.0 / 1.2 | 46.6 3.8 / 39.2 / 3.5 |
| YOLO26n-obb | OBB | 640 | 52.0 1.5 / 48.9 / 1.7 | 45.5 4.0 / 38.5 / 2.9 |
القياس: متوسط 15 استدعاءً لـ predict() بعد 3 عمليات إحماء على bus.jpg، باستخدام ultralytics_yolo و0.6.10 والأصول الرسمية v0.6.6. ويتناوب ترتيب CPU/GPU بين المهام ضمن جولة تسلسلية واحدة. وأكدت السجلات الأصلية أن كل صف خاص بـ CPU استخدم LiteRT CPU/XNNPACK، وأن كل صف خاص بـ GPU فوّض الرسم البياني الكامل إلى LiteRT OpenCL (LITERT_CL).
Samsung Galaxy S26#
الأجهزة: Samsung Galaxy S26 (SM-S942B) بذاكرة سعتها 12 GB وAndroid 16 / API 36. ويحتوي Exynos 2600 بدقة تصنيع 2 nm على CPU من Armv9.3 بعشر أنوية (نواة C1-Ultra واحدة بتردد يصل إلى 3.8 GHz، و3 أنوية C1-Pro للأداء بتردد يصل إلى 3.26 GHz، و6 أنوية C1-Pro للكفاءة بتردد يصل إلى 2.76 GHz)، ووحدة GPU من Xclipse 960، ووحدة NPU من Samsung.
| النموذج | المهمة | الحجم (بكسل) | CPU w8a32 LiteRT (ms) | GPU w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | Detect | 640 | 36.7 1.3 / 33.8 / 1.7 | 16.4 1.4 / 12.3 / 2.6 |
| YOLO26n-seg | Segment | 640 | 54.6 1.2 / 48.0 / 5.3 | 32.8 1.3 / 24.5 / 7.0 |
| YOLO26n-sem | دلالي | 640 | 47.8 1.2 / 38.4 / 8.1 | 34.2 1.3 / 24.9 / 8.0 |
| YOLO26n-depth | العمق | 640 | 92.9 1.2 / 84.8 / 6.9 | 33.5 1.3 / 22.4 / 9.8 |
| YOLO26n-cls | التصنيف | 224 | 2.7 0.2 / 2.3 / 0.2 | 2.6 0.2 / 2.4 / 0.0 |
| YOLO26n-pose | الوضعية | 640 | 42.8 1.3 / 40.5 / 1.0 | 18.4 1.4 / 14.1 / 2.9 |
| YOLO26n-obb | OBB | 640 | 37.5 1.3 / 35.1 / 1.2 | 18.8 2.5 / 14.6 / 1.8 |
القياس: متوسط 15 استدعاءً لـ predict() بعد 3 عمليات إحماء على bus.jpg، باستخدام ultralytics_yolo و0.6.10 والأصول الرسمية v0.6.6. ويتناوب ترتيب CPU/GPU بين المهام ضمن جولة تسلسلية واحدة. وأكدت السجلات الأصلية أن كل صف خاص بـ CPU استخدم LiteRT CPU/XNNPACK، وأن كل صف خاص بـ GPU فوّض الرسم البياني الكامل إلى LiteRT OpenCL (LITERT_CL).
Xiaomi 17T Pro#
الأجهزة: Xiaomi 17T Pro (2602EPTC0G) بذاكرة LPDDR5X سعتها 12 GB وAndroid 16 / API 36. ويحتوي MediaTek Dimensity 9500 بدقة تصنيع 3 nm (MT6993) على CPU من Armv9.3 بثماني أنوية (نواة C1-Ultra واحدة بتردد يصل إلى 4.21 GHz، و3 أنوية C1-Premium بتردد يصل إلى 3.5 GHz، و4 أنوية C1-Pro بتردد يصل إلى 2.7 GHz)، ووحدة GPU من Mali-G1 Ultra MC12، ووحدة MediaTek NPU 990.
| النموذج | المهمة | الحجم (بكسل) | CPU w8a32 LiteRT (ms) | GPU w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | Detect | 640 | 45.4 1.3 / 42.1 / 2.0 | 26.6 1.9 / 22.0 / 2.7 |
| YOLO26n-seg | Segment | 640 | 126.2 2.6 / 113.9 / 9.7 | 46.7 2.6 / 33.3 / 10.8 |
| YOLO26n-sem | دلالي | 640 | 117.9 2.6 / 98.8 / 16.5 | 74.3 2.6 / 54.7 / 17.0 |
| YOLO26n-depth | العمق | 640 | 182.4 2.5 / 167.6 / 12.3 | 47.8 2.5 / 32.3 / 12.9 |
| YOLO26n-cls | التصنيف | 224 | 6.2 0.4 / 5.3 / 0.4 | 7.4 0.4 / 6.9 / 0.1 |
| YOLO26n-pose | الوضعية | 640 | 97.6 2.5 / 93.3 / 1.8 | 28.6 2.5 / 23.3 / 2.8 |
| YOLO26n-obb | OBB | 640 | 91.5 2.6 / 85.8 / 3.2 | 27.5 2.7 / 21.8 / 2.9 |
القياس: متوسط 15 استدعاءً لـ predict() بعد 3 عمليات إحماء على bus.jpg، باستخدام ultralytics_yolo و0.6.10 والأصول الرسمية v0.6.6. ويتناوب ترتيب CPU/GPU بين المهام ضمن جولة تسلسلية واحدة. وأكدت السجلات الأصلية أن كل صف خاص بـ CPU استخدم LiteRT CPU/XNNPACK، وأن كل صف خاص بـ GPU فوّض الرسم البياني الكامل إلى LiteRT OpenCL (LITERT_CL).
المهام المدعومة#
يدعم تصدير LiteRT جميع مهام Ultralytics السبع. ولا يتوفر التقسيم الدلالي وتقدير العمق إلا مع YOLO26، وهي العائلة الوحيدة التي تتضمن هذين الرأسين.
التصدير إلى LiteRT: تحويل نموذج YOLO الخاص بك#
يمكنك تحسين كفاءة التنفيذ على الجهاز وتوسيع خيارات النشر بتحويل نماذجك إلى تنسيق LiteRT.
التثبيت#
لتثبيت الحزمة المطلوبة، نفّذ:
# Install the required package for YOLO
pip install ultralyticsللاطلاع على التعليمات التفصيلية وأفضل الممارسات، راجع دليل تثبيت Ultralytics. وإذا واجهت أي صعوبات، فاستشر دليل المشكلات الشائعة.
يدعم تصدير LiteRT حاليًا Linux x86_64 وmacOS. ويعمل نموذج .tflite المُصدَّر نفسه على جميع المنصات التي يدعمها LiteRT (المحمولة والمضمّنة والحافة والمتصفح).
الاستخدام#
تدعم جميع نماذج Ultralytics YOLO التصدير مباشرةً. ويدعم تنسيق LiteRT أوضاع التصدير والتنبؤ والتحقق، لذا يمكنك تصدير نموذج ثم تحميله لإجراء الاستدلال أو التحقق من دقته محليًا.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to LiteRT format
model.export(format="litert", imgsz=640) # use imgsz=224 for classificationfrom ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Dynamic INT8: int8 weights, FP32 activations - no calibration data needed
model.export(format="litert", quantize="w8a32", imgsz=640) # use imgsz=224 for classification
# Static INT8: int8 weights + int8 activations - needs calibration data
model.export(format="litert", quantize=8, data="coco8.yaml", imgsz=640) # use 224 for classification
# Static w8a16: int8 weights + int16 activations (higher accuracy) - needs calibration data
model.export(format="litert", quantize="w8a16", data="coco8.yaml", imgsz=640) # use 224 for classificationfrom ultralytics import YOLO
# Load the exported LiteRT model
model = YOLO("yolo26n.tflite")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported LiteRT model
model = YOLO("yolo26n.tflite")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")وسائط التصدير#
| الوسيطة | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'litert' | التنسيق المستهدف للنموذج المُصدَّر، والذي يحدد التوافق مع بيئات النشر المختلفة. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددًا صحيحًا للصور المربعة أو صفًا (height, width) لأبعاد محددة. |
quantize | int أو str | None | دقة التكميم: 8 (INT8 ثابت، أوزان int8 وتنشيطات int8؛ يتطلب معايرة data/fraction)، و'w8a16' (ثابت، أوزان int8 وتنشيطات int16؛ يتطلب معايرة data/fraction)، و'w8a32' (INT8 ديناميكي، أوزان int8 وتنشيطات FP32؛ لا يتطلب معايرة)، أو 32/غير المحدد (FP32). لا يُصدَّر FP16 بشكل منفصل (راجع الملاحظة أدناه). ويحل محل الرايتين المتقادمتين half/int8. |
batch | int | 1 | يحدد حجم الدفعة للاستدلال في نموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المُصدَّر بالتزامن في وضع predict. |
data | str | None | ملف YAML للبيانات يُستخدم لمعايرة INT8؛ بينما يتطلب التصنيف بدلًا من ذلك دليلًا لمجموعة بيانات أو اسم مجموعة بيانات مضمّنة. إذا لم يُحدَّد مع quantize=8 أو 'w8a16'، فستختار Ultralytics مجموعة بيانات المعايرة الافتراضية لمهمة النموذج. |
device | str | None | يحدّد الجهاز المُستخدم للتصدير. يعمل تصدير LiteRT على CPU (device=cpu). |
على خلاف تصدير tflite القديم، لا يتطلب LiteRT تصديرًا منفصلًا بدقة FP16. يعمل نموذج FP32 .tflite بدقة نصفية وقت التشغيل عند استخدام مفوّض GPU (WebGPU أو OpenCL أو Metal) — وهذا هو النهج الرسمي لـ LiteRT لاستدلال FP16.
لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة توثيق Ultralytics حول التصدير.
نشر نماذج YOLO LiteRT المُصدَّرة#
بعد تصدير نموذج Ultralytics YOLO إلى LiteRT، يمكنك نشره عبر منصات متعددة. وأسرع طريقة للتحقق منه محليًا هي طريقة YOLO("yolo26n.tflite") الموضحة أعلاه. للنشر في بيئات أخرى، راجع الموارد التالية:
الأجهزة المحمولة والمضمّنة#
- Android: دليل للبدء السريع في دمج LiteRT في تطبيقات Android.
- iOS: دليل لدمج نماذج LiteRT ونشرها في تطبيقات iOS.
- Linux المضمّن وRaspberry Pi: شغّل نماذج LiteRT على أجهزة الكمبيوتر أحادية اللوحة، مع إمكانية تسريعها باستخدام Coral Edge TPU.
- المتحكمات الدقيقة: انشر على وحدات MCU بذاكرة لا تتجاوز بضعة كيلوبايتات — إذ يستهلك وقت التشغيل الأساسي نحو 16 كيلوبايتًا على Arm Cortex-M3.
المتصفح وNode.js (LiteRT.js)#
- نظرة عامة على LiteRT.js: شغّل نموذج
.tfliteنفسه مباشرةً في المتصفح مع تسريع WebGPU/WASM، ما يلغي الحاجة إلى الحوسبة من جانب الخادم ويحافظ على البيانات على جهاز المستخدم. - أمثلة شاملة من البداية إلى النهاية: أمثلة ودروس تعليمية عملية لتنفيذ LiteRT عبر الأجهزة المحمولة والطرفية والويب.
الملخص#
في هذا الدليل، أوضحنا كيفية تصدير نماذج Ultralytics YOLO إلى تنسيق LiteRT. ومن خلال توحيد النشر على الأجهزة المحمولة والطرفية (المعروف سابقًا باسم TFLite) وفي المتصفح (المعروف سابقًا باسم TF.js) ضمن نموذج .tflite واحد، يجعل LiteRT نماذج YOLO أسرع وأصغر حجمًا وقابلة للنقل إلى جميع أهداف الأجهزة تقريبًا.
لمزيد من التفاصيل، تفضّل بزيارة الوثائق الرسمية لـ LiteRT.
وإذا كنت مهتمًا بعمليات دمج Ultralytics YOLO الأخرى، فتفقّد صفحة دليل عمليات الدمج التي تضم العديد من الموارد المفيدة.
الأسئلة الشائعة#
استخدم مكتبة Ultralytics لتصدير نموذج YOLO إلى LiteRT (
.tflite). أولًا، ثبّت الحزمة:pip install ultralyticsثم صدّر نموذجك:
from ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export the model to LiteRT format model.export(format="litert", imgsz=640) # use imgsz=224 for classificationلمستخدمي CLI:
yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classificationلمزيد من التفاصيل، تفضّل بزيارة دليل التصدير من Ultralytics.
LiteRT هو الاسم الجديد لـ TensorFlow Lite — تنسيق النموذج
.tfliteنفسه، وسلالة وقت التشغيل نفسها، مع إعادة تسمية من Google. في Ultralytics، يغطي تنسيق التصديرlitertالواحد الآن حالتي الاستخدام اللتين كانتا تتطلبان سابقًا تنسيقين منفصلين:- التنسيق القديم
tflite← النشر على الأجهزة المحمولة والمضمّنة والطرفية. - التنسيق القديم
tfjs← النشر في المتصفح وNode.js، ويُعالَج الآن بواسطة LiteRT.js الذي يشغّل الملف.tfliteنفسه.
إذا كان لديك ملف
.tfliteموجود، فيمكنك تحميله مباشرةً باستخدامYOLO("model.tflite")، وسيعمل من خلال الواجهة الخلفية لـ LiteRT.- التنسيق القديم
نعم. صدّر نموذجك إلى تنسيق LiteRT، ثم شغّله على Raspberry Pi لتحسين سرعات الاستدلال. ولمزيد من التحسين، فكّر في استخدام Coral Edge TPU. وللاطلاع على الخطوات التفصيلية، راجع دليل النشر على Raspberry Pi.
نعم. يشغّل LiteRT.js نموذج
.tfliteالمُصدَّر نفسه مباشرةً في متصفح ويب أو تطبيق Node.js، مع تسريع WebGPU/WASM. وهذا يحل محل سير عمل TensorFlow.js السابق — فلا يوجد تصدير منفصل للمتصفح، بل انشر نموذج LiteRT باستخدام وقت تشغيل LiteRT.js.نعم — وقت التشغيل. يعمل نموذج LiteRT بدقة FP32 تلقائيًا بدقة FP16 عند تنفيذه على مفوّض GPU (WebGPU أو OpenCL أو Metal)، وهو النهج الرسمي لـ LiteRT. لذلك لا تحتاج إلى تصدير مخصص بدقة FP16؛ وللمزيد من الضغط، استخدم تكميم INT8 مع
quantize=8.إذا واجهت أخطاء أثناء تصدير نماذج YOLO إلى LiteRT، فتشمل الحلول الشائعة ما يلي:
- تحقّق من المنصة: تصدير LiteRT مدعوم على Linux x86_64 وmacOS. تحقّق من توافق بيئتك مع ذلك.
- تحقّق من توافق الحزمة: تأكّد من استخدام إصدار متوافق من Ultralytics. راجع دليل التثبيت.
- مشكلات التكميم: عند استخدام تكميم INT8، تأكّد من تحديد مسار مجموعة البيانات بشكل صحيح في المعلَمة
data.
للحصول على نصائح إضافية لاستكشاف الأخطاء وإصلاحها، تفضّل بزيارة دليل المشكلات الشائعة.