تجهيز بيئة البرمجة وأدوات الذكاء الاصطناعي
في الدرس السابق تعرّفنا على سبب استخدام لغة بايثون في الذكاء الاصطناعي، وكيف تساعدنا مكتباتها في التعامل مع البيانات وبناء النماذج الذكية. لكن قبل أن نبدأ بكتابة البرامج وتدريب النماذج، نحتاج أولًا إلى تجهيز المكان والأدوات التي سنعمل بها.
ما المقصود ببيئة البرمجة؟
بيئة البرمجة Programming Environment هي مجموعة المكونات التي نحتاج إليها لكتابة البرامج وتشغيلها واختبارها والمحافظة عليها.
تساعدنا بيئة البرمجة على:
- كتابة الكود البرمجي.
- تشغيل البرامج ومشاهدة النتائج.
- اختبار الكود واكتشاف الأخطاء.
- تثبيت مكتبات الذكاء الاصطناعي.
- تنظيم ملفات المشروع.
- حفظ التعديلات والعودة إلى الإصدارات السابقة.
مكونات بيئة البرمجة
| المكوّن | وظيفته |
|---|---|
| نظام التشغيل | البيئة الأساسية التي تعمل عليها البرامج، مثل Windows وLinux وmacOS. |
| لغة البرمجة | اللغة التي نستخدمها لكتابة الأوامر، مثل Python. |
| المفسر Interpreter | يقرأ أوامر بايثون وينفذها على الجهاز. |
| المكتبات والحزم | توفر وظائف جاهزة للرياضيات والبيانات وتعلم الآلة. |
| محرر الأكواد أو IDE | المكان الذي نكتب فيه الكود وندير ملفات المشروع. |
| إدارة الإصدارات | تحفظ تاريخ التعديلات على المشروع باستخدام أدوات مثل Git. |
| موارد الجهاز | المعالج والذاكرة وكرت الشاشة ومساحة التخزين. |
الخطوة الأولى: تثبيت لغة بايثون
لغة بايثون هي الأساس الذي سنبني عليه معظم تطبيقاتنا القادمة. وبعد تثبيتها، نحتاج إلى التأكد من أن الجهاز يستطيع تشغيلها بصورة صحيحة.
لفحص إصدار بايثون نفتح موجه الأوامر أو Terminal ونكتب:
وفي بعض الأجهزة نستخدم:
إذا ظهر رقم الإصدار، فهذا يعني أن بايثون مثبّتة وتعمل، مثل:
ما هو مدير الحزم pip؟
لا تأتي بايثون بجميع مكتبات الذكاء الاصطناعي مثبتة مسبقًا. لذلك نستخدم أداة تسمى pip لتنزيل الحزم والمكتبات التي نحتاج إليها.
يمكن تشبيه pip بمتجر للأدوات البرمجية؛ نطلب منه اسم المكتبة فيقوم بتنزيلها وتثبيتها.
للتأكد من وجود pip نكتب:
ولتثبيت مكتبة NumPy:
ويمكن تثبيت عدة مكتبات في أمر واحد:
| المكتبة | دورها في الذكاء الاصطناعي |
|---|---|
| NumPy | العمليات الرياضية والتعامل مع المصفوفات. |
| Pandas | قراءة البيانات وتنظيفها وتنظيمها وتحليلها. |
| Matplotlib | رسم البيانات والنتائج في مخططات بيانية. |
| Scikit-learn | بناء نماذج تعلم الآلة واختبارها وتقييمها. |
| TensorFlow | بناء الشبكات العصبية ونماذج التعلم العميق. |
| PyTorch | بناء وتدريب نماذج التعلم العميق والأبحاث. |
لماذا لا نثبت كل شيء في مكان واحد؟
لنفترض أن لدينا مشروعين:
- المشروع الأول يحتاج إلى إصدار قديم من مكتبة معينة.
- المشروع الثاني يحتاج إلى إصدار أحدث من المكتبة نفسها.
إذا ثبتنا جميع المكتبات في المكان نفسه، فقد يحدث تعارض بين الإصدارات ويتوقف أحد المشروعين عن العمل.
لحل هذه المشكلة نستخدم ما يسمى البيئة الافتراضية Virtual Environment.
ما هي البيئة الافتراضية؟
البيئة الافتراضية هي مساحة مستقلة داخل الجهاز نخصصها لمشروع معين. تحتوي هذه المساحة على مكتبات المشروع وإصداراتها دون أن تؤثر في المشاريع الأخرى.
فوائد البيئة الافتراضية
- عزل مكتبات كل مشروع عن المشاريع الأخرى.
- منع التعارض بين إصدارات الحزم.
- تسهيل نقل المشروع إلى جهاز آخر.
- معرفة المكتبات المطلوبة للمشروع فقط.
- تحسين استقرار المشروع وتنظيمه.
- تسهيل نشر نموذج الذكاء الاصطناعي لاحقًا.
أشهر أدوات إنشاء البيئات الافتراضية
| الأداة | الوصف |
|---|---|
| venv | مدمجة مع Python 3، وهي مناسبة للمبتدئين. |
| virtualenv | أداة إضافية لإنشاء وإدارة البيئات الافتراضية. |
| conda | تدير البيئات والحزم، وتستخدم كثيرًا في تحليل البيانات. |
إنشاء أول بيئة افتراضية
ننشئ أولًا مجلدًا للمشروع، ثم نفتح موجه الأوامر داخله ونكتب:
معنى أجزاء الأمر:
- python يشغّل لغة بايثون.
- -m venv يطلب تشغيل أداة إنشاء البيئات.
- ai_env هو الاسم الذي اخترناه للبيئة.
تفعيل البيئة في Windows
تفعيل البيئة في Linux أو macOS
عند نجاح التفعيل يظهر اسم البيئة في بداية السطر:
ولإيقاف البيئة الافتراضية نكتب:
ما هي بيئة التطوير المتكاملة IDE؟
يمكن كتابة كود بايثون باستخدام محرر نصوص عادي، لكن ذلك يصبح متعبًا عند العمل على مشروع كبير. لذلك نستخدم برامج تسمى:
بيئات التطوير المتكاملة Integrated Development Environments
تجمع هذه البرامج أدوات كتابة الكود وتشغيله واختباره وإدارة الملفات في مكان واحد.
أمثلة على بيئات التطوير
- Visual Studio Code.
- PyCharm.
ماذا تقدم لنا بيئة التطوير؟
الإكمال التلقائي
تقترح الأداة أسماء الدوال والمتغيرات أثناء الكتابة، مما يسرع العمل ويقلل الأخطاء.
اكتشاف الأخطاء Debugging
تسمح بتشغيل البرنامج خطوة بخطوة ومراقبة قيم المتغيرات لمعرفة السطر الذي تسبب في المشكلة.
إدارة ملفات المشروع
تعرض الملفات والمجلدات بطريقة مرتبة بدلًا من توزيعها عشوائيًا على الجهاز.
تشغيل الأوامر
تحتوي غالبًا على Terminal مدمج لتثبيت المكتبات وتشغيل ملفات بايثون.
التكامل مع Git
تساعد على متابعة التعديلات وحفظ الإصدارات دون مغادرة محرر الأكواد.
Visual Studio Code أم PyCharm؟
| المقارنة | Visual Studio Code | PyCharm |
|---|---|---|
| الحجم | خفيف نسبيًا. | أكبر حجمًا. |
| الاستخدام | يدعم لغات برمجة كثيرة. | متخصص بدرجة أكبر في Python. |
| الإضافات | يعتمد على Extensions. | يحتوي على أدوات Python مدمجة. |
| المبتدئ | مناسب بعد تثبيت إضافة Python. | مناسب لمن يريد بيئة بايثون متكاملة. |
| الذكاء الاصطناعي | ممتاز. | ممتاز. |
ما هو Jupyter Notebook؟
عند تعلم الذكاء الاصطناعي لا نكتب دائمًا برنامجًا كاملًا ثم نشغله دفعة واحدة. أحيانًا نريد قراءة البيانات، ثم عرض جزء منها، ثم تنظيفها، ثم رسمها، وبعد ذلك تجربة نموذج عليها.
لهذا نستخدم Jupyter Notebook، وهو بيئة تفاعلية تعمل عادة من خلال المتصفح، وتقسم الكود إلى وحدات صغيرة تسمى خلايا Cells.
يمكن تشغيل كل خلية بصورة مستقلة ومشاهدة النتيجة تحتها مباشرة:
ستظهر النتيجة:
لماذا يناسب Jupyter الذكاء الاصطناعي؟
- تشغيل الكود خطوة بخطوة.
- عرض النتائج مباشرة.
- الجمع بين الشرح والكود والرسوم.
- تجربة قيم مختلفة للنموذج بسرعة.
- تحليل البيانات وعرض المخططات.
- التعليم والأبحاث وبناء النماذج الأولية.
ما هو Google Colab؟
يقدم Google Colab تجربة شبيهة بـJupyter Notebook، لكنه يعمل داخل المتصفح باستخدام بيئة سحابية.
هذا يعني أن الكود لا يعتمد بالكامل على جهازك، بل يتم تنفيذه على خوادم سحابية.
لماذا نستخدم Colab؟
- البدء في كتابة بايثون دون إعداد محلي كامل.
- تشغيل الأكواد مباشرة من المتصفح.
- مشاركة الملف مع الطلاب أو أعضاء الفريق.
- تجربة مكتبات الذكاء الاصطناعي بسرعة.
- الاستفادة من الموارد السحابية المتاحة.
- استخدامه في التعليم والتجارب والأبحاث.
الفرق بين Jupyter وGoogle Colab
| المقارنة | Jupyter Notebook | Google Colab |
|---|---|---|
| مكان التشغيل | غالبًا على جهازك. | على بيئة سحابية. |
| التثبيت | يحتاج إلى إعداد محلي. | يعمل من المتصفح. |
| حفظ الملفات | تُحفظ الملفات محليًا. | يمكن حفظها سحابيًا. |
| المشاركة | تحتاج إلى إرسال الملف أو رفعه. | المشاركة أسهل. |
| الموارد | يعتمد على مواصفات جهازك. | يعتمد على الموارد التي توفرها الخدمة. |
| الإنترنت | يمكن تشغيله دون إنترنت بعد تثبيته. | يحتاج عادة إلى اتصال بالإنترنت. |
المنصات السحابية والذكاء الاصطناعي
بعض نماذج الذكاء الاصطناعي تحتاج إلى موارد أكبر من الجهاز الشخصي، خصوصًا عند تدريب الشبكات العصبية على بيانات كبيرة.
بدلًا من شراء أجهزة مرتفعة التكلفة، يمكن استخدام منصات سحابية توفر:
- معالجات قوية.
- ذاكرة أكبر.
- وحدات معالجة رسومية GPU.
- مساحات تخزين سحابية.
- أدوات لتدريب النماذج ونشرها.
- إمكانية زيادة الموارد أو تقليلها عند الحاجة.
فوائد الحوسبة السحابية
- الوصول إلى موارد قوية: تشغيل تجارب لا يستطيع الجهاز الشخصي تنفيذها بسهولة.
- المرونة والتوسع: زيادة الموارد عندما يكبر المشروع وتقليلها بعد انتهاء التدريب.
- تقليل التكلفة الأولية: عدم الحاجة إلى شراء خادم قوي قبل تحديد احتياجات المشروع.
لماذا نحتاج إلى نظام إدارة الإصدارات؟
أثناء بناء نموذج ذكاء اصطناعي قد نغير:
- طريقة تنظيف البيانات.
- الخوارزمية المستخدمة.
- إعدادات النموذج.
- طريقة حساب الدقة.
- ملفات التدريب.
- أجزاء مختلفة من الكود.
بعد عدة تعديلات قد نكتشف أن النسخة القديمة من النموذج كانت أفضل. لذلك نحتاج إلى نظام يسجل تاريخ التغييرات ويسمح لنا بالعودة إلى أي نسخة سابقة.
يسمى هذا النظام Version Control System.
ما هو Git؟
Git هو نظام لإدارة وتتبع التعديلات على ملفات المشروع. ويمكن تشبيهه بنقاط الحفظ داخل الألعاب.
بدلًا من إنشاء ملفات بأسماء غير منظمة مثل:
نستخدم Git لحفظ نسخ منظمة، ونكتب وصفًا واضحًا لكل تعديل.
أهم أوامر Git
| الأمر | وظيفته |
|---|---|
| git init | إنشاء مستودع Git جديد داخل المشروع. |
| git clone | تنزيل نسخة من مستودع موجود. |
| git add | تجهيز الملفات ليتم حفظها. |
| git commit | حفظ التغييرات مع رسالة توضيحية. |
| git push | رفع التغييرات إلى مستودع بعيد. |
| git status | معرفة حالة الملفات والتعديلات الحالية. |
مثال مبسط
نبدأ بإنشاء مستودع داخل المشروع:
ثم نجهز جميع الملفات للحفظ:
النقطة تعني جميع الملفات الموجودة داخل المجلد الحالي.
بعد ذلك نحفظ النسخة مع وصف:
ما الفرق بين Git وGitHub؟
| Git | GitHub |
|---|---|
| نظام لتتبع التعديلات. | منصة تستضيف مستودعات Git. |
| يعمل على جهازك. | تعمل عبر الإنترنت. |
| يحفظ تاريخ المشروع. | تسهل مشاركة المشروع. |
| يمكن استخدامه دون GitHub. | تعتمد على مستودعات Git. |
| أداة لإدارة الإصدارات. | منصة للتعاون وإدارة المشاريع. |
ماذا يقدم GitHub؟
- استضافة ملفات المشروع.
- مشاركة المشروع مع أعضاء الفريق.
- مراجعة الأكواد باستخدام Pull Requests.
- تسجيل المشكلات والمهام باستخدام Issues.
- توثيق المشروع داخل ملف README.
- حفظ نسخة بعيدة من المشروع.
- عرض المشاريع البرمجية في ملفك المهني.
تنظيم مشروع الذكاء الاصطناعي
المشروع المنظم أسهل في الفهم والتطوير من مشروع يحتوي على جميع الملفات بصورة عشوائية داخل مجلد واحد.
يمكن تنظيم مشروع بسيط بالشكل التالي:
| العنصر | وظيفته |
|---|---|
| data | حفظ ملفات البيانات. |
| notebooks | حفظ ملفات Jupyter والتجارب. |
| src | حفظ الكود الأساسي للمشروع. |
| models | حفظ النماذج المدربة. |
| requirements.txt | تسجيل المكتبات والإصدارات المطلوبة. |
| README.md | شرح فكرة المشروع وطريقة تشغيله. |
| main.py | ملف التشغيل الأساسي للبرنامج. |
تسجيل مكتبات المشروع
حتى يعمل المشروع على جهاز آخر، نحتاج إلى تسجيل أسماء المكتبات وإصداراتها.
نستخدم الأمر:
ينشئ هذا الأمر ملفًا باسم requirements.txt يحتوي على المكتبات المثبتة، مثل:
وعند نقل المشروع إلى جهاز آخر نثبت المكتبات بالأمر:
قابلية إعادة التجربة
من أهم مبادئ تطوير الذكاء الاصطناعي أن يتمكن شخص آخر من إعادة التجربة والحصول على النتائج نفسها أو نتائج قريبة منها.
لذلك نحتاج إلى توثيق:
- مصدر البيانات.
- خطوات تنظيف البيانات.
- إصدارات المكتبات.
- الخوارزمية المستخدمة.
- إعدادات النموذج.
- طريقة تقسيم بيانات التدريب والاختبار.
- طريقة تقييم النتائج.
- نسخة الكود التي أنتجت النموذج.
أفضل الممارسات في بيئة التطوير
- أنشئ مجلدًا مستقلًا لكل مشروع.
- استخدم بيئة افتراضية لكل مشروع.
- لا تثبت مكتبات لا يحتاج إليها المشروع.
- استخدم أسماء واضحة للملفات والمتغيرات.
- افصل البيانات والكود والنماذج في مجلدات مختلفة.
- اكتب تعليقات مفيدة عند الحاجة.
- أنشئ ملف README يشرح فكرة المشروع.
- سجل المكتبات داخل ملف requirements.txt.
- استخدم Git منذ بداية المشروع.
- احفظ التعديلات برسائل واضحة.
- لا ترفع كلمات المرور أو مفاتيح الخدمات إلى GitHub.
- وثّق إعدادات النموذج حتى يمكن إعادة التجربة.
ملخص الدرس
بيئة البرمجة هي مجموعة الأدوات التي نستخدمها لكتابة البرامج وتشغيلها واختبارها وتنظيمها. وتتكون من نظام التشغيل، ولغة بايثون، والمكتبات، ومحرر الأكواد، وأدوات إدارة المشروع.
تعرفنا على دور pip في تثبيت الحزم، وعلى أهمية البيئات الافتراضية في عزل مكتبات كل مشروع. كما تعرفنا على Visual Studio Code وPyCharm وJupyter Notebook وGoogle Colab.
وأخيرًا تعرفنا على Git وGitHub، وكيف يساعدان على حفظ تاريخ المشروع والرجوع إلى النسخ السابقة والتعاون مع الفريق وتنظيم مشاريع الذكاء الاصطناعي بطريقة احترافية.
الذكاء الاصطناعي لا يبدأ من الخوارزمية مباشرة، بل يبدأ من بيئة عمل مرتبة تجعل الكود قابلًا للتطوير والنتائج قابلة للتكرار.
