الوحدة 2 — أهداف الحساب: مثيلات، عناقيد، حوسبة عند الطلب
مساحة العمل من الوحدة السابقة لا تحسب بنفسها أيّ شيء: إنّها مجرّد حاوية. يتمّ الحساب على هدف حساب (compute target) تختاره لكلّ استعمال. اختيار سيّئ للهدف يعني إمّا فاتورة مضاعفة أو مهمّة تستغرق ثلاثة أضعاف الوقت. هذه الوحدة تُقدّم الأنواع الثلاثة الرئيسية، ومتى يُختار كلّ نوع، والفخّ الوحيد الذي يستنزف الميزانية.
الأنواع الثلاثة الرئيسية
| النوع | الحالة الطبيعية | متى نستعمله |
|---|---|---|
| Compute Instance | مثيل واحد يعمل دائمًا | التطوير التفاعلي في دفاتر Jupyter |
| Compute Cluster | عنقود يتوسّع ديناميكيًّا | التدريب الدفعي، مسح المعاملات الفائقة |
| Serverless Compute | لا شيء نديّره | مهامّ قصيرة أو نادرة، ابتداء سريع |
الفكرة المشتركة: الحساب مصفوفة قابلة للاختيار. تُصرّح عنه في وقت إرسال المهمّة، ولا تحفر في الشفرة اسم المثيل الذي يحسب.
مثيل الحساب (Compute Instance)
هذا آلة افتراضية شخصية لعالم البيانات، تحتوي بايثون وJupyter وVS Code في المتصفّح. مفيدة للاستكشاف السريع لبيانات المبيعات في سلسلة متاجرنا، ولكتابة الشفرة قبل ترحيلها إلى مهمّة رسمية. لكن ثمنها يمشي بالساعة حتى لو لم تفعل شيئًا.
القاعدة الحاسمة: أوقف المثيل ليلًا وفي عطلات الأسبوع. Azure يوفّر جدولة تلقائية للإيقاف والتشغيل داخل تعريف المثيل:
name: ci-analyst-01
type: computeinstance
size: Standard_DS3_v2
schedules:
compute_start_stop:
- action: stop
cron:
hours: "19"
minutes: "0"
time_zone: "W. Europe Standard Time"
مثيل بحجم Standard_DS3_v2 يعمل 24/7 يكلّف نحو 4× ما يكلّفه لو عمل فقط في ساعات المكتب. لا شيء تقني هنا، فقط انضباط تشغيلي.
عنقود الحساب (Compute Cluster)
العنقود مجموعة عقد متطابقة. أهمّ صفتين فيه:
min_instances = 0: يهبط العنقود إلى صفر عقد حين لا مهمّة تنتظر، فلا تدفع شيئًا للحوسبة (يبقى مصروف يسير للتخزين).max_instances: السقف الأعلى. إن أُرسلت خمس مهامّ متوازية، يمتدّ العنقود إلى خمس عقد ثمّ يعود.
لتدريب نموذج تنبّؤ الطلب على عيّنات كثيرة (متغيّر عبر مسح معاملات فائقة)، ننشئ عنقودًا كالتالي:
az ml compute create \
--name cpu-cluster \
--type amlcompute \
--min-instances 0 \
--max-instances 8 \
--size Standard_DS3_v2 \
--idle-time-before-scale-down 120
idle-time-before-scale-down بالثواني: بعد دقيقتين من الخمول تتقلّص العقد.
الفخّ الأكبر: كتابة --min-instances 1 بدل صفر. يبدو خيار «الأمان» ليحافظ على استعداد فوري للمهامّ، لكنّه يعني أنّ عقدة تدفع فاتورتها 168 ساعة أسبوعيًّا حتى في غياب أيّ مهمّة. سلسلة متاجر مرّت بهذا الخطأ فوجدت 4000 يورو تسرّبت في شهرين. اترك الحدّ الأدنى صفرًا واقبل تأخير الابتداء البارد بضع دقائق.
المثيلات ذات الأولوية المنخفضة (Low Priority)
Azure تعرض عقدًا بسعر مخفَّض 60% إلى 80%، بشرط أن تستطيع أن تنتزعها في أيّ لحظة إن احتاجها زبون آخر بأولوية أعلى. مفيدة لمسح معاملات فائقة تحتم ل إعادة تشغيل: تفقد 3 مهامّ من أصل 20، تعيد إطلاقها، وتوفّر رغم ذلك.
az ml compute create \
--name spot-cluster \
--type amlcompute \
--tier low_priority \
--size Standard_DS3_v2 \
--max-instances 10
لا تستعملها لتدريب نموذج نهائي ينبغي تسليمه اليوم. الانتزاع في اللحظة الحرجة يعني فقدان النموذج قبل تسجيله.