PyImageSearch تنشر دليلًا مكرّسًا لبناء أنبوب تعلم آلي قابل للتكرار باستخدام DVC، أداة لإدارة إصدارات البيانات والنماذج تعمل مع Git. بقلم فيكرام سينغ، يوضح هذا الدليل كيفية ربط عدة مراحل، من المعالجة المسبقة للبيانات إلى التقييم، لإعادة تشغيلها بأمر واحد.
يعتمد المثال على مجموعة بيانات Iris، وهي نموذج كلاسيكي في المجال. يتم أولاً تقسيم الملف الخام iris.csv إلى مجموعة تدريب ومجموعة اختبار بنسبة 80/20 مع الحفاظ على نسب الفئات. ثم يتم تدريب نموذج الانحدار اللوجستي، يليه تقييم يحسب الدقة وينتج تقرير تصنيف. يوضح الدليل أن المشروع بأكمله يستخدم ثلاث مكتبات فقط: DVC 3.48.4، pandas 2.1.4 و scikit-learn 1.3.2.
ثلاث مراحل مرتبطة بملف تكوين
كل مرحلة موصوفة في ملف dvc.yaml، الذي يحدد الأمر الذي يجب تنفيذه، والملفات التي تعتمد عليها المرحلة، والنتائج التي تنتجها. مخرجات مرحلة ما تُستخدم كمدخلات للمرحلة التالية. وهكذا، أي تعديل على مجموعة البيانات يعيد تشغيل الأنبوب بأكمله، بينما تعديل سكريبت التدريب فقط يعيد تشغيل التدريب والتقييم.
تُسجل هذه التبعيات في ملف dvc.lock، الذي يحفظ الحالة الدقيقة للأنبوب أثناء التنفيذ. وفقًا للمؤلف، يجب إصدار هذا الملف مع Git، مما يسمح لعضو آخر في الفريق أو لخادم التكامل المستمر بإعادة إنتاج النتائج باستخدام أوامر dvc pull ثم dvc repro. عندما لا يتغير شيء، يشير DVC إلى أن المراحل محدثة ولا يجري أي حساب.
فحص ومقارنة عمليات التنفيذ
يعرض الدليل عدة أوامر للفحص. dvc dag يعرض مخطط المراحل على شكل رسم بياني، dvc status يشير إلى التبعيات التي تغيرت، و dvc diff يقارن المخرجات مع آخر نسخة مسجلة. لمتابعة الأداء، dvc metrics show يعرض مقاييس آخر تنفيذ، و dvc metrics diff يقارنها بين الالتزامات.
في المثال المعروض، التقييم على 30 عينة اختبار يعطي دقة 0.9333. يشير المؤلف إلى أن نفس المنطق يسمح بمتابعة تأثير تغيير المعلمات أو البيانات، مع رصد التقدمات والتراجعات على حد سواء.
أخيرًا، يذكر الدليل امتدادات اختيارية. يمكن نقل المعلمات الفائقة إلى ملف params.yaml، يمكن متابعة الرسوم البيانية كمخرجات، ويمكن إضافة مراحل جديدة مثل هندسة الميزات أو البحث عن المعلمات الفائقة إلى الرسم البياني دون تعديل المراحل الأخرى. يتولى DVC حينها إعادة حساب الأجزاء المعنية فقط.





