أوضح BentoML كيفية تحويل Grounding DINO إلى خدمة للإنتاج مع web API
استعرض BentoML سيناريو عمليًا لخدمة Grounding DINO، وهو نموذج zero-shot لاكتشاف الكائنات عبر طلب نصي. يوضح الكاتب كيف يمكن نقل inference إلى خدمة Python،…
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
أظهرت BentoML سيناريو عملي لكيفية نقل Grounding DINO من دفتر ملاحظات إلى خدمة في الإنتاج دون العبء الثقيل لـ MLOps. باستخدام كاشف الكائنات بدون نموذج كمثال، قام المؤلف ببناء واجهة برمجية HTTP، وإضافة التحقق من الصحة للمعاملات، وأظهر كيفية تشغيل الخدمة محليًا وفي Docker.
لماذا BentoML هنا؟
الفكرة الرئيسية للمقالة بسيطة: تدريب النموذج غير كافٍ—يجب عليك أيضًا تسليمه بشكل صحيح للمستخدمين. بالنسبة لسيناريو الإنتاج، تحتاج إلى تخزين وتصحيح الأوزان، والتحكم في الموارد، وواجهة برمجية مريحة، ومسار واضح للنشر. BentoML يغطي هذه الطبقة بالضبط. يسمح الإطار بتغليف كود Python الخاص بالنموذج في خدمة، وتحضير البيئة تلقائيًا، وبناء صورة Docker، والحصول فورًا على واجهة HTTP مع Swagger UI.
بالنسبة للفرق التي لا تريد بناء مجموعة MLOps كاملة يدويًا، يقلل هذا بشكل كبير المسار من التجربة إلى خدمة عاملة.
يستخدم المثال Grounding DINO—نموذج للكشف عن الكائنات بمجموعة مفتوحة. على عكس الكواشف الكلاسيكية، يعتمد ليس فقط على الصورة بل أيضًا على موجه نصي. هذا يعني أنه يمكنك تقديم صورة وقائمة من الأوصاف مثل "قطة" أو "جهاز تحكم عن بعد"، والنموذج سيحاول العثور على هذه الكائنات بالضبط، حتى لو لم تكن معرفة مسبقًا كفئات ثابتة. بالنسبة لسيناريو الخدمة، هذه حالة استخدام جيدة: يوجد الاستدلال والمعاملات النصية والنتيجة البصرية التي يمكن إرجاعها بسهولة عبر الواجهة البرمجية.
كيفية بناء الخدمة
يبدأ المؤلف بمثال نموذجي للتطوير باستخدام Transformers: يتم تحميل grounding-dino-tiny، وتمرير الصورة عبر AutoProcessor، ثم يعيد النموذج الصناديق المحيطة والثقة والعلامات النصية. بعد ذلك، يتم نقل هذا الكود إلى فئة GroundingDinoService، والتي تُزخرف كخدمة BentoML.
تفصيل مهم: يتم تحديد أوزان النموذج كـ HuggingFaceModel على مستوى الفئة بحيث يقوم BentoML بتنزيلها مسبقًا عند بناء القطعة، وليس أثناء تهيئة الحاوية. هذا يتجنب الخطأ المعتاد لنموذج مفقود عند البدء.
- يحدد إعداد وقت التشغيل Python 3.11 والمعاملات عبر pyproject.toml
- يتم نشر الأساليب detect_image و render كنقاط نهاية HTTP باستخدام مزخرفات BentoML
- يتم وصف معاملات الإدخال باستخدام Pydantic: prompt و box_threshold و text_threshold
- يمكن إرجاع النتيجة كـ JSON بقائمة الصناديق أو كصورة جاهزة مع تعليقات توضيحية
« كل هذا يتم في ملف Python واحد بأقل من 100 سطر. »
عمليًا، تنحصر الخدمة في ثلاثة أجزاء: طريقة خاصة _detect بالمنطق الرئيسي للاستدلال، طريقة عامة detect_image للاستجابات المنظمة، و render للتصور. هذا الترتيب مريح لأن نفس المنطق يُستخدم للعملاء الآليين وللأشخاص الذين يريدون اختبار النموذج بسرعة عبر الواجهة أو curl. بالإضافة إلى ذلك، التحقق من الصحة عبر Pydantic يفلتر فورًا المعاملات غير الصحيحة قبل استدعاء النموذج.
الإطلاق والواجهة البرمجية
للتطوير المحلي، يتم استخدام أمر bentoml serve، مع تحديد المنفذ 3025 وسمة إعادة التحميل التلقائي. بعد الإطلاق، تقوم الخدمة برفع Swagger UI تلقائيًا، حيث يمكنك تحميل صورة وتمرير معاملات JSON والتحقق من الاستجابة فورًا. هذا وضع تصحيح مريح: تعدل الكود وتحفظ الملف وبدون إعادة بناء تشاهد سلوك الخدمة يتغير. بالنسبة للعديد من الفرق، هذه دورة التطوير أهم من وقت التشغيل المحسَّن إلى أقصى حد في البداية.
يتم بناء الإصدار الإنتاجي عبر bentoml build، ثم يتم وضعه في حاوية باستخدام أمر bentoml containerize. بعد ذلك، يمكن تشغيل الخدمة في Docker مع GPU وفتحها على المنفذ المطلوب.
في العرض التوضيحي، تحتوي الخدمة على نقطتي نهاية: /detect_image تعيد JSON مع الإحداثيات والفئات والثقة، بينما /render تحفظ وتعيد صورة مع الصناديق المرسومة. تُظهر المقالة أيضًا الاستدعاءات عبر عميل SDK BentoML وعبر curl، مما يعني أن الخدمة مريحة بنفس القدر للاتصال بالأنابيب الداخلية والتطبيقات الخارجية.
معنى هذا
يكون المادة مفيدة لأنها توضح محادثة عن خدمة النموذج: بدلاً من معمارية MLOps المجردة، تظهر مسارًا قصيرًا وقابلاً للتكرار من نص Python مع Grounding DINO إلى حاوية مع واجهة برمجية HTTP. بالنسبة لفرق ML الصغيرة، هذا نموذج جيد إذا كنت بحاجة إلى تسليم نموذج الرؤية بسرعة في الإنتاج دون الغرق في البنية الأساسية في الإصدار الأول.
هل تحتاج إلى ذكاء اصطناعي يعمل داخل شركتك — وليس فقط في موجز الأخبار؟
أبني ذكاءً اصطناعياً جاهزاً للإنتاج للشركات — أنظمة CRM مخصّصة، أدوات داخلية، وكلاء مستقلون، أتمتة سير العمل. ملك لك، مصمّم وفق عمليتك، دون رسوم لكل مستخدم. من إعداد جمال خميدون، مدير المنتجات في AlpinaGPT (منصة ذكاء اصطناعي، أكثر من 6000 مستخدم).
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.