FastAPI لتعلّم الآلة: تقديم النموذج خلف واجهة برمجية متينة
نموذج التعلّم الآلي داخل دفتر Jupyter لا يخدم أحدًا. لكي يستفيد منه تطبيق الويب أو تطبيق الهاتف أو تقرير تنفيذيّ يوميّ، يحتاج إلى واجهة برمجية تستقبل طلبات HTTP، تتحقّق من صحّة المدخلات، تُنفّذ التنبّؤ، وتُعيد النتيجة بشكل موثوق. هذه الدورة تبني تلك الواجهة خطوة بخطوة بمكتبة FastAPI.
مدّة الدورة: 5 ساعات
ما ستتعلّمه
- تصميم مسارات GET وPOST مع أنواع بيانات صارمة وتوثيق تفاعليّ آليّ.
- التحقّق من كلّ مدخل بـPydantic والتمييز بين خطأ 400 وخطأ 422 عمليًّا.
- تحميل النموذج مرّة واحدة عند بدء الخدمة بدل تحميله في كلّ طلب.
- بناء مسار للتنبّؤ الفرديّ وآخر للتنبّؤ بالدفعات مع حدّ أعلى للحجم.
- تصميم استجابات خطأ مُهيكلة لا تكشف تتبّع الاستثناء للعميل.
- استعمال
asyncبحكمة، وتحويل المهام الطويلة إلى مهامّ خلفيّة. - حماية الواجهة بـAPI Key، ثمّ JWT، مع دوران المفاتيح وتحديد المعدّل.
- تسجيل مُهيكل مع معرّف طلب، ومسارَي liveness وreadiness صادقَين.
- تحزيم الخدمة في صورة Docker خفيفة متعدّدة المراحل ونشرها.
- قياس أداء الواجهة بـLocust وتحديد عدد العمّال والنسخ المطلوبة.
المتطلّبات المسبقة
- بايثون (الدورة 02): كتابة صنف بسيط، فهم الديكوريتر (
@decorator). - نموذج مُدرَّب (الدورة 04 أو ما بعدها): ملفّ
.pklأو.joblibيعمل. - أساسيّات Docker: بناء صورة، تشغيل حاوية، تمرير متغيّرات بيئة.
الخيط الأحمر
نبني طوال الوحدات العشر واجهة تسجيل نموذج تسرّب المشتركين الذي رأيناه في دورة MLOps (الدورة 20)، ونستهلكها من لوحة القيادة Streamlit التي بنيناها في الدورة 38. نبدأ من عشرة أسطر تُشغّل FastAPI، وننتهي بمشروع كامل: مسار وحيد، تحقّق مدخلات، تحميل مبكر للنموذج، دفعات مع حدّ أعلى، أخطاء منظّمة، مهمّة خلفيّة تُسجّل ملفًّا كاملًا، جيتون مصادقة، تسجيل مع معرّف طلب، صورة Docker خفيفة، وتقرير Locust يُثبت أنّ الواجهة تصمد لألف طلب في الثانية.
وحدات الدورة
- FastAPI: المسارات والأنواع والتوثيق الآليّ
- التحقّق من المدخلات مع Pydantic
- تحميل النموذج عند بدء التشغيل
- التوقّع الفرديّ وبالدفعات
- معالجة الأخطاء ورموز الحالة
- الطلبات غير المتزامنة ومهامّ الخلفيّة
- المصادقة بالرمز
- التسجيل ومجسّات الصحّة
- التحزيم في حاويات والنشر
- اختبارات الحمل وتحديد الحجم
التقييم والشهادة
يُختَم المسار باختبار من 40 سؤالًا يغطّي الوحدات العشر، وتُمنَح عند النجاح شهادة إتمام قابلة للتحقّق برقمها على المنصّة.