هذه الصفحة جزء من سلسلة Decision. تشرح متى تستخدم كل مكتبة بناءً على نوع المشكلة — لا ترتيب "الأفضل" بدون سياق.
القاعدة الذهبية
اختر أبسط مكتبة تفي بالغرض.
أبسط → أعقد:
NumPy (أساسيات)
↓
Pandas (جداول)
↓
scikit-learn (ML تقليدي)
↓
PyTorch / TensorFlow (Deep Learning)
↓
Hugging Face Transformers (نماذج جاهزة)
لا تتخطّى خطوة. كل مكتبة تبني على ما قبلها.
جدول سريع للاختيار
| المشكلة | المكتبة المناسبة |
|---|---|
| حوسبة عددية (مصفوفات، عمليات رياضية) | NumPy |
| جداول بيانات (CSV، Excel) | Pandas |
| ML تقليدي (انحدار، تصنيف، تجميع) | scikit-learn |
| مشكلة لا تستلزم ML أصلًا (قواعد ثابتة) | قاعدة if-then يدوية بدون مكتبة ML |
| شبكات عصبية عميقة من الصفر | PyTorch أو TensorFlow |
| استخدام نموذج لغوي كبير جاهز | Hugging Face Transformers |
| التعامل مع OpenAI/Anthropic APIs | openai / anthropic SDKs |
| تصوير (Computer Vision) | PyTorch + torchvision أو TensorFlow + Keras |
| نشر Production بسيط | FastAPI + أي مما سبق |
NumPy — الأساس
NumPy = أساس كل المكتبات الأخرى تقريبًا. تتعلّمه أوّلًا.
استخدم NumPy لـ:
- عمليات على المصفوفات والشعّاعات.
- حسابات رياضية وإحصائية يدوية.
- فهم ما يحدث "تحت الغطاء" في النماذج.
تفصيل في NumPy للذكاء الاصطناعي.
Pandas — الجداول والبيانات
Pandas = الجداول والبيانات الحقيقية. أغلب وقتك في ML يذهب هنا.
استخدم Pandas لـ:
- قراءة CSV / Excel / JSON / SQL.
- تنظيف البيانات، التعامل مع القيم المفقودة.
- التحليل الإحصائي الاستكشافي (EDA).
- Feature engineering.
تفصيل في Pandas لتحضير البيانات.
بديل حديث: Polars أو DuckDB للجداول الضخمة جدًا.
scikit-learn — ML التقليدي
scikit-learn = الـ ML التقليدي (غير العميق). خوارزميات جاهزة بـ API موحّد.
استخدم scikit-learn لـ:
- الانحدار (Linear, Ridge, RandomForest).
- التصنيف (Logistic, SVM, Decision Tree, RandomForest).
- التجميع (K-Means, DBSCAN).
- Cross-Validation، pipelines، preprocessing.
- تقييم النماذج التقليدية.
لا تستخدم scikit-learn لـ:
- شبكات عصبية عميقة → PyTorch / TensorFlow.
- نماذج لغوية كبيرة → Hugging Face.
تفصيل في scikit-learn: أول نموذج.
PyTorch vs TensorFlow — التعلّم العميق
كلاهما frameworks شائعة للتعلّم العميق. الفروقات بينهما تختلف بحسب المشروع والبيئة، ولا توجد قاعدة واحدة تناسب جميع الحالات:
| PyTorch | TensorFlow | |
|---|---|---|
| أسلوب API | Imperative (Pythonic، تنفيذ فوري) | Keras كواجهة عالية المستوى (graph mode في الخلفية) |
| تجربة التصحيح | تنفيذ فوري يسهّل التصحيح | قد يحتاج جهدًا إضافيًا لتتبّع التنفيذ |
| Mobile/Edge | خيارات متاحة، لكن تاريخيًا TensorFlow يوفّر دعمًا أقوى عبر LiteRT (الاسم الحالي لـ TensorFlow Lite، لا يزال يعمل مع نماذج PyTorch و JAX و Keras) | دعم أقوى تاريخيًا لـ mobile/edge عبر LiteRT |
| تخصيص النماذج | مرونة عالية للتجريب | يوفّر Keras لتبسيط المهام الشائعة |
توجيه عام: لا توجد مكتبة «أفضل» للجميع. الاختيار يعتمد على متطلبات مشروعك (mobile/edge؟ production في مؤسسة كبيرة؟ أبحاث؟)، والبيئة المحيطة، ومصادر التعلّم المتاحة. إن كنت مبتدئًا، اختر الـ framework الذي يوفّر لك محتوى تعليمي ومصادر أكثر بحالتك، وأتقنه قبل تجربة غيره.
استخدم PyTorch لـ:
- شبكات عصبية من الصفر.
- تجريب هندسات جديدة في الأبحاث.
- العمل مع النماذج اللغوية ونماذج الصور المنتشرة في الأوساط الأكاديمية ومجتمع المصادر المفتوحة.
- Computer Vision.
استخدم TensorFlow (أو Keras) لـ:
- نشر في بيئات mobile/edge عبر LiteRT.
- التكامل مع بنية Google Cloud.
- تطبيقات production في بيئات تتطلّب أدوات ناضجة لإدارة النماذج.
Hugging Face — مكتبة Transformers ونماذج جاهزة
Hugging Face منظومة ومنصّة توفّر نماذج وبيانات وأدوات، ومن ضمنها مكتبة transformers الشهيرة التي تقدّم واجهات Python لتحميل واستخدام نماذج جاهزة مثل BERT و GPT و Stable Diffusion و Whisper.
استخدم Hugging Face لـ:
- استخدام نموذج جاهز بدون تدريب من الصفر.
- Fine-tuning نموذج موجود لمهمّتك.
- التعامل مع نماذج لغوية متاحة عبر المنصّة (Llama، Mistral، Qwen، وغيرها).
- Multimodal (vision + text، audio + text).
لا تستخدم Hugging Face لـ:
- تدريب نموذج لغوي من الصفر (تحتاج بنية تحتية ضخمة).
- ML تقليدي (استخدم scikit-learn بدلاً منها).
أدوات مساعدة مهمة
| الأداة | الاستخدام |
|---|---|
| Matplotlib / Seaborn | رسم المخططات |
| Jupyter / JupyterLab | بيئة تطوير تفاعلية |
| FastAPI | نشر ML كـ REST API |
| Docker | تغليف التطبيق في صورة محمولة |
| MLflow / Weights & Biases | تتبع التجارب |
| Optuna | ضبط hyperparameters متقدّم |
| SHAP / LIME | تفسير تنبّؤات النموذج |
كيف تختار عمليًا؟
إذا كنت مبتدئًا
1. NumPy (أساسيات)
2. Pandas (جداول)
3. scikit-learn (ML تقليدي)
4. PyTorch (Deep Learning)
هذه تغطية جيدة لمشاريع ML الكلاسيكية البسيطة. أضف TensorFlow و JAX و Polars و Hugging Face فقط عندما تبرز حاجة واضحة لها في مشروعك.
إذا كنت تبني تطبيق LLM
1. OpenAI / Anthropic / Google SDK
2. Hugging Face Transformers (لاختيار النموذج)
3. LangChain / LlamaIndex (orchestration)
4. Pinecone / Weaviate / Chroma (vector DB لـ RAG)
تفصيل في الموجة التالية من المسار.
إذا كنت تبحث
1. PyTorch + torchvision
2. Hugging Face Datasets (للبيانات)
3. Weights & Biases (لتجارب)
متى تتجنّب مكتبات معيّنة؟
- scikit-learn للتعلّم العميق: scikit-learn لا يدعم الشبكات العصبية العميقة، استخدم PyTorch أو TensorFlow بدلًا منها.
- PyTorch للجداول الصغيرة: قد يكون أكثر من اللازم، scikit-learn أبسط عادةً لحالات الجداول الكلاسيكية.
- TensorFlow للـ LLMs: ممكن تقنيًا، لكن معظم المصادر المفتوحة والمجتمع تستخدم PyTorch للنماذج اللغوية.
- Hugging Face للـ ML التقليدي: Hugging Face يركّز على النماذج الجاهزة، scikit-learn أبسط لمهام ML التقليدية.
كيف تقرّر بين الأدوات داخل نفس الفئة؟
| القرار | العوامل |
|---|---|
| PyTorch vs TensorFlow | شعبية + سهولة + متطلبات |
| scikit-learn vs XGBoost | حجم البيانات + نوع المشكلة |
| OpenAI vs Anthropic vs Google | تكلفة + جودة + ميزات |
| Pinecone vs Weaviate vs Chroma | حجم البيانات + تكلفة + latency |
لا تختار بناءً على ضجيج تسويقي أو «الأشهر». اختر بناءً على:
- هل يناسب نوع المشكلة ومتطلباتها؟
- هل أنت مرتاح مع الـ API؟
- ما الـ cost والـ latency؟
- هل يوجد documentation ودعم كافٍ لمشروعك؟
نصائح عملية
- لا تتعلّم كل المكتبات قبل البدء. تعلّم حسب الحاجة.
- ابدأ بـ scikit-learn — أبسط وأسرع طريق لنموذج يعمل.
- PyTorch فقط عند الحاجة الفعلية لـ Deep Learning.
- Hugging Face فقط إذا أردت نموذج جاهز.
- اختبر دائمًا على بيانات حقيقية، لا بيانات وهمية.
الخلاصة
- NumPy + Pandas + scikit-learn تغطّي معظم احتياجات ML التقليدي.
- PyTorch و TensorFlow كلاهما شائع للتعلّم العميق والـ LLMs.
- Hugging Face للنماذج الجاهزة.
- اختر حسب الحاجة، لا بناءً على ضجيج تسويقي.
🔗 للمسار العملي الكامل: ابدأ من ما هو الذكاء الاصطناعي وتعلّم الآلة؟.