إدارة تكاليف التعلم الآلي Azure وتحسينها
تعرف على كيفية إدارة التكاليف وتحسينها عند تدريب نماذج التعلم الآلي ونشرها في Azure التعلم الآلي.
استخدم التلميحات التالية لمساعدتك في إدارة تكاليف موارد الحوسبة وتحسينها.
- تكوين مجموعات التدريب الخاصة بك للقياس التلقائي
- تعيين حصص على اشتراكك ومساحات العمل
- تعيين سياسات الإنهاء أثناء التدريب
- استخدام الأجهزة الظاهرية ذات الأولوية المنخفضة (VM)
- جدولة مثيلات الحوسبة لإيقاف التشغيل وبدء التشغيل تلقائيا
- استخدام مثيل Azure Reserved VM
- التدريب محليا
- التدريب بالتوازي
- تعيين سياسات الاحتفاظ بالبيانات وحذفها
- نشر الموارد في نفس المنطقة
للحصول على معلومات حول تخطيط التكاليف ومراقبتها، راجع دليل خطة إدارة التكاليف ل Azure التعلم الآلي.
Use Azure التعلم الآلي compute cluster (AmlCompute)
مع البيانات المتغيرة باستمرار، تحتاج إلى تدريب سريع ومبسط على النماذج وإعادة التدريب للحفاظ على نماذج دقيقة. ومع ذلك ، فإن التدريب المستمر يأتي بتكلفة ، خاصة بالنسبة لنماذج التعلم العميق على وحدات معالجة الرسومات.
يمكن لمستخدمي Azure التعلم الآلي استخدام مجموعة Azure التعلم الآلي compute المدارة، والتي تسمى أيضا AmlCompute. يدعم AmlCompute مجموعة متنوعة من خيارات GPU و CPU. تتم استضافة AmlCompute داخليا نيابة عن اشتراكك بواسطة Azure التعلم الآلي. فهو يوفر نفس الأمان والامتثال والحوكمة على مستوى المؤسسة على نطاق سحابة Azure IaaS.
نظرا لأن مجموعات الحوسبة هذه موجودة داخل البنية الأساسية ل IaaS من Azure، يمكنك نشر تدريبك وتوسيع نطاقه وإدارته بنفس متطلبات الأمان والتوافق مثل بقية البنية الأساسية الخاصة بك. تحدث عمليات النشر هذه في اشتراكك وتلتزم بقواعد الحوكمة الخاصة بك. تعرف على المزيد حول Azure التعلم الآلي compute.
تكوين مجموعات التدريب للقياس التلقائي
تساعد مجموعات القياس التلقائي استنادا إلى متطلبات عبء العمل على تقليل التكاليف بحيث لا تستخدم سوى ما تحتاجه.
تم تصميم مجموعات AmlCompute للتوسع ديناميكيا استنادا إلى عبء العمل الخاص بك. يمكن توسيع نطاق المجموعة إلى الحد الأقصى لعدد العقد التي تقوم بتكوينها. عند اكتمال كل تشغيل، ستقوم الكتلة بتحرير العقد وقياسها إلى الحد الأدنى لعدد العقدة الذي تم تكوينه.
هام
لتجنب الرسوم عند عدم تشغيل أي وظائف، قم بتعيين الحد الأدنى للعقد إلى 0. يسمح هذا الإعداد ل Azure التعلم الآلي بإلغاء تخصيص العقد عندما لا تكون قيد الاستخدام. أي قيمة أكبر من 0 ستبقي هذا العدد من العقد قيد التشغيل، حتى لو لم تكن قيد الاستخدام.
يمكنك أيضا تكوين مقدار الوقت الذي تكون فيه العقدة خاملة قبل التصغير. بشكل افتراضي، يتم تعيين وقت الخمول قبل التدرج إلى 120 ثانية.
- إذا قمت بإجراء تجارب أقل تكرارا ، فقم بتقليل هذا الوقت لتوفير التكاليف.
- إذا قمت بإجراء تجارب تطوير/اختبار متكررة للغاية، فقد تحتاج إلى زيادة الوقت حتى لا تدفع مقابل التوسع المستمر صعودا وهبوطا بعد كل تغيير في البرنامج النصي أو البيئة التدريبية.
يمكن تكوين مجموعات AmlCompute لمتطلبات عبء العمل المتغيرة في مدخل Azure، باستخدام فئة AmlCompute SDK، AmlComputeCLI، مع واجهات برمجة تطبيقات REST.
تعيين حصص على الموارد
يأتي AmlCompute مع تكوين حصة (أو حد). هذه الحصة حسب عائلة VM (على سبيل المثال، سلسلة Dv2 وسلسلة NCv3) وتختلف حسب المنطقة لكل اشتراك. تبدأ الاشتراكات بإعدادات افتراضية صغيرة لتمكينك من البدء، ولكن استخدم هذا الإعداد للتحكم في مقدار موارد Amlcompute المتاحة ليتم نسجها في اشتراكك.
قم أيضا بتكوين الحصة النسبية لمستوى مساحة العمل حسب عائلة الجهاز الظاهري، لكل مساحة عمل ضمن اشتراك. يتيح لك القيام بذلك الحصول على تحكم أكثر دقة في التكاليف التي قد تتكبدها كل مساحة عمل وتقييد بعض عائلات VM.
لتعيين حصص على مستوى مساحة العمل، ابدأ في مدخل Azure. حدد أي مساحة عمل في اشتراكك، وحدد الاستخدامات + الحصص النسبية في الجزء الأيمن. ثم حدد علامة التبويب تكوين الحصص النسبية لعرض الحصص النسبية . تحتاج إلى امتيازات في نطاق الاشتراك لتعيين الحصة النسبية، نظرا لأنه إعداد يؤثر على مساحات عمل متعددة.
تعيين سياسات الإنهاء التلقائي للتشغيل
في بعض الحالات ، يجب عليك تكوين عمليات التدريب الخاصة بك للحد من مدتها أو إنهائها مبكرا. على سبيل المثال، عند استخدام ضبط المعلمات التشعبية المضمنة في Azure التعلم الآلي أو التعلم الآلي التلقائي.
فيما يلي بعض الخيارات المتوفرة لديك:
- حدد معلمة تسمى
max_run_duration_secondsفي RunConfiguration للتحكم في المدة القصوى التي يمكن أن يمتد إليها التشغيل على الحساب الذي تختاره (إما حساب سحابي محلي أو بعيد). - لضبط المعلمات التشعبية، حدد نهج إنهاء مبكر من نهج Bandit أو نهج إيقاف متوسط أو نهج تحديد الاقتطاع. لمزيد من التحكم في عمليات مسح المعلمات التشعبية، استخدم معلمات مثل
max_total_runsأوmax_duration_minutes. - بالنسبة إلى التعلم الآلي التلقائي، قم بتعيين سياسات إنهاء مماثلة باستخدام العلامة
enable_early_stopping. استخدم أيضا خصائص مثلiteration_timeout_minutesوللتحكمexperiment_timeout_minutesفي الحد الأقصى لمدة التشغيل أو للتجربة بأكملها.
استخدام VMs ذات الأولوية المنخفضة
يسمح لك Azure باستخدام السعة الزائدة غير المستخدمة Low-Priority الأجهزة الظاهرية عبر مجموعات مقياس الجهاز الظاهري والدفعات وخدمة التعلم الآلي. هذه المخصصات قابلة للاستباق ولكنها تأتي بسعر مخفض مقارنة بالأجهزة الظاهرية المخصصة. بشكل عام ، نوصي باستخدام Low-Priority VMs لأحمال عمل الدفعة. يجب عليك أيضا استخدامها حيث تكون الانقطاعات قابلة للاسترداد إما من خلال إعادة الإرسال (للاستدلال الدفعي) أو من خلال إعادة التشغيل (للتدريب على التعلم العميق مع نقاط التفتيش).
تحتوي Low-Priority VMs على حصة واحدة منفصلة عن قيمة الحصة المخصصة ، والتي يتم إجراؤها بواسطة عائلة VM. تعرف على المزيد حول حصص AmlCompute.
لا تعمل الأجهزة الظاهرية Low-Priority مع مثيلات الحوسبة، نظرا لأنها تحتاج إلى دعم تجارب الكمبيوتر المحمول التفاعلية.
جدولة مثيلات الحوسبة
عند إنشاء مثيل حوسبة، يظل الجهاز الظاهري قيد التشغيل بحيث يكون متاحا لعملك. قم بإعداد جدول زمني لبدء مثيل الحوسبة (المعاينة) وإيقافه تلقائيا لتوفير التكلفة عندما لا تخطط لاستخدامه.
استخدام المثيلات المحجوزة
هناك طريقة أخرى لتوفير المال على موارد الحوسبة وهي مثيل Azure Reserved VM. مع هذا العرض، فإنك تلتزم لمدة سنة واحدة أو ثلاث سنوات. تتراوح هذه الخصومات حتى 72٪ من أسعار الدفع أولا بأول ويتم تطبيقها مباشرة على فاتورة Azure الشهرية.
Azure التعلم الآلي Compute يدعم المثيلات المحجوزة بطبيعتها. إذا قمت بشراء مثيل محجوز لمدة عام واحد أو ثلاث سنوات، فسنطبق الخصم تلقائيا على حساب Azure التعلم الآلي المدار.
التدريب محليا
عند وضع النماذج الأولية وتشغيل وظائف التدريب الصغيرة بما يكفي لتشغيلها على الكمبيوتر المحلي، فكر في التدريب محليا. باستخدام Python SDK ، قم بتعيين هدف local الحوسبة الخاص بك لتنفيذ البرنامج النصي الخاص بك محليا. لمزيد من المعلومات، راجع تكوين عمليات تشغيل التدريب وإرسالها.
يوفر Visual Studio Code بيئة كاملة الميزات لتطوير تطبيقات التعلم الآلي الخاصة بك. باستخدام ملحق Azure التعلم الآلي المرئي Visual Studio Code وDocker، يمكنك التشغيل وتصحيح الأخطاء محليا. لمزيد من المعلومات، راجع تصحيح الأخطاء التفاعلي باستخدام Visual Studio Code.
التدريب بالتوازي
تتمثل إحدى الطرق الرئيسية لتحسين التكلفة والأداء في موازاة عبء العمل بمساعدة خطوة تشغيل متوازية في Azure التعلم الآلي. تتيح لك هذه الخطوة استخدام العديد من العقد الأصغر لتنفيذ المهمة بالتوازي ، مما يسمح لك بالتوسع أفقيا. هناك نفقات عامة للتوازي. اعتمادا على عبء العمل ودرجة التوازي التي يمكن تحقيقها ، قد يكون هذا أو لا يكون خيارا. لمزيد من المعلومات، راجع وثائق ParallelRunStep .
تعيين سياسات حذف الاحتفاظ بالبيانات &
في كل مرة يتم فيها تنفيذ خط أنابيب، يتم إنشاء مجموعات بيانات وسيطة في كل خطوة. بمرور الوقت، تشغل مجموعات البيانات الوسيطة هذه مساحة في حساب التخزين الخاص بك. فكر في إعداد سياسات لإدارة بياناتك طوال دورة حياتها لأرشفة مجموعات البيانات وحذفها. لمزيد من المعلومات، راجع تحسين التكاليف عن طريق أتمتة طبقات الوصول إلى Azure Blob Storage.
نشر الموارد في نفس المنطقة
قد تواجه الحسابات الموجودة في مناطق مختلفة زمن انتقال الشبكة وزيادة تكاليف نقل البيانات. يتم تكبد تكاليف شبكة Azure من عرض النطاق الترددي الصادر من مراكز بيانات Azure. للمساعدة في تقليل تكاليف الشبكة، انشر جميع مواردك في المنطقة. يمكن أن يساعد توفير مساحة عمل Azure التعلم الآلي والموارد التابعة في نفس المنطقة التي تعمل فيها بياناتك في خفض التكلفة وتحسين الأداء.
بالنسبة لسيناريوهات السحابة المختلطة مثل تلك التي تستخدم ExpressRoute، قد يكون نقل جميع الموارد إلى Azure في بعض الأحيان أكثر فعالية من حيث التكلفة لتحسين تكاليف الشبكة ووقت الاستجابة.