المشاريع
تطبيقات مرجعية مبنية للتعليم والممارسة. يرتبط كل مشروع بالمقالات والمسارات التعليمية.
GPT From Scratch
محوّل بمفكّك ترميز فقط، مبني مكوّنًا تلو الآخر - المُرمِّز، التضمينات، الانتباه، الكتل، وحلقة التدريب المسبق - دون أي شيفرة نمذجة مستوردة من مكتبة.
Neural Network From Scratch
شبكة أمامية التغذية في NumPy مع انتشار خلفي مُشتقّ يدويًا، مُتحقَّق منه بالتدرّجات العددية، فيُبرهَن حساب التفاضل بدل الوثوق به.
Statistical Learning Toolkit
المربّعات الصغرى والانحدار اللوجستي وريدج ولاسو والتحقق المتقاطع k-fold، مُنفَّذة من معادلات التقدير ومُدقَّقة مقابل scikit-learn.
Game-Playing Agent
مينيماكس مع تشذيب ألفا-بيتا على شجرة لعب حقيقية، مع حلّال توازنات لألعاب صغيرة بالصيغة الاعتيادية - اللعب الأمثل ضد خصم، وضد لاعب عقلاني.
Gridworld RL Lab
تكرار القيمة وتكرار السياسة وQ-learning على عالم الشبكة نفسه، لمقارنة مُخطِّط يعرف النموذج مباشرةً بمُتعلِّم لا يعرفه.
Bayesian Inference Playground
تحديث المُقدَّم إلى اللاحق بعائلات مترافقة، مع مستكشف للإنتروبيا وتباعد كولباك-لايبلر يقيس ما أخبرَتْه كل ملاحظة فعليًا.
مشاريع مفتوحة المصدر للتعلّم
مشاريع مجانية يستحق كل منها أمسية، من كلاسيكيات صغيرة تجعل فكرة واحدة ملموسة إلى قواعد شيفرة حديثة تعرض المسار الحديث كاملا. لكل مشروع: لماذا تستحق قراءته، وأول ملف تفتحه.
كلاسيكيات
- مبتدئMIT★ 17.7 ألف
micrograd
Python
محرّك كامل للاشتقاق التلقائي في 94 سطرًا، تعلوه مكتبة صغيرة للشبكات العصبية.
لماذا: يُدرَّس الانتشار العكسي عادةً على أنه صيغة، ويُستعمل كصندوق أسود. أما هنا فهو صنف
Valueتسجّل كل عملية فيه كيفية تمرير التدرّج إلى الخلف، ودالةbackward()تجتاز المخطط بترتيب طوبولوجي معكوس. وبعد قراءته يتبيّن أن autograd في PyTorch هو الفكرة نفسها مطبّقة على الموترات بدلًا من الكميات القياسية.ابدأ بـ: micrograd/engine.py، ثم micrograd/nn.py (60 سطرًا): لاحظ كيف تخزّن
__mul__المشتقة المحلية لكل مُدخل، ولماذا يجب علىbackward()أن ترتّب المخطط قبل تطبيق قاعدة السلسلة.على هذا الموقع: الانتشار العكسي والنزول التدرّجي, ما هي الشبكة العصبية؟
شغّله هنا، في متصفحك
micrograd: the autograd engine, checked against finite differencesيعمل في متصفحك. تُنزّل عملية التشغيل الأولى بيئة بايثون (~10 ميغابايت)، ثم تُخزّن مؤقتًا.
- مبتدئMIT★ 24.6 ألف
Neural Networks: Zero to Hero
Python (PyTorch)
دفاتر (notebooks) دورة فيديو تبني نماذج اللغة صعودًا من محرّك autograd للكميات القياسية، خطوةً في كل محاضرة.
لماذا: يبني كل دفتر النموذج التالي من النموذج الذي سبقه: micrograd، ثم نموذج ثنائي (bigram) على مستوى الحروف، ثم MLP، ثم التطبيع على الدفعات (batch normalisation)، ثم تمريرة خلفية مكتوبة يدويًا، ثم شبكة على طراز WaveNet؛ وتتابع الفيديوهات بعد ذلك حتى GPT ومقسِّم الرموز (tokenizer) الخاص به. والتدرّج هو المقصود: لا يظهر شيء لم يكن النموذج السابق بحاجة إليه.
ابدأ بـ: lectures/micrograd، ثم lectures/makemore/makemore_part1_bigrams.ipynb: نموذج لغة ليس سوى جدول تعدادات، واللوغاريتم السالب للأرجحية الذي يخبرك بمدى جودة هذا الجدول.
على هذا الموقع: ما هي الشبكة العصبية؟, التقطيع إلى وحدات والتضمينات, معمارية المحوّل
- مبتدئMIT★ 32.9 ألف
ML From Scratch
Python (NumPy)
تطبيقات للخوارزميات الكلاسيكية باستخدام NumPy وحدها: الانحدارات، والأشجار، والتعزيز (boosting)، وآلات المتجهات الداعمة (SVM)، والتجميع، وإطار عمل صغير للتعلم العميق.
لماذا: تُخفي المكتبات الحلقة التي تُلائم النموذج. أما هنا فكل خوارزمية ملف واحد مقروء، فترى أن ridge وlasso يختلفان بسطر واحد في حدّ التنظيم، أو أن gradient boosting حلقة تُلائم أشجارًا على البواقي. لم يعد المشروع قيد التطوير النشط، مما يجعله ثابتًا للقراءة، لا أداةً للنشر.
ابدأ بـ: mlfromscratch/supervised_learning/regression.py: صنف أساسي واحد، وكل انحدار (خطي، متعدد الحدود، ridge، lasso، elastic net) لا يختلف إلا في تنظيمه.
على هذا الموقع: الانحدار الخطي من المبادئ الأولى, التنظيم: ريدج ولاسو, أشجار القرار والتجميعات
- مبتدئApache-2.0★ 14.2 ألف
Hands-On Machine Learning (3rd edition) notebooks
Python (scikit-learn, Keras)
الدفاتر المرافقة لكتاب Aurélien Géron، من أول مشروع متكامل من البداية إلى النهاية حتى التعلم العميق، وكلٌّ منها قابل للتشغيل في Colab.
لماذا: تبدأ معظم الدروس التعليمية بمجموعة بيانات نظيفة. أما الفصل 2 فيبدأ بجدول مساكن غير مرتّب، ويستعرض ما يفعله المشروع الحقيقي قبل أي نموذج: تقسيم طبقي لمجموعة الاختبار، ثم فحص البيانات، ثم خط معالجة مسبقة، ثم التحقق المتقاطع وتحليل الأخطاء. وهذا الترتيب هو أكثر ما يخطئ فيه المبتدئون.
ابدأ بـ: 02_end_to_end_machine_learning_project.ipynb: لاحظ أين تُعزل مجموعة الاختبار، وأنها لا تُمسّ مجددًا حتى النهاية تمامًا.
على هذا الموقع: ما هو التعلّم الإحصائي؟, التحقّق المتقاطع وإعادة المعاينة
- مبتدئMIT (الشيفرة)؛ النص CC BY-NC-ND 3.0★ 50 ألف
Python Data Science Handbook
Python (NumPy, pandas, Matplotlib, scikit-learn)
كتاب Jake VanderPlas بنصه الكامل في صورة دفاتر، متاح للقراءة مجانًا عبر الإنترنت: أدوات العمل الأساسية قبل النماذج.
لماذا: نصف عمل التعلم الآلي هو البثّ (broadcasting) في NumPy وإعادة تشكيل البيانات في pandas، ونادرًا ما يُدرَّس ذلك عن قصد. أما هذا الكتاب فيدرّسه عن قصد، ثم يُختتم بجزء عن التعلم الآلي يشرح بوضوح واجهة المقدِّرات (estimators) في scikit-learn والتحقق من صحة النماذج.
ابدأ بـ: notebooks/05.00-Machine-Learning.ipynb والفصول التي تليه: واجهة برمجة المقدِّرات، ثم المعاملات الفائقة والتحقق من صحة النماذج.
على هذا الموقع: ما هو التعلّم الإحصائي؟, مقايضة التحيّز والتباين
- متوسطMIT★ 28.2 ألف
Bayesian Methods for Hackers
Python (PyMC)
الاستدلال البايزي مُدرَّسًا عبر الحساب أولًا والرياضيات ثانيًا، باستخدام PyMC.
لماذا: حيث يشتقّ الكتاب المدرسي التوزيع اللاحق، يأخذ هذا الكتاب عينات منه ويرسمه، فيصبح التوزيع السابق والأرجحية والتوزيع اللاحق صورًا قبل أن تكون صيغًا. ويستنتج الفصل الأول متى تغيّر سلوك شخص في إرسال الرسائل النصية، وهو نموذج نقطة تغيّر لا يتوقع معظم القرّاء أنهم قادرون على ملاءمته.
ابدأ بـ: Chapter1_Introduction/Ch1_Introduction_PyMC_current.ipynb: مثال الرسائل النصية، وكيف يُقرأ التوزيع اللاحق ليوم التحوّل من العينات.
على هذا الموقع: مبرهنة بايز وتحديث الاعتقاد, تعلّم الأعداد في نموذج احتمالي
- متوسطBSD-3-Clause★ 67.4 ألف
scikit-learn
Python (Cython)
المكتبة المرجعية للتعلم الآلي الكلاسيكي، وإحدى أفضل قواعد الشيفرة توثيقًا للتعلّم منها.
لماذا: إن قراءة الطريقة التي تحلّ بها مكتبة إنتاجية المسألة التي اشتققتها على الورق تُظهر ما يُغفله الاشتقاق: أيّ حلّال (solver) يناسب أيّ شكل للبيانات، وكيف يُعالَج الحدّ الثابت (intercept)، وما الذي يحدث حين تكون المصفوفة سيئة التكييف. وتستشهد سلاسل التوثيق (docstrings) بالأوراق البحثية التي يأتي منها كل اختيار.
ابدأ بـ: sklearn/linear_model/_ridge.py (الحلّال المختار بحسب شكل البيانات)، ثم _coordinate_descent.py من أجل lasso.
على هذا الموقع: التنظيم: ريدج ولاسو, الانحدار الخطي من المبادئ الأولى
- متوسطMIT★ 12 ألف
Spinning Up in Deep RL
Python (PyTorch, TensorFlow 1)
مورد OpenAI التعليمي للتعلم المعزّز العميق: مقدّمة، وقائمة قراءات، وتطبيقات قصيرة للخوارزميات الرئيسية.
لماذا: مقدّمته إلى التعلم المعزّز (RL) من أوضح النصوص القصيرة عن السياسات والعوائد ودوال القيمة، وكل خوارزمية (VPG وPPO وSAC وغيرها) ملف واحد كُتب ليُقرأ جنبًا إلى جنب مع اشتقاقها. المشروع في وضع الصيانة، فتعامل مع الشيفرة على أنها كتاب مدرسي لا مكتبة.
ابدأ بـ: صفحات "Introduction to RL" على الموقع، ثم spinup/algos/pytorch/vpg/vpg.py: مقدِّر تدرّج السياسة، وتقديره للأفضلية (advantage)، وحلقة تدريبه، في ملف واحد.
على هذا الموقع: التعلّم المعزّز وتعلّم Q, عمليات القرار الماركوفية
- مبتدئMIT★ 12.6 ألف
Gymnasium
Python
الواجهة القياسية لبيئات التعلم المعزّز، والخليفة المُصان لـ OpenAI Gym.
لماذا: تتواصل كل خوارزمية تعلم معزّز مع عالمها عبر الاستدعاءين نفسيهما: reset وstep. وتعلّم هذه الواجهة على بيئة صغيرة، وقراءة الطريقة التي تُكتب بها إحدى البيئات، هما أسرع طريق لتشغيل Q-learning الذي تعرضه الدروس على مهمة حقيقية.
ابدأ بـ: gymnasium/envs/toy_text/frozen_lake.py: عملية قرار ماركوفية كاملة، مع احتمالات الانتقال مكتوبة على هيئة جدول.
على هذا الموقع: عمليات القرار الماركوفية, التعلّم المعزّز وتعلّم Q
- متوسطMIT★ 67.5 ألف
تطبيقات مشروحة لأوراق بحثية في التعلم العميق
Python (PyTorch)
تطبيقات قصيرة بـ PyTorch لأكثر من 60 ورقة بحثية، معروضة على موقع ويب مع الشرح بجانب كل سطر.
لماذا: تعرض الأوراق البحثية البنية في فقرة ومعادلة؛ أما هذا المشروع فيُظهر الشيء نفسه في صورة شيفرة والفقرة بجانبها. إنه أسرع طريقة لمقارنة فهمك لورقة بحثية بتطبيق يعمل.
ابدأ بـ: الانتباه متعدد الرؤوس (labml_nn/transformers/mha.py، مشروح على nn.labml.ai/transformers/mha.html): أشكال Q وK وV عند كل سطر.
على هذا الموقع: الانتباه والانتباه الذاتي, معمارية المحوّل
- مبتدئقواعد مسابقة Kaggle
Titanic: Machine Learning from Disaster
Python أو R، في دفاتر Kaggle المجانية
مسابقة Kaggle الدائمة للمبتدئين: تنبّأ بمن نجا انطلاقًا من جدول ركاب صغير، واحصل على تقييم على بيانات محجوبة.
لماذا: هي صغيرة بما يكفي لفهم كل عمود، وواقعية بما يكفي لمواجهة الفخاخ الكلاسيكية: أعمار مفقودة، وفئات تحتاج إلى ترميز، ودرجة تحقق تُجامل نموذجًا ضُبط عليها. ودورة Kaggle المجانية Intro to Machine Learning هي أيسر مدخل.
ابدأ بـ: ابنِ نموذجًا مرجعيًا (baseline) يتنبأ بـ "لم ينجُ" للجميع (وهو صحيح لـ 549 من أصل 891 راكبًا في بيانات التدريب، أي 61.6%): وكل نموذج بعد ذلك عليه أن يتفوّق عليه.
على هذا الموقع: الانحدار اللوجستي والتصنيف, مقارنة المصنّفات، وما تخفيه الدقة, درجةٌ تخسر أمام عدم الفعل
حديثة وتستحق الاهتمام
- متوسطApache-2.0★ 105.7 ألف
Build a Large Language Model (From Scratch)
Python (PyTorch)
شيفرة كتاب Sebastian Raschka: نموذج GPT يُبنى ويُدرَّب مسبقًا ويُضبط ضبطًا دقيقًا خطوة بخطوة، فصلًا بعد فصل.
لماذا: يغطي المسار كاملًا بالترتيب (من النص إلى الرموز، ثم الانتباه، ثم كتلة GPT، ثم التدريب المسبق، ثم تحميل أوزان GPT-2 حقيقية، ثم الضبط الدقيق للتصنيف ولاتباع التعليمات)، وكل فصل دفتر يعمل على حاسوب محمول.
ابدأ بـ: ch02/01_main-chapter-code/ch02.ipynb (التقسيم إلى رموز والتضمينات)، ثم ch03 للانتباه مبنيًّا انطلاقًا من استعلام واحد.
على هذا الموقع: التقطيع إلى وحدات والتضمينات, الانتباه والانتباه الذاتي, معمارية المحوّل, التدريب المسبق والضبط الدقيق
- متقدمMIT★ 58.3 ألف
nanochat
Python (PyTorch)
خط عمل أدنى ومتكامل لتدريب نموذج محادثة: مقسِّم الرموز، والتدريب المسبق، والضبط الدقيق الخاضع للإشراف، والتعلم المعزّز، والتقييم، والمحادثة.
لماذا: يذكر ملف README الخاص به نموذجًا بقدرات GPT-2 (كلّف تدريبه نحو 43,000 دولار في 2019) مقابل نحو 48 دولارًا، أي قرابة ساعتين على عقدة 8xH100 واحدة. لست بحاجة إلى وحدات GPU لتتعلّم منه: إنه خط العمل الحديث كاملًا في قاعدة شيفرة صغيرة ومقروءة. وهو يخلف nanoGPT، الذي يصفه ملف README الخاص به الآن بأنه متقادم (deprecated).
ابدأ بـ: runs/speedrun.sh: خط العمل بأكمله في سكربت واحد، مرحلةً بعد مرحلة، وكل سطر يشير إلى الملف الذي ينفّذها.
على هذا الموقع: التدريب المسبق والضبط الدقيق, معمارية المحوّل
- متقدمMIT★ 31.1 ألف
llm.c
C / CUDA
تدريب GPT-2 بلغتي C وCUDA الخالصتين، دون PyTorch ودون Python.
لماذا: في غياب إطار عمل، تُكتب كل تمريرة أمامية وخلفية يدويًا: layer norm، والانتباه، وتدرّج softmax، وAdamW. إنه الجواب الأكثر واقعية عن السؤال: "ما الذي يحسبه إطار العمل فعلًا؟".
ابدأ بـ: train_gpt2.c، المرجع على CPU (نحو 1,200 سطر): ابحث عن layernorm_forward وlayernorm_backward وقارنهما بالاشتقاق.
على هذا الموقع: الانتشار العكسي والنزول التدرّجي, معمارية المحوّل
- متوسطMIT★ 129.8 ألف
llama.cpp
C / C++
يشغّل نماذج لغة مفتوحة الأوزان محليًا، على CPU أو GPU حاسوب محمول، بأوزان مكمَّمة.
لماذا: إنه الطريقة التي يشغّل بها معظم الناس نموذجًا مفتوحًا على أجهزتهم الخاصة، وهو يجعل التكميم ملموسًا: النموذج نفسه بـ 16 و8 و4 بتات لكل وزن، وما يُحدثه ذلك في الذاكرة والسرعة والإجابات.
ابدأ بـ: docs/build.md لبنائه، ثم شغّل نموذجًا صغيرًا مكمَّمًا وقارن بين مستويين من التكميم على الموجِّه (prompt) نفسه.
على هذا الموقع: التدريب المسبق والضبط الدقيق
- متوسطApache-2.0★ 76.9 ألف
Unsloth
Python (PyTorch)
ضبط دقيق للنماذج المفتوحة بذاكرة GPU أقل بكثير، مع دفاتر جاهزة تعمل على GPU مجاني في Colab.
لماذا: يكون الضبط الدقيق عادةً بعيد المنال من دون GPU كبير. تضبط دفاتره نموذجًا مفتوحًا صغيرًا باستخدام LoRA على T4 مجاني في Colab، مما يحوّل درس الضبط الدقيق إلى شيء يمكنك تشغيله في فترة ما بعد الظهر.
ابدأ بـ: قائمة الدفاتر في unslothai/notebooks: اختر نموذجًا صغيرًا، واقرأ إعدادات LoRA (الرتبة، وأيّ الطبقات) قبل أن تبدأ التدريب.
على هذا الموقع: التدريب المسبق والضبط الدقيق
- متقدمApache-2.0★ 27.8 ألف
LeRobot
Python (PyTorch)
مكتبة Hugging Face لتعلّم سياسات الروبوتات من العروض التوضيحية، مع مجموعات بيانات وسياسات مدرَّبة مسبقًا ومحاكاة.
لماذا: هنا تلتقي أفكار التعلّم في الموقع بنظام مادي: التعلّم بالتقليد (imitation learning) من عروض توضيحية مسجّلة، والتعلم المعزّز، على أذرع روبوتية منخفضة التكلفة وفي المحاكاة، مع مجموعات بيانات مشتركة على Hub.
ابدأ بـ: صفحات البدء في التوثيق، ثم حمّل مجموعة بيانات من Hub وانظر إلى ما يحتويه عرض توضيحي واحد.
على هذا الموقع: التعلّم المعزّز وتعلّم Q