Web Analytics

pytorch-accelerated

⭐ 193 stars Arabic by Chris-hughes10

🌐 اللغة

pytorch-accelerated

pytorch-accelerated هي مكتبة خفيفة الوزن مصممة لتسريع عملية تدريب نماذج بايتورتش من خلال توفير حلقة تدريبية بسيطة ولكن قابلة للتوسعة - مضمنة في كائن واحد يسمى Trainer وهو مرن بما يكفي للتعامل مع معظم حالات الاستخدام، وقادر على استخدام خيارات أجهزة مختلفة دون الحاجة لتغيير الكود. تقدم pytorch-accelerated مجموعة ميزات مبسطة، وتضع تركيزًا كبيرًا على البساطة والشفافية،

لتمكين المستخدمين من فهم ما يحدث بالضبط خلف الكواليس، ولكن دون الحاجة إلى كتابة وصيانة الأكواد المتكررة بأنفسهم! الميزات الرئيسية هي:

يمكن تخصيص السلوك باستخدام الوراثة و/أو الاستدعاءات.
  • تتعامل مع وضع الجهاز، الدقة المختلطة، التكامل مع DeepSpeed، التدريب متعدد وحدات معالجة الرسومات والتدريب الموزع دون الحاجة إلى تغيير الكود.
  • تستخدم مكونات PyTorch الأصلية فقط، دون أي تعديلات أو مغلفات إضافية، وتتوافق بسهولة
مع المكتبات الشهيرة الأخرى مثل
timm، transformers و torchmetrics. تم بذل جهد كبير لضمان أن كل جزء من المكتبة - سواء المكونات الداخلية أو الخارجية - واضح وبسيط قدر الإمكان، مما يجعل من السهل تخصيصها، وتصحيحها وفهم ما يحدث بالضبط خلف الكواليس في كل خطوة؛ معظم سلوك المدرب موجود في فئة واحدة فقط! وبروح بايثون، لا شيء مخفي وكل شيء متاح.

تم بناء pytorch-accelerated بفخر وشفافية على Hugging Face Accelerate، والتي تتولى نقل البيانات بين الأجهزة وإطلاق تكوينات التدريب. عند تخصيص المدرب أو بدء التدريب، ننصح المستخدمين بالرجوع إلى وثائق Accelerate لفهم جميع الخيارات المتاحة؛ يوفر Accelerate وظائف مناسبة لعمليات مثل جمع التنسورات وقص التدرجات، ويمكن رؤية استخدام ذلك في مجلد الأمثلة الخاص بـ pytorch-accelerated!

للتعرف أكثر على دوافع إنشاء هذه المكتبة، بالإضافة إلى دليل مفصل للبدء، راجع هذه التدوينة.

التثبيت

يمكن تثبيت pytorch-accelerated باستخدام pip عبر الأمر التالي:

pip install pytorch-accelerated
لجعل الحزمة أنحف قدر الإمكان، لم يتم تضمين الحزم المطلوبة لتشغيل الأمثلة بشكل افتراضي. لإضافة هذه الحزم، يمكنك استخدام الأمر التالي:

pip install pytorch-accelerated[examples]

البدء السريع

لبدء الاستخدام، قم ببساطة باستيراد واستخدام Trainer من pytorch-accelerated، كما هو موضح في المقتطف التالي، ثم ابدأ عملية التدريب باستخدام أداة accelerate CLI الموضحة أدناه.

# examples/core/train_mnist.py
import os

from torch import nn, optim from torch.utils.data import random_split from torchvision import transforms from torchvision.datasets import MNIST

from pytorch_accelerated import Trainer

class MNISTModel(nn.Module): def __init__(self): super().__init__() self.main = nn.Sequential( nn.Linear(in_features=784, out_features=128), nn.ReLU(), nn.Linear(in_features=128, out_features=64), nn.ReLU(), nn.Linear(in_features=64, out_features=10), )

def forward(self, input): return self.main(input.view(input.shape[0], -1))

