تخزين الخطوات غير المتغيرة مؤقتاً وتجاوزها
أعد تشغيل ما تغيّر فعلاً فقط لتسريع التنفيذ.
تخزين الخطوات غير المتغيرة مؤقتاً وتجاوزها درس مجاني في MLOps Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في MLOps Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة MLOps Academy 4 دروس في المجموع.
لماذا نعيد تشغيل كل شيء؟
إذا عدّلتم برنامج التقييم فقط، فإن إعادة تشغيل الاستيراد والتدريب تهدر الوقت. يخزّن DVC نتائج المراحل مؤقتًا، ولذلك يتجاوز العمل الذي لم يتغير. ⏱️
ينشئ DVC تجزئة لمدخلاتكم
يحسب DVC لكل مرحلة تجزئة لتبعياتها وأمرها. وتمثل هذه التجزئة بصمةً تتغير فور تغيّر أي مدخل.
التجزئة نفسها تعني التجاوز
عند تشغيل dvc repro، يقارن DVC التجزئة الحالية لكل مرحلة بالتجزئة الموجودة في dvc.lock. فإذا تطابقتا، يتجاوز المرحلة.
رؤية التجاوز في المخرجات
يخبركم DVC بوضوح عندما لا يتغير شيء. وتعني رسالة مثل didn't change, skipping إعادة استخدام المخرج المخزّن مؤقتًا.
$ dvc repro
Stage 'prep' didn't change, skipping
Running stage 'train'...تنتقل التغييرات إلى المراحل اللاحقة
عند تغيير أحد مدخلات التجهيز، يعيد DVC تشغيل التجهيز، ثم كل مرحلة لاحقة تعتمد عليه. أما المراحل السابقة فتظل مخزّنة مؤقتًا.
تُخزَّن المخرجات في الذاكرة المؤقتة
تُحفظ مخرجات المراحل في مجلد cache الخاص بـ DVC، وتُفهرس بحسب التجزئة. ويعني تجاوز مرحلة أن DVC يستعيد ذلك الملف المخزّن مؤقتًا.
فرض إعادة تشغيل كاملة
هل تحتاجون إلى تجاهل الذاكرة المؤقتة؟ مرّروا --force إلى dvc repro، وستُشغَّل كل مرحلة مجددًا حتى إذا لم يتغير شيء.
dvc repro --forceإعادة تشغيل مرحلة واحدة
يمكنكم استهداف مرحلة واحدة بالاسم باستخدام dvc repro -s. وهذا مفيد عندما تريدون إعادة تشغيل train فقط دون المساس ببقية المراحل.
dvc repro -s trainالتحقق من الحالة قبل التشغيل
شغّلوا dvc status لمعرفة المراحل القديمة دون تنفيذ أي شيء. إنها محاكاة آمنة لما سينفذه repro.
dvc statusمكسب السرعة
في مجموعات البيانات الكبيرة، تحوّل التخزين المؤقت خط أنابيب يستغرق ثلاثين دقيقة إلى ثوانٍ عندما تتغير مرحلة واحدة فقط. وهذه الحلقة السريعة من التغذية الراجعة هي الفائدة الأساسية. ⚡
إضافة dvc.lock إلى المستودع لمشاركة حالة الذاكرة المؤقتة
بما أن dvc.lock يحتفظ بقيم التجزئة، فإن إضافته إلى المستودع تتيح لأعضاء الفريق إعادة استخدام قرارات الذاكرة المؤقتة نفسها وتجاوز العمل الذي أنجزتموه مسبقًا.
تحقق سريع
فكّروا في العوامل التي تؤدي إلى إعادة التشغيل.
مراجعة: التخزين المؤقت والتجاوز
رأيتم كيف ينشئ DVC تجزئات للمدخلات لتجاوز المراحل التي لم تتغير، وينقل التغييرات إلى المراحل اللاحقة، ويفرض إعادة التشغيل عند الحاجة. خطوط أنابيب سريعة وذكية. 🎯
تعلم Python مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «تخزين الخطوات غير المتغيرة مؤقتاً وتجاوزها» مجاني؟
نعم — نص درس «تخزين الخطوات غير المتغيرة مؤقتاً وتجاوزها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة MLOps Academy، انتقل إلى CoddyKit PRO. تتضمن دورة MLOps Academy 4 دروس في المجموع.
ماذا ستتعلم في «تخزين الخطوات غير المتغيرة مؤقتاً وتجاوزها»؟
أعد تشغيل ما تغيّر فعلاً فقط لتسريع التنفيذ. تتمرن على MLOps Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ MLOps Academy؟
لا تُشترط خبرة سابقة. MLOps Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «تخزين الخطوات غير المتغيرة مؤقتاً وتجاوزها»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس MLOps Academy هذا؟
نعم. كل درس في MLOps Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المراحل: الإدخال والإعداد والتدريب والتقييم
- تحديد مسار باستخدام مراحل DVC
- تخزين الخطوات غير المتغيرة مؤقتاً وتجاوزها
- تهيئة التشغيل بالمعاملات باستخدام params.yaml