اكتشف كيف تعزز ONNX إمكانية نقل نماذج الذكاء الاصطناعي وقابليتها للتشغيل البيني، مما يتيح نشرًا سلسًا لنماذج Ultralytics YOLO عبر منصات متنوعة.
ONNX (تبادل الشبكة العصبية المفتوحة) هو تنسيق مفتوح المصدر لتمثيل نماذج تعلم الآلة (ML). تم تطوير ONNX بشكل مشترك من قبل شركات مثل Microsoft و Facebook، ويعمل كمترجم عالمي، مما يمكّن المطورين من نقل النماذج بين أطر وأدوات ML مختلفة. يعد هذا التشغيل البيني أمرًا بالغ الأهمية لتبسيط الرحلة من تطوير النموذج إلى الإنتاج. بدلاً من أن تكون مقيدًا بنظام بيئي واحد، يمكن للفرق تدريب نموذج في إطار عمل واحد، مثل PyTorch، ونشره للاستدلال باستخدام إطار آخر، مثل TensorFlow أو محرك استدلال متخصص. يمكن بسهولة تصدير نماذج Ultralytics YOLO، على سبيل المثال، إلى تنسيق ONNX، مما يوفر أقصى قدر من المرونة للنشر عبر منصات مختلفة.
يوفر ONNX تعريفًا قياسيًا للرسم البياني الحسابي، جنبًا إلى جنب مع قائمة بالمشغلين المضمنين. عند تحويل نموذج إلى تنسيق ONNX، يتم تعيين بنيته—المكونة من طبقات وعمليات رياضية—إلى هذا المعيار العالمي. الناتجة .onnx
يحتوي الملف على كل من هيكل الشبكة و لا يتم تعيين أوزان النموذج يدويًا ولكن يتم "تعلمها" من البيانات. تبدأ العملية بتهيئة الأوزان بأرقام عشوائية صغيرة. أثناء التدريب، يقوم النموذج بعمل تنبؤات على بيانات التدريب، وتقوم دالة الخسارة بحساب مدى خطأ هذه التنبؤات. ثم يتم استخدام إشارة الخطأ هذه في عملية تسمى الانتشار الخلفي لحساب تدرج الخسارة بالنسبة لكل وزن. تقوم خوارزمية التحسين، مثل تدرج تنازلي عشوائي (SGD)، بعد ذلك بضبط الأوزان في الاتجاه المعاكس للتدرج لتقليل الخطأ. تتكرر هذه الدورة لعدة حقبات حتى يتوقف أداء النموذج على مجموعة بيانات التحقق منفصلة عن التحسن، وهي علامة على أنه تعلم الأنماط في البيانات..
يمكن بعد ذلك تحميل هذا الملف القياسي بواسطة أي أداة تدعم مواصفات ONNX. وهذا يشمل:
إن مرونة ONNX تجعلها لا تقدر بثمن في العديد من سيناريوهات رؤية الكمبيوتر والتعلم الآلي.
نشر الذكاء الاصطناعي على الأجهزة الطرفية: قد يقوم مطور بتدريب نموذج اكتشاف الكائنات معقد مثل Ultralytics YOLO11 على سطح مكتب قوي مزود بوحدات معالجة الرسومات NVIDIA. لكي يعمل التطبيق على جهاز طرفي منخفض الطاقة مثل Raspberry Pi أو كاميرا ذكية مستخدمة في تحليلات البيع بالتجزئة، يتم تصدير النموذج إلى ONNX. يمكن بعد ذلك تحسينه بواسطة وقت تشغيل مثل ONNX Runtime أو OpenVINO للحصول على أداء فعال على الأجهزة المستهدفة دون الحاجة إلى بيئة PyTorch الأصلية.
دمج النماذج في تطبيقات متنوعة: ضع في اعتبارك شركة رعاية صحية تقوم ببناء نموذج تحليل الصور الطبية باستخدام Python و TensorFlow. تم تصميم البنية التحتية للبرامج الحالية للمستشفى باستخدام C# و .NET. بدلاً من إعادة كتابة النموذج، يقوم الفريق بتصديره إلى ONNX. يمكن لتطبيق C# بعد ذلك استخدام ONNX Runtime لـ .NET لدمج إمكانات النموذج مباشرةً، مما يقلل بشكل كبير من وقت التطوير والتعقيد.
من المهم التمييز بين ONNX والمصطلحات ذات الصلة:
.pt
أو SavedModel من TensorFlow تكون أصلية للإطارات الخاصة بها. يعمل ONNX كوسيط، مما يسمح بالتحويل بين هذه التنسيقات أو النشر عبر وقت تشغيل مشترك. TorchScript هو تنسيق آخر لتسلسل نماذج PyTorch، ويستخدم أحيانًا كبديل أو مقدمة لتصدير ONNX.باختصار، ONNX هو معيار حيوي لضمان المرونة وقابلية التشغيل البيني في خط أنابيب عمليات التعلم الآلي (MLOps)، مما يمكّن المطورين من اختيار أفضل الأدوات للتدريب والنشر دون التقيد بقيود الإطار. تستفيد منصات مثل Ultralytics HUB من هذه التنسيقات لتبسيط الرحلة من تطوير النموذج إلى التطبيق الواقعي. لمعرفة المزيد، قم بزيارة موقع ONNX الرسمي واستكشف المشروع على GitHub.