بايتورش
PyTorch مكتبة مفتوحة المصدر للتعلم العميق ، طُوّرت في الأصل بواسطة Meta Platforms وتُطوّر حاليًا بدعم من مؤسسة Linux . تُعدّ PyTorch خليفةً لـ Torch ، وتوفر واجهة برمجة تطبيقات عالية المستوى تعتمد على تطبيقات مُحسّنة منخفضة المستوى لخوارزميات وهياكل التعلم العميق، مثل Transformer و SGD . ومن الجدير بالذكر أن واجهة برمجة التطبيقات هذه تُبسّط تدريب النماذج واستنتاجها إلى بضعة أسطر من التعليمات البرمجية. تسمح PyTorch بالتوازي التلقائي للتدريب ، وتُطبّق داخليًا روابط CUDA التي تُسرّع التدريب بشكل أكبر من خلال الاستفادة من موارد وحدة معالجة الرسومات (GPU) .
يستخدم PyTorch الموتر كنوع بيانات أساسي ، على غرار NumPy . يتم تسهيل التدريب بواسطة نظام تفاضل تلقائي معكوس ، Autograd، الذي ينشئ رسمًا بيانيًا موجهًا غير دوري للعمليات (ومُعاملاتها) التي ينفذها النموذج أثناء عملية التمرير الأمامي. بعد ذلك ، يتم تطبيق عملية الانتشار العكسي مع دالة الخسارة . [ 4 ]
اعتبارًا من عام 2025لا تزال PyTorch واحدة من أشهر مكتبات التعلم العميق، إلى جانب مكتبات أخرى مثل TensorFlow و Keras . [ 5 ] ويمكن تثبيتها باستخدام مدير حزم Anaconda . [ 6 ] وقد بُني عدد من أنظمة التعلم العميق التجارية على PyTorch، بما في ذلك ChatGPT ، [ 7 ] و Tesla Autopilot ، [ 8 ] و Pyro من Uber ، [ 9 ] و Transformers من Hugging Face . [ 10 ] [ 11 ]
تاريخ
في عام ٢٠٠١، طُوِّرت مكتبة Torch وأُصدرت بموجب رخصة GPL من قِبل معهد أبحاث Idiap . [ ١٢ ] كانت مكتبةً للتعلم الآلي مكتوبةً بلغة C++ وCUDA، تدعم أساليبَ متنوعةً تشمل الشبكات العصبية، وآلات المتجهات الداعمة (SVM)، ونماذج ماركوف المخفية ، وغيرها. [ ١٣ ] [ ١٤ ] [ ١٥ ] في عام ٢٠١٠ تقريبًا، أُعيدت كتابتها بواسطة رونان كولوبيرت، وكليمنت فارابيت، وكوراي كافوكوغلو. عُرفت هذه النسخة باسم Torch7 أو LuaTorch. كُتبت بحيث تكون الواجهة الخلفية بلغة C والواجهة الأمامية بلغة Lua . [ ١٦ ] في منتصف عام ٢٠١٦، أعاد بعض المطورين هيكلتها لفصل الواجهة الأمامية عن الخلفية، متأثرين بشدة بمكتبتي torch-autograd و Chainer . بدورها، تأثرت torch-autograd بمكتبة HIPS/autograd. [ 17 ] توقف تطوير Torch7 في عام 2018 وتم دمجه في مشروع PyTorch. [ 18 ] [ 19 ]
تُشغّل شركة ميتا (المعروفة سابقًا باسم فيسبوك) كلاً من PyTorch و Caffe2 (بنية الشبكات العصبية التلافيفية لتضمين الميزات السريع )، إلا أن النماذج المُعرّفة بواسطة هذين الإطارين كانت غير متوافقة. وقد أنشأت ميتا ومايكروسوفت مشروع تبادل الشبكات العصبية المفتوحة (ONNX) في سبتمبر 2017 لفصل أُطر التعلم العميق عن بيئات التشغيل الخاصة بالأجهزة، مما يسمح بتحويل النماذج بين الأُطر وتحسينها لموفري التنفيذ مثل TensorRT من NVIDIA. [ 20 ] دُمج Caffe2 في PyTorch في نهاية مارس 2018. [ 21 ] وفي سبتمبر 2022، أعلنت ميتا أن PyTorch ستُدار من قِبل مؤسسة PyTorch المستقلة، وهي شركة تابعة حديثة التأسيس لمؤسسة Linux . [ 22 ]
تم إصدار PyTorch 2.0 في 15 مارس 2023، حيث قدم TorchDynamo ، وهو مُصرّف على مستوى بايثون يجعل تشغيل التعليمات البرمجية أسرع بمرتين، إلى جانب تحسينات كبيرة في أداء التدريب والاستدلال عبر منصات الحوسبة السحابية الرئيسية . [ 23 ] [ 24 ]
موترات PyTorch
يُعرّف PyTorch فئةً تُسمى Tensor( torch.Tensor) لتخزين ومعالجة المصفوفات المستطيلة متعددة الأبعاد المتجانسة من الأرقام. يدعم PyTorch أنواعًا فرعيةً مختلفةً من المصفوفات متعددة الأبعاد، [ 25 ] أو الموترات. [ 26 ] تُشبه موترات PyTorch مصفوفات NumPy ، ولكن يُمكن أيضًا معالجتها بواسطة وحدة معالجة رسومية NVIDIA تدعم CUDA . كما يعمل PyTorch على تطوير دعم لمنصات وحدات معالجة رسومية أخرى، مثل ROCm من AMD [ 27 ] وMetal Framework من Apple . [ 28 ]
الشبكات العصبية في PyTorch
يُعرّف PyTorch وحدةً تُسمى nn( torch.nn) لوصف الشبكات العصبية ودعم تدريبها. تُقدّم هذه الوحدة مجموعةً شاملةً من اللبنات الأساسية للشبكات العصبية، بما في ذلك طبقاتٍ ووظائف تنشيطٍ مُتعددة، مما يُتيح بناء نماذج مُعقدة. تُبنى الشبكات من خلال الوراثة من الوحدة torch.nnوتحديد تسلسل العمليات في forward()الدالة.
تنسيق ملف PyTorch التسلسلي
يستطيع بايتورش حفظ وتحميل النماذج باستخدام تنسيق ملفاته الخاص، وهو عبارة عن أرشيف ZIP64 يحتوي على أوزان النموذج في ملف بايثون pickle ، بالإضافة إلى معلومات أخرى مثل ترتيب البايتات . وتُستخدم امتدادات الملفات .pt و .pth بشكل شائع لهذه الملفات. [ 29 ]
مثال
يُظهر البرنامج التالي الوظائف الأساسية للمكتبة من خلال مثال بسيط.
استيراد تورشdtype = torch . floatdevice = torch.device ( "cpu" ) # تنفيذ جميع العمليات الحسابية على وحدة المعالجة المركزية# الجهاز = torch.device("cuda:0") # ينفذ جميع العمليات الحسابية على وحدة معالجة الرسومات# أنشئ موترًا واملأه بأرقام عشوائيةa = torch.randn ( 2 , 3 , device = device , dtype = dtype )اطبع ( أ )# الناتج: tensor([[-1.1884, 0.8498, -1.7129],# [-0.8816, 0.1944, 0.5847]])b = torch.randn ( 2 , 3 , device = device , dtype = dtype )اطبع ( ب )# الناتج: tensor([[ 0.7178, -0.8453, -1.3403],# [ 1.3262, 1.1512, -1.7070]])اطبع ( أ * ب )# الناتج: tensor([[-0.8530, -0.7183, 2.58],# [-1.1692, 0.2238, -0.9981]])اطبع ( مجموع ( أ ))# الناتج: tensor(-2.1540)print ( a [ 1 , 2 ]) # إخراج العنصر الموجود في العمود الثالث من الصف الثاني (بدءًا من الصفر)# الناتج: tensor(0.5847)اطبع ( أ.الحد الأقصى ( ))# الناتج: tensor(0.8498)تحدد كتلة التعليمات البرمجية التالية شبكة عصبية ذات طبقات خطية باستخدام nnالوحدة النمطية.
from torch import nn # استيراد الوحدة الفرعية nn من PyTorchclass NeuralNetwork ( nn . Module ): # يتم تعريف الشبكات العصبية كفئاتdef __init__ ( self ): # يتم تعريف الطبقات والمتغيرات في دالة __init__super () . __init__ () # يجب أن يكون موجودًا في كل شبكة.self.flatten = nn.Flatten ( ) # إنشاء طبقة تسطيح .self.linear_relu_stack = nn.Sequential ( # إنشاء مجموعة من الطبقات .nn.Linear ( 28 × 28 , 512 )، # تتميز الطبقات الخطية بشكل إدخال وإخراجnn.ReLU ()، # ReLU هي إحدى دوال التنشيط العديدة التي توفرها nnnn.Linear ( 512 , 512 )nn . ReLU (),nn . Linear ( 512 , 10 ),)def forward ( self , x ): # تحدد هذه الدالة عملية التمرير الأمامي.x = self.flatten ( x )logits = self.linear_relu_stack ( x )إرجاع اللوجيتانظر أيضاً
مراجع
- ↑ شينتالا، سوميث (1 سبتمبر 2016). "إصدار PyTorch ألفا-1" . جيت هاب . مؤرشف من الأصل في 29 أغسطس 2021. تم الاطلاع عليه في 19 أغسطس 2020 .
- ↑ "الإصدار 2.13.0" . 8 يوليو 2026. تم الاطلاع عليه في 9 يوليو 2026 .
- ↑ كلابورن، توماس (12 سبتمبر 2022). "PyTorch يحظى بدعم مؤسسة لينكس" . ذا ريجستر . مؤرشف من الأصل في 18 أكتوبر 2022. تم الاطلاع عليه في 18 أكتوبر 2022 .
- ↑ "ميكانيكا التدرج الذاتي" . وثائق PyTorch . تم الاطلاع عليه بتاريخ 13 نوفمبر 2025 .
- ↑ "أفضل 30 مشروعًا مفتوح المصدر" . github.com . تم الاطلاع عليه بتاريخ 13 نوفمبر 2025 .
- ↑ موخيرجي، أمارتيا؛ داي، نيلانجان (30 مايو 2019). الحوسبة الذكية باستخدام منصات مفتوحة المصدر . مطبعة سي آر سي. ص 229. ISBN 978-1-351-12032-6.
- ↑ "OpenAI تعتمد معيار PyTorch" . 30 يناير 2020. تم الاطلاع عليه بتاريخ 8 يناير 2026 .
- ^ كارباثي ، أندريج (6 نوفمبر 2019). "PyTorch في Tesla - أندريه كارباثي، تسلا" . يوتيوب . مؤرشفة من الأصلي في 24 مارس 2023 . تم الاسترجاع في 2 يونيو 2020 .
- ↑ "مختبرات أوبر للذكاء الاصطناعي تُطلق بايرو، لغة برمجة احتمالية عميقة مفتوحة المصدر" . مدونة أوبر الهندسية . 3 نوفمبر 2017. مؤرشف من الأصل في 25 ديسمبر 2017. تم الاطلاع عليه في 18 ديسمبر 2017 .
- ↑ PYTORCH-TRANSFORMERS: تطبيقات PyTorch لمحولات معالجة اللغة الطبيعية الشائعة ، PyTorch Hub، 1 ديسمبر 2019، مؤرشفة من الأصل في 11 يونيو 2023 ، تم استرجاعها في 1 ديسمبر 2019
- ↑ "أدوات النظام البيئي" . pytorch.org . مؤرشف من الأصل في 18 يوليو 2023. تم الاطلاع عليه في 18 يونيو 2020 .
- ↑ "رخصة PyTorch - إشعار حقوق النشر" . GitHub . تم الاطلاع عليه بتاريخ 12 يونيو 2026 .
- ^ "برنامج الشعلة التعليمي"، رونان كولوبرت، IDIAP، 2002-10-02
- ↑ ر. كولوبيرت، س. بينجيو، و ج. مارييثوز. تورش: مكتبة برمجية معيارية للتعلم الآلي . تقرير فني IDIAP-RR 02-46، IDIAP، 2002.
- ↑ "مكتبة الشعلة" . مؤرشفة من الأصل في 31 أكتوبر 2001.
- ^ كولوبيرت، رونان. كافوكوجلو، كوراي؛ فارابت، كليمان (2012)، "تنفيذ الشبكات العصبية بكفاءة" ، في مونتافون، غريغوار؛ أور، جينيفيف ب. مولر ، كلاوس روبرت (محررون)، الشبكات العصبية: حيل التجارة: الطبعة الثانية ، برلين، هايدلبرغ: سبرينغر، الصفحات من 537 إلى 557، دوى : 10.1007 / 978-3-642-35289-8_28 ، ISBN 978-3-642-35289-8تم الاطلاع عليه بتاريخ 10 يونيو 2025
- ↑ HIPS/autograd ، سابقًا: مجموعة أنظمة الاحتمالات الذكية بجامعة هارفارد - الآن في جامعة برينستون، 6 أبريل 2026 ، تم الاطلاع عليه في 6 أبريل 2026
- ↑ torch/torch7، الالتزام fd0ee3b، 2018-07-02
- ^ شينتالا ، سوميث (17 ديسمبر 2023). "أصول تصميم PyTorch" . سوميث.ch . تم الاسترجاع في 7 فبراير 2026 .
- ↑ كواتش، ك. (7 سبتمبر 2017). "مايكروسوفت وفيسبوك تتعاونان في مجال الذكاء الاصطناعي لمنافسة جوجل" . ذا ريجستر .
الهدف هو إنشاء "مترجم عالمي" للذكاء الاصطناعي... [يسمح] للمطورين بنقل نماذجهم بين أطر عمل وبيئات تشغيل أجهزة مختلفة.
- ↑ "دمج Caffe2 مع PyTorch" . 2 أبريل 2018. مؤرشف من الأصل في 30 مارس 2019. تم الاطلاع عليه في 2 يناير 2019 .
- ↑ إدواردز، بنج (12 سبتمبر 2022). "ميتا تُطلق مؤسسة بايتورش لجعل إطار عمل الذكاء الاصطناعي محايدًا تجاه البائعين" . آرس تكنيكا . مؤرشف من الأصل في 13 سبتمبر 2022. تم الاطلاع عليه في 13 سبتمبر 2022 .
- ↑ "نظرة عامة على الدينامو" .
- ↑ "PyTorch 2.0 يُضفي حيوية جديدة على التعلم الآلي مفتوح المصدر" . VentureBeat . 15 مارس 2023. مؤرشف من الأصل في 16 مارس 2023. تم الاطلاع عليه في 16 مارس 2023 .
- ↑ "مقارنة بين موتر PyTorch ومصفوفة NumPy" . GeeksforGeeks . 1 مارس 2024. تم الاطلاع عليه في 7 أبريل 2026 .
- ↑ "مقدمة إلى PyTorch - مكتبة بسيطة لكنها فعّالة للتعلم العميق" . analyticsvidhya.com . 22 فبراير 2018. مؤرشف من الأصل في 22 أكتوبر 2019. تم الاطلاع عليه في 11 يونيو 2018 .
- ↑ "تثبيت PyTorch لـ ROCm" . rocm.docs.amd.com . 9 فبراير 2024.
- ↑ "تقديم تدريب PyTorch المُسرّع على نظام Mac" . pytorch.org . مؤرشف من الأصل بتاريخ 29 يناير 2024. تم الاطلاع عليه بتاريخ 4 يونيو 2022 .
- ↑ "تنسيق ملف PyTorch التسلسلي" . مكتبة الكونغرس.
روابط خارجية
- برامج التعلم العميق
- برنامج فيسبوك
- برامج علمية مجانية
- برنامج مجاني مكتوب بلغة C
- برنامج مجاني مكتوب بلغة بايثون
- الذكاء الاصطناعي مفتوح المصدر
- مكتبات بايثون (لغة برمجة) العلمية
- البرامج التي تستخدم ترخيص BSD
