ONNX Runtime و C++: استخراج الحد الأقصى من البيانات الجدولية بدون Python
دعونا نكون صادقين: البيانات الجدولية ليست الموضوع الأكثر إثارة في عالم الذكاء الاصطناعي الحديث. كل الاهتمام يذهب إلى النماذج التوليدية والصور والفيديوهات…
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
دعونا نكون صادقين: البيانات الجدولية ليست الموضوع الأكثر إثارة في عالم الذكاء الاصطناعي الحديث. كل الاهتمام يذهب إلى النماذج التوليدية والصور والفيديوهات. ومع ذلك، فإن كل القطاع العالمي للتكنولوجيا المالية والخدمات اللوجستية والتجزئة يقوم على الجداول. وهنا تكمن مشكلة قديمة قدم الزمن. علماء البيانات يحبون بايثون لمرونته وكثرة المكتبات مثل Scikit-learn أو CatBoost. لكن عندما يتعلق الأمر بالإنتاج، حيث كل ميلي ثانية وكل ميجابايت من ذاكرة الوصول العشوائي مهمة، يتحول بايثون إلى وحش ثقيل. تجر معك تبعيات ضخمة، وتحارب قفل المترجم العام، وتتمنى أن يتحمل الخادم الحمل.
الحل لهذه المشكلة موجود منذ وقت طويل، لكن الكثيرين لا يزالون يتجاهلونه. نحن نتحدث عن ONNX Runtime (ORT) - محرك عالي الأداء من مايكروسوفت يتيح لك تشغيل نماذج الشبكات العصبية على أي شيء، من الخوادم إلى الهواتف الذكية. الميزة الرئيسية هنا هي تنسيق Open Neural Network Exchange. تقوم بتدريب نموذج في بايثون المألوف، وتصدره إلى .onnx، وتنسى بايثون كأنه كابوس سيء. ثم يدخل C++ المشهد، وهنا يبدأ سحر الأداء الحقيقي.
لماذا بالضبط C++؟ لأنه في الأنظمة عالية الحمل، القدرة على التنبؤ هي كل شيء. باستخدام واجهة برمجة التطبيقات C++ لـ ONNX Runtime، تحصل على التحكم الكامل في إدارة الذاكرة وتنفيذ الخيوط. توفر المكتبة تطبيقات محسَّنة لكل من المعالج والمعالج الرسومات، مع دعم معدات التسريع مثل TensorRT أو OpenVINO. هذا يعني أن نفس النموذج في C++ سيعمل بسرعة أكبر عدة مرات من نظيره في بيئة بايثون الأصلية، مع استهلاك موارد أقل بكثير. أنت حرفيًا تستخلص كل ما يستطيع جهازك تقديمه.
عملية التكامل تبدو بسيطة بشكل مفاجئ. لا تحتاج إلى كتابة آلاف أسطر من التعليمات البرمجية فقط لتشغيل الاستدلال. يوفر مستودع GitHub الرسمي للمشروع ملفات ثنائية مترجمة مسبقًا يمكن دمجها بسهولة في مشروعك. يتلخص العمل الرئيسي في تحضير موترات الإدخال من بياناتك الجدولية والحصول على النتائج. نعم، العمل مع أنواع البيانات في C++ يتطلب قليلاً من الانضباط أكثر من بايثون الديناميكي، لكن هذا هو الثمن الذي يستحق الدفع من أجل الاستقرار والسرعة. في النهاية، تحصل على ملف ثنائي مضغوط يبدأ على الفور ولا يتطلب تثبيت جيجابايتات من المكتبات الخارجية.
من المهم فهم السياق: تتحرك الصناعة تدريجياً بعيداً عن خدمات بايثون أحادية الكتلة نحو بنية الخدمات الدقيقة باللغات السريعة. استخدام ONNX Runtime للبيانات الجدولية ليس مجرد تحسين، بل هو المعيار الفعلي لمن يقدرون الكفاءة. إذا كان نموذجك بحاجة إلى اتخاذ قرارات في الوقت الفعلي، على سبيل المثال، الموافقة على معاملة أو حساب تكلفة الرحلة، فأنت ببساطة لا تملك الوقت لانتظار بايثون ليتفضل بمعالجة طلبك. الانتقال إلى C++ بالاقتران مع ORT هو الطريق الأسرع لجعل ذكائك الاصطناعي يتوقف عن كونه "نسخة تجريبية" ويصبح حلاً صناعياً كاملاً.
ماذا يعني هذا للسوق ككل؟ نرى اتجاهاً واضحاً نحو فصل مراحل التدريب والتنفيذ. يبقى التدريب مع بايثون وبيئته، لكن الاستدلال ينتقل بسرعة نحو حلول منخفضة المستوى. هذا يفتح الباب لاستخدام الذكاء الاصطناعي في الأنظمة المدمجة وأجهزة الحوسبة الحدية، حيث الموارد محدودة جداً. من يتقنون هذه المجموعة اليوم سيملي القواعد في تطوير الذكاء الاصطناعي عالي الحمل غداً.
الخلاصة: بايثون جيد للتجريب، لكن للحمل الثقيل الحقيقي، تحتاج إلى C++. هل أنت مستعد لإعادة كتابة نصوصك لزيادة سرعة بمعامل عشرة?
هل تريد التوقف عن قراءة الذكاء الاصطناعي والبدء باستخدامه؟
AI News هو موجز منسق لأخبار الذكاء الاصطناعي. تعلمك Hamidun Academy استخدام الذكاء الاصطناعي في عملك.