def main(): dataset = MNIST(os.getcwd(), download=True, transform=transforms.ToTensor()) train_dataset, validation_dataset, test_dataset = random_split(dataset, [50000, 5000, 5000]) model = MNISTModel() optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9) loss_func = nn.CrossEntropyLoss()

trainer = Trainer( model, loss_func=loss_func, optimizer=optimizer, )

trainer.train( train_dataset=train_dataset, eval_dataset=validation_dataset, num_epochs=8, per_device_batch_size=32, )

trainer.evaluate( dataset=test_dataset, per_device_batch_size=64, ) if __name__ == "__main__": main()

لإطلاق التدريب باستخدام واجهة الأوامر accelerate ، على جهازك (أجهزتك)، قم بتشغيل:

accelerate config --config_file accelerate_config.yaml

وأجب عن الأسئلة المطروحة. سيؤدي ذلك إلى إنشاء ملف إعدادات سيتم استخدامه لضبط الخيارات الافتراضية بشكل صحيح عند تنفيذ

accelerate launch --config_file accelerate_config.yaml train.py [--training-args]

ملاحظة: استخدام واجهة الأوامر accelerate هو أمر اختياري تمامًا، حيث يمكن بدء التدريب بالطريقة المعتادة باستخدام:

python train.py / python -m torch.distributed ...

اعتمادًا على تكوين البنية التحتية الخاصة بك، وذلك للمستخدمين الذين يفضلون التحكم الدقيق في أمر الإطلاق.

يمكن مشاهدة أمثلة تدريب أكثر تعقيدًا في مجلد الأمثلة هنا.

بدلاً من ذلك، إذا كنت تفضل فهم المفاهيم الأساسية أولاً، يمكن العثور عليها في التوثيق.

الاستخدام

من هو الجمهور المستهدف لـ pytorch-accelerated؟

ليركزوا على الأجزاء المثيرة للاهتمام من حلقة التدريب.

متى لا يجب أن تستخدم pytorch-accelerated؟

ويساعدك في اختيار نموذج أو مُحسِّن أو دالة خسارة، فمن الأفضل لك استخدام fastai. يركز pytorch-accelerated فقط على عملية التدريب، وجميع الأمور الأخرى تُترك لمسؤولية المستخدم. فربما من الأفضل لك استخدام Accelerate مباشرة! بينما من الممكن تخصيص كل جزء من Trainer، إلا أن حلقة التدريب مقسمة أساسًا إلى عدة طرق مختلفة ستحتاج إلى تجاوزها. ولكن، قبل أن تبدأ، هل كتابة تلك الحلقات for مهمة حقًا لدرجة تستحق أن تبدأ من الصفر مجدداً 😉. وترغب في استخراج كل جزء من الأداء على عتادك المختار، فمن الأفضل غالباً الالتزام بـ PyTorch الأصلي؛ أي واجهة برمجة تطبيقات عالية المستوى تصبح عبئاً في الحالات المتخصصة للغاية!

الشكر والتقدير

لقد استُلهمت العديد من جوانب تصميم وميزات مكتبة pytorch-accelerated بشكل كبير من عدد من المكتبات والأطر الممتازة مثل fastai، timm، PyTorch-lightning و Hugging Face Accelerate. كل من هذه الأدوات أثرت بشكل كبير على كل من هذه المكتبة ومجتمع تعلم الآلة، ولا يمكن التأكيد بما فيه الكفاية على مدى تأثيرهم!

لقد استلهمت مكتبة pytorch-accelerated فقط من هذه الأدوات، وتم تنفيذ جميع الوظائف التي تحتويها من الصفر بطريقة تفيد هذه المكتبة. والاستثناءات الوحيدة لذلك هي بعض السكريبتات في مجلد examples حيث تم أخذ الموارد الموجودة وتعديلها بهدف عرض ميزات pytorch-accelerated; هذه الحالات تم تمييزها بوضوح، مع تقديم الشكر للمؤلفين الأصليين.

--- Tranlated By Open Ai Tx | Last indexed: 2026-02-28 ---