0Pricing
Learn AI with Python · درس

قابلية إعادة الإنتاج: البذور والإعدادات والبيئات

استخدام random.seed() وnp.random.seed() وملفات إعداد YAML وتثبيت البيئة باستخدام pip freeze.

قابلية إعادة الإنتاج: البذور والإعدادات والبيئات درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

لماذا نحتاج إلى قابلية إعادة الإنتاج؟

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

تجعل ثلاثة أسس عمل الذكاء الاصطناعي قابلًا لإعادة الإنتاج: البذور العشوائية الثابتة، والإعدادات المنفصلة، والبيئات المثبتة الإصدارات.

مصادر العشوائية

تتسلل العشوائية من أماكن عديدة: خلط البيانات، وتقسيمات التدريب/الاختبار، وتهيئة الأوزان، والإسقاط، وتعزيز البيانات. وقد يستخدم كل منها مولّدًا عشوائيًا مختلفًا.

لإعادة إنتاج عملية تشغيل، يجب تحديد بذرة لكل مولّد يلامسه الكود.

تحديد بذور Python وNumPy

ثبّت مولّدات المكتبة القياسية وNumPy باستخدام بذرة واحدة تختارها (تُعد 42 قيمة شائعة الاستخدام).

import random
import numpy as np

random.seed(42)
np.random.seed(42)

تهيئة أطر العمل

لأطر تعلّم الآلة مولدات خاصة بها. اضبط بذورها أيضًا، ومرّر البذرة إلى الدوال التي تقبل random_state.

import numpy as np
from sklearn.model_selection import train_test_split

X_train, X_test = train_test_split(X, test_size=0.2, random_state=42)
# torch.manual_seed(42) / tf.random.set_seed(42) for deep learning

دالة مساعدة باسم set_seed

اجمع كل عمليات تهيئة البذور في دالة واحدة، واستدعها في بداية كل برنامج نصي، حتى لا تنسى أي مولّد.

import random, os
import numpy as np

def set_seed(seed=42):
    random.seed(seed)
    np.random.seed(seed)
    os.environ["PYTHONHASHSEED"] = str(seed)

set_seed(42)

المعلمات الفائقة المضمّنة في الشيفرة فخّ

إن نثرت 0.01 و200 و0.2 في أنحاء الشيفرة، فسيصعب تتبّع عمليات التشغيل وتغييرها. هل كان معدل التعلّم 0.01 أم 0.001 في عملية التشغيل التي حققت أفضل نتيجة؟

الحل: ضع جميع المعلمات الفائقة في ملف إعدادات، لا في الشيفرة.

ملفات إعداد YAML

يُعد YAML تنسيقًا مقروءًا للبشر ومثاليًا لملفات الإعدادات. يلتقط ملف واحد كل إعدادات عملية التشغيل.

# config.yaml
seed: 42
model:
  name: random_forest
  n_estimators: 200
  max_depth: 8
training:
  test_size: 0.2
data:
  path: data/processed/train.csv

قراءة YAML باستخدام PyYAML

حمّل الإعدادات في بداية البرنامج النصي باستخدام PyYAML. الآن تقرأ الشيفرة القيم من cfg بدلًا من تضمينها مباشرةً.

import yaml

with open("config.yaml") as f:
    cfg = yaml.safe_load(f)

print(cfg["model"]["n_estimators"])   # 200
set_seed(cfg["seed"])

تمرير الإعدادات إلى الشيفرة

تتلقى الدوال الإعدادات، أو قيمها، كوسائط. ولتشغيل تجربة جديدة، تغيّر ملف YAML لا برنامج Python.

from sklearn.ensemble import RandomForestClassifier

m = cfg["model"]
model = RandomForestClassifier(
    n_estimators=m["n_estimators"],
    max_depth=m["max_depth"],
    random_state=cfg["seed"],
)

تثبيت بيئة التشغيل

تنتج إصدارات المكتبات المختلفة نتائج مختلفة. ثبّت الإصدارات الدقيقة حتى يثبّت الآخرون، وكذلك أنت مستقبلًا، حزمة المكتبات نفسها.

# requirements.txt with pinned versions
pandas==2.2.0
scikit-learn==1.4.0
numpy==1.26.4

# generate it with:
# pip freeze > requirements.txt

البيئات الافتراضية

اعزل كل مشروع حتى لا تتعارض إصداراته المثبّتة مع إصدارات المشاريع الأخرى. أنشئ بيئة افتراضية وفعّلها، ثم ثبّت الحزم من الملف الذي يحدد الإصدارات.

python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt

تحقق سريع: المعلمات الفائقة

تريد تجربة عشر تركيبات مختلفة من المعلمات الفائقة مع الحفاظ على قابلية إعادة إنتاج كل عملية تشغيل وتتبعها.

مراجعة: قابلية إعادة الإنتاج

تعلّمت الركائز الثلاث للذكاء الاصطناعي القابل لإعادة الإنتاج:

  • البذور: random.seed(42) وnp.random.seed(42) وبذور أطر العمل وrandom_state
  • الإعدادات: جميع المعلمات الفائقة في config.yaml، وتحميلها باستخدام PyYAML
  • البيئات: ملف requirements.txt بإصدارات مثبتة داخل بيئة افتراضية

غيّر الإعدادات، لا الشيفرة. التالي: أفضل ممارسات دفاتر Jupyter.

الأسئلة الشائعة

هل درس «قابلية إعادة الإنتاج: البذور والإعدادات والبيئات» مجاني؟

نعم — نص درس «قابلية إعادة الإنتاج: البذور والإعدادات والبيئات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «قابلية إعادة الإنتاج: البذور والإعدادات والبيئات»؟

استخدام random.seed() وnp.random.seed() وملفات إعداد YAML وتثبيت البيئة باستخدام pip freeze. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «قابلية إعادة الإنتاج: البذور والإعدادات والبيئات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. هيكل أدلة مشاريع الذكاء الاصطناعي الاحترافية
  2. Git لمشاريع الذكاء الاصطناعي
  3. قابلية إعادة الإنتاج: البذور والإعدادات والبيئات
  4. أفضل ممارسات دفاتر Jupyter
← العودة إلى Learn AI with Python