مسارات تعلم آلي قابلة للتوسع باستخدام Airflow
مسارات قائمة على DAG، وتبعيات المهام، وإدخال البيانات ← التدريب ← التقييم ← النشر
مسارات تعلم آلي قابلة للتوسع باستخدام Airflow درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
لماذا التنسيق
يتكون سير عمل ML من خطوات عديدة: استيعاب البيانات، وبناء السمات، والتدريب، والتقييم، والنشر. ويُعد تنفيذ هذه الخطوات يدويًا أمرًا هشًا. ويتولى Apache Airflow تنسيقها بصفتها كودًا، مع توفير الجدولة، وإعادة المحاولة، والتبعيات، والمراقبة مدمجة.
مخطط DAG
يمثل Airflow مسارًا باعتباره DAG (رسمًا بيانيًا موجّهًا لا دوري) من المهام. وتعني كلمة لا دوري أنه لا يمكن لأي مهمة أن تعتمد على نفسها ضمن حلقة، لذلك يكون للتنفيذ دائمًا ترتيب محدد بوضوح من البداية إلى النهاية.
تعريف DAG
تعلنون عن DAG باستخدام معرّف وجدولة وتاريخ بدء. وتحدد الجدولة عدد مرات تشغيله، مثل إعادة التدريب يوميًا.
from airflow import DAG
import datetime
with DAG(
dag_id="ml_pipeline",
schedule="@daily",
start_date=datetime.datetime(2024, 1, 1),
catchup=False,
) as dag:
...المشغلات هي المهام
كل عقدة في DAG هي مهمة تُنشأ من مشغّل. وتشغّل المشغلات المختلفة أنواعًا مختلفة من العمل: دوال Python، وأوامر bash، واستعلامات SQL، وغير ذلك.
PythonOperator للتدريب
يشغّل PythonOperator دالة Python قابلة للاستدعاء. وهو مناسب تمامًا لخطوة تدريب تستدعي دالة التدريب الخاصة بكم.
from airflow.operators.python import PythonOperator
def train_model():
# load features, fit model, save artifact
...
train = PythonOperator(
task_id="train",
python_callable=train_model,
)BashOperator للتقييم
يشغّل BashOperator أمرًا في الصدفة، وهو مفيد لاستدعاء نص برمجي للتقييم أو أداة CLI.
from airflow.operators.bash import BashOperator
evaluate = BashOperator(
task_id="evaluate",
bash_command="python /opt/ml/evaluate.py --model latest",
)تعريف التبعيات
يحدد العامل >> ترتيب المهام: تعني a >> b أن b تُشغّل بعد نجاح a. وهذا يربط DAG بحيث لا يبدأ التقييم إلا بعد انتهاء التدريب.
train >> evaluate
# train must succeed before evaluate runsسلاسل التبعيات الأطول
يمكنكم ربط العديد من المهام للتعبير عن الترتيب الكامل لمسار العمل. ويشغّل Airflow الفروع المستقلة بالتوازي، ويحترم كل تبعية تعلنون عنها.
ingest >> features >> train >> evaluate >> deployتمرير البيانات باستخدام XCom
تعمل المهام بمعزل عن بعضها، فكيف تمرر إحداها نتيجة إلى التالية؟ يتيح XCom (التواصل المتبادل) لمهمة دفع قيمة صغيرة، مثل مسار نموذج أو مقياس، ثم تسحبها مهمة لاحقة.
def train_model(ti):
path = "/models/run_42.pt"
ti.xcom_push(key="model_path", value=path)
def deploy(ti):
path = ti.xcom_pull(key="model_path", task_ids="train")
# deploy the artifact at pathXCom للبيانات الصغيرة
صُمم XCom من أجل البيانات الوصفية الصغيرة (المسارات والمعرّفات والمقاييس)، وليس مجموعات البيانات الكبيرة. وينبغي أن تعيش العناصر الكبيرة في تخزين الكائنات (S3)، مع تمرير موقعها فقط عبر XCom. ويؤدي الإفراط في استخدام XCom للبيانات الكبيرة إلى الضغط على قاعدة بيانات البيانات الوصفية.
الجدولة وإعادة المحاولة
يضيف Airflow المتانة اللازمة للإنتاج تلقائيًا: إذ تؤدي الجدولة إلى تشغيل المهام تلقائيًا، وتعيد المهام الفاشلة المحاولة مع التراجع التدريجي، وتعرض واجهة المستخدم حالة كل مهمة وتشغيل، مع إرسال تنبيهات عند الفشل.
اختبار سريع
اختبروا معرفتكم بـ Airflow.
مراجعة
لقد تعلمتم بناء مسارات ML قابلة للتوسع باستخدام Airflow:
- يحدد DAG مع الجدولة مسار العمل
- يشغّل PythonOperator التدريب، ويشغّل BashOperator التقييم
- يحدد العامل
>>تبعيات المهام - يمرر XCom العناصر الصغيرة بين المهام، بينما تذهب البيانات الكبيرة إلى تخزين الكائنات
الأسئلة الشائعة
هل درس «مسارات تعلم آلي قابلة للتوسع باستخدام Airflow» مجاني؟
نعم — نص درس «مسارات تعلم آلي قابلة للتوسع باستخدام Airflow» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «مسارات تعلم آلي قابلة للتوسع باستخدام Airflow»؟
مسارات قائمة على DAG، وتبعيات المهام، وإدخال البيانات ← التدريب ← التقييم ← النشر تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «مسارات تعلم آلي قابلة للتوسع باستخدام Airflow»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أنماط بنية أنظمة الذكاء الاصطناعي
- مسارات تعلم آلي قابلة للتوسع باستخدام Airflow
- مخازن الميزات: Feast وTecton
- الرصد الشامل لأنظمة الذكاء الاصطناعي ومراقبتها