بناء خط أنابيب تعلّم آلي موثوق به محلياً باستخدام MLE-Agent و Ollama

يُقدم هذا البرنامج التعليمي طريقةً لدمج MLE-Agent مع Ollama لإنشاء سير عمل تعلّم آلي محلي بالكامل، وخالٍ من واجهات برمجة التطبيقات الخارجية (APIs). سنقوم بإعداد بيئة قابلة للتكرار في Google Colab، وتوليد مجموعة بيانات اصطناعية صغيرة، ثم توجيه الوكيل لكتابة نص برمجي للتدريب. لضمان المتانة، سنقوم بتنقية الأخطاء الشائعة، وضمان صحة الاستيرادات، وإضافة نص برمجي احتياطي مضمون. بهذه الطريقة، نحافظ على سلاسة سير العمل مع الاستفادة من الأتمتة في الوقت نفسه.

إعداد بيئة العمل وتثبيت التبعيات

  • إنشاء مسارات العمل: أولاً، نقوم بتحديد مسارات العمل وملفاتها في بيئة Google Colab. هذا يضمن تنظيم المشروع وتسهيل الوصول إلى الملفات المختلفة.
  • تثبيت الحزم: نستخدم الأمر pip لتثبيت جميع التبعيات اللازمة، بما في ذلك mle-agent, scikit-learn, pandas, numpy, و joblib. يضمن ذلك توافق جميع المكتبات اللازمة لعملية التدريب.
  • تشغيل Ollama: نقوم بتثبيت وتشغيل Ollama محلياً، وسحب النموذج المختار (llama3.2:1b في هذه الحالة)، مع إبقاء الخادم قيد التشغيل لتوليد التعليمات البرمجية دون الحاجة إلى مفاتيح API خارجية. يضمن هذا السرعة والأمان.

توليد مجموعة البيانات الاصطناعية

نقوم بتوليد مجموعة بيانات اصطناعية صغيرة مُسمّاة باستخدام مكتبات NumPy و Pandas. تتضمن هذه المجموعة بيانات مستقلة و تابعة، مُعدّة خصيصاً لاختبار خط أنابيب التعلم الآلي.

كتابة نص برمجي للتدريب باستخدام MLE-Agent و Ollama

  • صياغة المُوجّه (Prompt): نقوم بصياغة مُوجّه دقيق لـ MLE-Agent لكتابة نص برمجي train.py يقوم بما يلي:
    • قراءة البيانات من الملف data.csv.
    • تقسيم البيانات إلى مجموعات تدريب واختبار بنسبة 80/20 باستخدام الاستراتجية stratify.
    • بناء خط أنابيب Pipeline باستخدام SimpleImputer, StandardScaler, و LogisticRegression.
    • طباعة قيم ROC-AUC و F1.
    • طباعة معاملات التصنيف مرتبة حسب الحجم.
    • حفظ النموذج في الملف model.joblib والتنبؤات في الملف preds.csv.
    • استخدام مكتبات scikit-learn، pandas، numpy، و joblib فقط.
  • استخراج التعليمات البرمجية: نستخدم دالة مساعدة لاستخراج التعليمات البرمجية من مُخرجات MLE-Agent، مع السقوط الاحتياطي إلى ollama run في حالة عدم نجاح MLE-Agent.

تنقية وتأمين نص البرنامج المُولّد

  • تنقية التعليمات البرمجية: نقوم بتنقية التعليمات البرمجية المُولّدة آلياً لإصلاح الأخطاء الشائعة، مثل تصحيح استيرادات scikit-learn.
  • إنشاء نص برمجي احتياطي: نُنشئ نص برمجي احتياطي (train_safe.py) يضمن تشغيل عملية التدريب والتقييم وحفظ النتائج حتى لو كان النص البرمجي المُولّد من قبل الوكيل يحتوي على أخطاء. هذا يضمن موثوقية العملية.

تشغيل النص البرمجي وتقييم النتائج

نقوم بتشغيل إما النص البرمجي المُنقّى أو النص البرمجي الاحتياطي، ثم نقوم بطباعة معاينة لمحتوياته، ثم سرد جميع الملفات الناتجة للتأكد من اكتمال سير العمل بنجاح.

الخلاصة

يُظهر هذا البرنامج التعليمي كيفية دمج نماذج اللغات الكبيرة المحلية مع خطوط أنابيب التعلم الآلي التقليدية مع الحفاظ على الموثوقية والأمان. النتيجة هي إطار عمل عملي يسمح لنا بالتحكم في التنفيذ، وتجنب مفاتيح API الخارجية، ولا يزال يُمكّننا من الاستفادة من الأتمتة لتدريب نماذج التعلم الآلي في العالم الحقيقي.

المصدر: MarkTechPost