المستودعات والتطوير القائم على الجذع

مكتمل

يفضل العديد من علماء البيانات العمل مع Python أو R لتحديد أحمال عمل التعلم الآلي. يمكنك الحصول على دفاتر ملاحظات Jupyter أو برامج نصية لإعداد البيانات أو تدريب نموذج.

يصبح العمل على أي أصول تعليمات برمجية أسهل عند استخدام التحكم في المصدر. التحكم بالمصادر هو ممارسة إدارة التعليمات البرمجية وتعقب أي تغييرات يجريها فريقك على التعليمات البرمجية.

إذا كنت تعمل مع أدوات DevOps مثل Azure DevOps أو GitHub، يتم تخزين التعليمة البرمجية في ما يسمى المستودع أو الريبو.

المستودع

عند إعداد إطار عمل MLOps، من المرجح أن يقوم مهندس التعلم الآلي بإنشاء المستودع. سواء اخترت استخدام Azure Repos في Azure DevOps أو GitHub repos، يستخدم كلاهما مستودعات Git لتخزين التعليمات البرمجية الخاصة بك.

هناك عموماً طريقتان لتوسيع نطاق المستودع:

  • Monorepo: احتفظ بجميع أعباء عمل التعلم الآلي داخل نفس المستودع.
  • عمليات إعادة الشراء المتعددة: أنشئ مستودعًا منفصلًا لكل مشروع جديد للتعلم الآلي.

يعتمد النهج الذي يفضله فريقك على من يجب أن يتمكن من الوصول إلى الأصول. إذا كنت ترغب في ضمان الوصول السريع إلى جميع أصول التعليمات البرمجية، فقد يناسب monorepos متطلبات فريقك بشكل أفضل. إذا كنت ترغب في منح الأشخاص حق الوصول إلى مشروع فقط إذا كانوا يعملون بنشاط عليه، فقد يفضل فريقك العمل مع مستودعات متعددة. ضع في اعتبارك أن إدارة التحكم في الوصول يمكن أن تخلق المزيد من النفقات العامة.

هيكلة مستودعك

مهما كان النهج الذي تتبعه، فمن أفضل الممارسات الاتفاق على بنية مجلد المستوى الأعلى القياسية لمشاريعك. على سبيل المثال، قد يكون لديك المجلدات التالية في كافة المستودعات الخاصة بك:

  • .cloud: يحتوي على تعليمات برمجية خاصة بالسحابة مثل القوالب لإنشاء مساحة عمل Azure التعلم الآلي.
  • .ad/.github: يحتوي على Azure DevOps أو GitHub من القطع الأثرية مثل خطوط أنابيب YAML لأتمتة سير العمل.
  • src: يحتوي على أي تعليمات برمجية (نصوص Python أو R) تستخدم لأحمال عمل التعلم الآلي مثل بيانات المعالجة المسبقة أو التدريب على النماذج.
  • docs: يحتوي على أي ملفات Markdown أو وثائق أخرى تستخدم لوصف المشروع.
  • pipelines: يحتوي على تعريفات خطوط أنابيب Azure التعلم الآلي.
  • tests: يحتوي على اختبارات الوحدة والتكامل المستخدمة للكشف عن الأخطاء والمشكلات في التعليمات البرمجية الخاصة بك.
  • notebooks: يحتوي على دفاتر ملاحظات Jupyter، تستخدم في الغالب للتجريب.

إشعار

يجب عدم تضمين بيانات التدريب في المستودع الخاص بك. يجب تخزين البيانات في قاعدة بيانات أو مستودع بيانات. يمكن أن يكون لدى Azure Machine Learning حق الوصول المباشر إلى قاعدة بيانات أو بحيرة بيانات عن طريق تخزين معلومات الاتصال كمخزن بيانات.

من خلال وجود هيكل قياسي يستخدمه كل مشروع، سيجد علماء البيانات وغيرهم من المتعاونين أنه من الأسهل العثور على الشفرة التي يحتاجون إلى العمل عليها.

لمعرفة كيفية العمل مع المستودعات كعالم بيانات، ستتعرف على التطوير القائم على الجذع.

التطوير القائم على الجذع

تستخدم معظم مشاريع تطوير البرامج Git كنظام تحكم في المصدر، والذي يستخدمه كل من Azure DevOps وGitHub.

الفائدة الرئيسية لاستخدام Git هي التعاون السهل على التعليمات البرمجية مع تتبع أي تغييرات يتم إجراؤها. بالإضافة إلى ذلك، يمكنك إضافة بوابات الموافقة للتأكد من أنه سيتم إجراء التغييرات التي تمت مراجعتها وقبولها فقط على رمز الإنتاج.

لتحقيق ما سبق، تستفيد Git من التطوير القائم على الجذع والذي يسمح لك بإنشاء فروع.

تتم استضافة رمز الإنتاج في الفرع الرئيسي. كلما أراد شخص ما إجراء تغيير:

  1. يمكنك إنشاء نسخة كاملة من التعليمات البرمجية للإنتاج عن طريق إنشاء فرع.
  2. في الفرع الذي أنشأته، يمكنك إجراء أي تغييرات واختبارها.
  3. بمجرد أن تصبح التغييرات في فرعك جاهزة، يمكنك أن تطلب من شخص ما مراجعة التغييرات.
  4. إذا تمت الموافقة على التغييرات، يمكنك دمج الفرع الذي أنشأته مع المستودع الرئيسي وسيتم تحديث رمز الإنتاج ليعكس تغييراتك.

رسم تخطيطي لسير عمل التطوير المستند إلى الجذع.