تكاملات منصة التعلم الآلي #1: Weights & Biases

Built for Speed: ~10ms Latency, Even Under Load
Blazingly fast way to build, track and deploy your models!
- Handles 350+ RPS on just 1 vCPU — no tuning needed
- Production-ready with full enterprise support
تتبع التجارب هو جانب حاسم في تطوير تعلم الآلة، مما يمكّن الممارسين من إدارة وتتبع تقدم تجاربهم بكفاءة. يتضمن تتبع التجارب تسجيل ومراقبة عوامل مختلفة، مثل أداء النموذج، والمعاملات الفائقة (hyperparameters)، وبيانات التدريب، لاكتساب رؤى حول أداء نموذج تعلم الآلة.
التحديات التي تواجه إدارة التجارب
يمكن أن تكون إدارة التجارب وتتبع النتائج مهمة صعبة لممارسي تعلم الآلة بسبب تعقيد النماذج، والكميات الكبيرة من البيانات المتضمنة، وتنوع الأدوات والأطر المستخدمة في تطوير تعلم الآلة. فيما يلي بعض التحديات الرئيسية التي يواجهها الممارسون في إدارة التجارب وتتبع النتائج:
- قابلية التكرار: يعد تكرار التجارب أمرًا ضروريًا للتحقق من النتائج وضمان أداء النماذج بشكل جيد في سيناريوهات العالم الحقيقي. ومع ذلك، قد يكون تكرار التجارب صعبًا، خاصة عند التعامل مع نماذج معقدة، وأطر عمل متعددة، وبيئات حوسبة مختلفة.
- قابلية التوسع: غالبًا ما يعمل ممارسو تعلم الآلة مع مجموعات بيانات كبيرة، وعلى هذا النحو، يمكن أن يكون تدريب النماذج عملية تستغرق وقتًا طويلاً وتتطلب قدرًا كبيرًا من قوة الحوسبة. تتطلب إدارة التجارب وتتبع النتائج على نطاق واسع أدوات وبنية تحتية يمكنها التعامل مع كميات كبيرة من البيانات والعمليات الحسابية.
- التعاون: التعاون ضروري في تطوير تعلم الآلة، ولكن إدارة التجارب وتتبع النتائج عبر أعضاء الفريق المتعددين يمكن أن يكون صعبًا. يتطلب ذلك بنية تحتية قوية لمشاركة البيانات والتعليمات البرمجية ونتائج التجارب وضمان وصول الجميع إلى نفس الموارد.
- إدارة البيانات: تعتمد نماذج تعلم الآلة بشكل كبير على البيانات، وإدارة البيانات بفعالية أمر بالغ الأهمية لنجاح النموذج. ومع ذلك، تتضمن إدارة البيانات تحديات مختلفة، مثل تنظيف البيانات، وتصنيف البيانات، وتحديد إصدارات البيانات، والتي يمكن أن تستغرق وقتًا طويلاً وتكون معقدة.
- تحسين المعاملات الفائقة: يمكن أن يكون العثور على أفضل المعاملات الفائقة لنموذج ما عملية صعبة ومتكررة تتضمن إجراء تجارب متعددة بمعاملات فائقة مختلفة. يمكن أن تستغرق إدارة هذه التجارب وتتبع النتائج وقتًا طويلاً وتكون معقدة.
استكشاف ميزات Weights & Biases
Weights & Biases (W&B) هي منصة مصممة لمساعدة ممارسي تعلم الآلة على إدارة وتتبع تجاربهم بفعالية. توفر مجموعة من الأدوات لتتبع التجارب، والتصور، والتعاون، مما يسهل على الممارسين تطوير نماذج تعلم آلة قوية وقابلة للتوسع.
الميزات والفوائد الرئيسية لمنصة W&B هي:
- تتبع التجارب: يتيح W&B للمستخدمين تتبع تجاربهم عن طريق التسجيل التلقائي للمعاملات الفائقة للنموذج (hyperparameters)، والمقاييس (metrics)، والمخرجات (output artifacts). وهذا يتيح للممارسين متابعة تجاربهم ومقارنة النماذج والمعاملات الفائقة المختلفة بسهولة.
- التصورات المرئية: يوفر W&B مجموعة من أدوات التصور المرئي التي تتيح للمستخدمين تصور تجاربهم ونتائجهم. وتشمل هذه التصورات ثلاثية الأبعاد، ومصفوفات الارتباك (confusion matrices)، ومخططات التشتت (scatter plots)، وغيرها. يساعد هذا الممارسين على فهم بياناتهم بشكل أفضل وتحديد الأنماط والاتجاهات في نتائج التجارب.
- التعاون: يسهل W&B التعاون مع أعضاء الفريق من خلال توفير ميزات لمشاركة التجارب والبيانات والنتائج. كما يوفر التحكم في الإصدار (version control) للتعليمات البرمجية والبيانات، مما يضمن أن الجميع يعملون بنفس الموارد.
- التكامل: يمكن دمج W&B بسهولة مع مجموعة واسعة من أطر عمل التعلم الآلي، بما في ذلك TensorFlow و PyTorch و Keras و Scikit-learn. يتيح هذا للممارسين استخدام W&B مع سير عملهم وأطرهم الحالية، دون الحاجة إلى أي تغييرات كبيرة في عملية تطويرهم.
- التنظيم: يوفر W&B ميزات لتنظيم التجارب، مثل المشاريع (projects) والجولات (runs) والعلامات (tags). وهذا يسهل إدارة وتتبع التجارب عبر العديد من أعضاء الفريق والمشاريع.
دليل خطوة بخطوة: إعداد Weights & Biases بسهولة
يتضمن إعداد W&B لتتبع التجارب عدة خطوات:
- التسجيل للحصول على حساب W&B: الخطوة الأولى هي التسجيل للحصول على حساب مجاني على موقع W&B. يمكن القيام بذلك عن طريق زيارة الموقع واتباع عملية التسجيل.
- تثبيت مكتبة W&B: بعد التسجيل للحصول على حساب، الخطوة التالية هي تثبيت مكتبة W&B في بيئة التطوير. يمكن تثبيت مكتبة W&B باستخدام pip أو conda، اعتمادًا على تفضيل المستخدم وبيئة التطوير.
- تهيئة W&B: بمجرد تثبيت المكتبة، يحتاج المستخدم إلى تهيئة W&B في التعليمات البرمجية عن طريق استدعاء الدالة
wandb.init(). تقوم هذه الدالة بتهيئة مكتبة W&B وإعداد جولة جديدة (run). - تسجيل المقاييس: يمكن للمستخدم تسجيل مقاييس مثل الخسارة (loss) والدقة (accuracy) أثناء التدريب عن طريق استدعاء الدالة
wandb.log(). تأخذ هذه الدالة قاموسًا من المقاييس كمدخل وتقوم بتسجيلها في لوحة تحكم W&B. - تسجيل المعاملات الفائقة: يمكن للمستخدم أيضًا تسجيل المعاملات الفائقة مثل معدل التعلم (learning rate) وحجم الدفعة (batch size) عن طريق استدعاء الدالة
wandb.configالدالة. تأخذ هذه الدالة قاموسًا من المعاملات الفائقة (hyperparameters) كمدخل وتقوم بتسجيلها في لوحة تحكم W&B. - تسجيل المرئيات: أخيرًا، يمكن للمستخدم تسجيل المرئيات مثل الصور والرسوم البيانية عن طريق استدعاء الدالة
wandb.log()مع بيانات التصور المناسبة. يوفر W&B مجموعة واسعة من أدوات التصور، بما في ذلك التصورات ثلاثية الأبعاد، ومصفوفات الارتباك (confusion matrices)، ومخططات التشتت (scatter plots)، وغيرها.
مثال:
إليك مثال على كيفية تسجيل المقاييس والنماذج والمعاملات الفائقة والمرئيات باستخدام W&B:
import wandb
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
# الخطوة 1: تهيئة W&B
wandb.init(project="my-project")
# الخطوة 2: تسجيل المعاملات الفائقة
config = {
"learning_rate": 0.001,
"batch_size": 32,
"epochs": 10
}
wandb.config.update(config)
# الخطوة 3: تدريب النموذج وتسجيل المقاييس
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(10, activation='relu', input_shape=(10,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer=tf.keras.optimizers.Adam(config['learning_rate']),
loss=tf.keras.losses.MeanSquaredError(),
metrics=[tf.keras.metrics.MeanAbsoluteError()])
for epoch in range(config['epochs']):
# ... تدريب النموذج ...
history = model.fit(x_train, y_train, batch_size=config['batch_size'])
loss = history.history['loss'][-1]
mae = history.history['mean_absolute_error'][-1]
wandb.log({"epoch": epoch, "loss": loss, "mae": mae})
# الخطوة 4: تسجيل المرئيات والنموذج
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
wandb.log({"my_plot": wandb.Image(fig)})
wandb.save('my_model.h5')
# الخطوة 5: إنهاء التشغيل
wandb.finish()
c
تكامل سلس: نهج TrueFoundry مع Weights & Biases
تتكامل TrueFoundry بسلاسة مع سجل نماذج Weights & Biases للسماح لك بنشر النماذج المسجلة في Weights & Biases إلى مجموعة Kubernetes الخاصة بك باستخدام TrueFoundry.
📌
بصرف النظر عن استخدام Weights & Biases لإدارة النماذج وتتبع التجارب، يمكنك أيضًا استخدام MLFoundy لتتبع التجارب من Truefoundry.

📌
يمكنك أيضًا متابعة الكود أدناه عبر دفتر ملاحظات Colab التالي:
دفتر ملاحظات Colab
الخطوة 1 - التثبيت والإعداد:
- تثبيت wandb
pip install wandb -qU
- تسجيل الدخول إلى حسابك في W&B
import wandb
wandb.login()
- تثبيت servicefoundry
pip install -U "servicefoundry"
- تسجيل الدخول إلى Truefoundry
تسجيل الدخول sfy
الخطوة 2 - تدريب النموذج وتسجيله:
سنستخدم أولاً wandb.init() لتهيئة المشروع
ثم سنقوم بتدريب نموذج التعلم الآلي الخاص بنا وحفظه كملف joblib
ثم سنحفظ ملف joblib الخاص بنا في wandb عبر wandb.save()
import wandb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
import joblib
# تهيئة W&B
wandb.init(project="iris-logistic-regression")
# تحميل البيانات ومعالجتها مسبقًا
X, y = load_iris(as_frame=True, return_X_y=True)
X = X.rename(columns={
"sepal length (cm)": "sepal_length",
app.py ملف يحتوي على كود تطبيقنا، و requirements.txt ملف يحتوي على تبعياتنا.
.
├── app.py
├── deploy.py
└── requirements.txt
c
- app.py:
هنا تحتاج إلى تمرير الوسيط التالي فيwandb.restore():<name_of_saved_file>و"username/project/run_id"
مثال:wandb.restore("model.joblib", "adityajha-tfy/iris-logistic-regression/00r5xvyv")
import os
import wandb
import joblib
import pandas as pd
from fastapi import FastAPI
wandb.login(key=os.environ["WANDB_API_KEY"])
# استرجاع النموذج من W&B
model_joblib = wandb.restore(
'model.joblib',
run_path="adityajha-tfy/iris-logistic-regression/00r5xvyy",
)
model = joblib.load(model_joblib.name)
# تحميل النموذج
app = FastAPI(root_path=os.getenv("TFY_SERVICE_ROOT_PATH"))
@app.post("/predict")
def predict(
sepal_length: float, sepal_width: float, petal_length: float, petal_width: float
):
data = dict(
sepal_length=sepal_length,
sepal_width=sepal_width,
petal_length=petal_length,
petal_width=petal_width,
)
prediction = int(model.predict(pd.DataFrame([data]))[0])
return {"prediction": prediction}
- requirements.txt:
fastapi
joblib
numpy
pandas
scikit-learn
uvicorn
wandb
الخطوة 4 - استخدم حزمة SDK الخاصة بـ truefoundry للغة بايثون وقم بتهيئة النشر
- deploy.py:
import argparse
import logging
from servicefoundry import Build, PythonBuild, Service, Resources, Port
# إعداد المسجل
logging.basicConfig(level=logging.INFO)
# إعداد محلل الوسائط
parser = argparse.ArgumentParser()
parser.add_argument("--workspace_fqn", required=True, type=str)
parser.add_argument("--wandb_api_key", required=True, type=str)
args = parser.parse_args()
service = Service(
name="fastapi",
image=Build(
build_spec=PythonBuild(
command="uvicorn app:app --port 8000 --host 0.0.0.0",
requirements_path="requirements.txt",
)
),
ports=[
Port(
port=8000,
host="ml-deploy-aditya-ws-8000.demo.truefoundry.com",
)
],
resources=Resources(
cpu_request=0.25,
حد_أقصى_للمعالج=0.5,
طلب_الذاكرة=200,
حد_أقصى_للذاكرة=400,
طلب_التخزين_المؤقت=200,
حد_أقصى_للتخزين_المؤقت=400,
),
البيئة={
"WANDB_API_KEY": args.wandb_api_key
}
)
service.deploy(workspace_fqn=args.workspace_fqn)
الخطوة 5 - انشر خدمتك عبر Truefoundry
قم بتشغيل الأمر التالي وأدخل
- اسم مساحة العمل المؤهل بالكامل (FQN): الذي يمكنك العثور عليه في لوحة التحكم
- مفتاح API الخاص بـ Wandb
python deploy.py --workspace_fqn "<Your Workspace FQN>" --wandb_api_key "<Your Wandb API Key>"
وهكذا!!! في السجلات، يمكنك العثور على لوحة تحكم خدمتك المنشورة. وبعد ذلك، في الزاوية العلوية اليمنى، ستجد نقطة نهاية تطبيقاتك المنشورة.

TrueFoundry هي منصة كخدمة (PaaS) لنشر تعلم الآلة (ML) فوق Kubernetes لتسريع سير عمل المطورين مع منحهم مرونة كاملة في اختبار ونشر النماذج، وضمان الأمان والتحكم الكامل لفريق البنية التحتية. من خلال منصتنا، نمكّن فرق تعلم الآلة من نشر ومراقبة نماذج في 15 دقيقة بموثوقية 100% وقابلية للتوسع، والقدرة على التراجع في ثوانٍ - مما يمكنهم من توفير التكلفة وإطلاق النماذج إلى الإنتاج بشكل أسرع، وبالتالي تحقيق قيمة تجارية حقيقية.
TrueFoundry AI Gateway delivers ~3–4 ms latency, handles 350+ RPS on 1 vCPU, scales horizontally with ease, and is production-ready, while LiteLLM suffers from high latency, struggles beyond moderate RPS, lacks built-in scaling, and is best for light or prototype workloads.
The fastest way to build, govern and scale your AI




















.png)
.webp)










.webp)






