تعد مكتبة باتورش من أسهل مكتبات التعلم الآلي استخدما حيث توفر جميع الأدوات والعمليات الرياضية اللازمة لبناء الشبكة العصبية وغيرها من نماذج التعلم الآلي.
يوما عن يوم تتزايد مكتبات التعلم الآلي والتعلم العميق في الظهور والتي تتركنا حائرين أمام أي واحدة نستخدم, ولكن لنختصر الطريق, مؤكد أنك تبحث عن أسهل الطرق وأسرعها لإنشاء نماذج تعلم آلي ونماذج التعلم العميق كالشبكات العصبية وغيرها, وبأقل الإمكانيات بل وتتساءل ما اذا كان بإمكانك استخدام هاتفك الذكي لإنشائها؟ نتحدث هنا عن مكتبة بايتروش Pytorch, تعد من أسهل المكتبات في مجال التعلم الآلي والتعلم العميق التي يمكنك استخدامها بأقل الإمكانيات, ولكن ما هي تحديدا, وما الذي تقدمه من خدمات, ولماذا اكتسبت هذه الأهمية في مجال الذكاء الاصطناعي؟ هذا وأكثر ما سنعرفه في مقالنا هذا عن مكتبة بايتورش, ابق معنا.
مكتبة بايتورش هي مكتبة تعلم آلي مفتوحة المصدر, تعتمد على مكتبة تورش Torch, طورت من قبل مختبر الذكاء الاصطناعي الخاص بشركة Facebook ولكنها الآن تعتبر جزء من مظلة مؤسسة Linux لينكس. [1]
تعتمد بشكل أساسي على لغة البرمجة Python, كما تتميز بأهم الأدوات و واجهات البرمجة اللازمة لبناء وتدريب نماذج التعلم الآلي والتعلم العميق, بدءا من مرحلة تنظيم البيانات وصولا الى مرحلة تدريب النموذج وحتى مرحلة نشرها, من أهم المميزات التي توفرها هي حوسبة Tensor مثل NumPy والتي تعني استخدام هياكل البيانات المتقدمة التي تعرف باسم Tensor بشكل سريع وأكثر كفاءة من خلال وحدات معالجة الرسومات GPU.
كما أن هذه المكتبة توفر مئات العمليات الرياضية التي تستخدم في عمليات بناء وتشغيل النماذج الذكية, كانت ولا تزال مكتبة بايتورش تحظى بشعبية عالية من قبل علماء البيانات و المهتمين في المجال, بسبب سهولة استخدامها في صناعة شبكات عصبية اصطناعية وغيرها من تطبيقات الذكاء الاصطناعي.
صدرت تحت ترخيص BSD المعدل والذي ينص على حرية استخدام المكتبة والتعديل على الشيفرة المصدرية الخاصة بها وفق الحاجة.
من التطبيقات التي يمكن استخدام هذه المكتبة فيها هي الرؤية الحاسوبية Computer Vision و معالجة اللغة الطبيعية, بالإضافة الى تطبيقات التعرف على الصور.
هناك عنصران أساسيان تعتمد عليهما مكتبة بايتورش في كيفية عملها وهما: Tensors و Graphs الرسوم البيانية. [2]
التنسورز Tensors
لنوضح أولا مفهوم التنسورز, وهي تعد النوع الأساسي للبيانات في مكتبة بايتورش وهي تشبه مصفوفات متعددة الأبعاد, يتم الاستفادة منها في تخزين ومعالجة بيانات الإدخال والإخراج الخاصة بالنموذج بالإضافة الى تخزين معاملات النموذج. تشبه التنسورز في مكتبة بايتورش ما يسمى ب ndarrays الموجودة في مكتبة NumPy، إلا أن الفرق بينهما هو أن التنسورز يمكن تشغيلها على وحدات معالجة الرسومات GPUs مما يسرع من عمليات الحوسبة.
إذا تكون بيانات الإدخال ومعاملات النموذج مثل الأوزان Weights و الانحيازات Biases مخزنة داخل التنسوز, والهدف هو تحسين هذه المعاملات عن طريق تطبيق بعض العمليات الحسابية عليها مثل الدوال Functions لحساب مشتقاتها الجزئية Gradients بالنسبة لمقياس الخسارة Loss Metric أي أننا نقوم بحساب كيفية تغيير مقياس الفقد بالنسبة لكل معامل في النموذج, بهدف تعزيز أداء النموذج.
في المرحلة الأولى، التي تسمى الانتشار الأمامي Forward Propagation، تأخذ الشبكة العصبية معاملات الإدخال وتقوم بتنفيذ العمليات الحسابية عليها لتوليد ما يسمى ب Confidence Score لكل عقدة في الطبقة التالية, تتكرر هذه العملية عبر الطبقات حتى نصل إلى الطبقة المخرجات ثم يحسب خطأ النقطة.
ثم في المرحلة الثانية، يتم استخدام عملية تعرف بالانتشار العكسي Backward Propagation داخل عملية تعرف باسم النزول التدرجي Gradient Descent، يتم حساب الخطأ لنقاط الناتج وإرساله إلى الوراء عبر الشبكة. يتم ذلك باستخدام مشتقات الخطأ بالنسبة للمعاملات، والتي تسمى التدرجات, ثم يتم استخدام هذه التدرجات لتعديل الأوزان والانحيازات في اتجاه يحسن من أداء النموذج.
الرسوم البيانية Graphs
الرسوم البيانية هي هيكل بيانات يتكون من عقد متصلة وحواف, أصبحت اليوم ذات أهمية كبيرة لأن كل إطار حديث للتعلم العميق يستند إلى مفهوم الرسوم البيانية من ضمنها الشبكات العصبية, إذ صارت تمثل كهيكل رسوم الحسابات.
توفر PyTorch نظاما لتسجيل وتتبع العمليات التي تتم على المصفوفات أو التنسورز خلال عمليات التدريب والتحسين, بحيث تستخدم مفهوم الرسم البياني الموجه غير الدائري (DAG) لتمثيل هذه العمليات. يتألف الرسم البياني من كائنات الدوال, تمثل الأوراق في الرسم البياني تنسورز أو مصفوفات الإدخال أما الجذور فتمثل تنسورز الإخراج.
تعتمد مكتبة بايتورش على رسوم حسابية ديناميكية حيث يتم بناء وإعادة بناء الرسم البياني أثناء التشغيل, حيث يستخدم الشيفرة نفسها لتنفيذ العمليات الأمامية وإنشاء هيكل البيانات اللازم للانتشار العكسي, كما أنها تعتبر أول إطار يعتمد على Define-by-run مع أداء قوي يتنافس مع الأطر التي تستخدم رسوما ثابتة مثل TensorFlow. يتيح هذا النهج تحديد النماذج ديناميكيا أثناء التشغيل، مما يجعله مناسبا لمجموعة واسعة من التطبيقات، بدءا من الشبكات التصويرية القياسية إلى الشبكات العصبية العائدة.
اكتسب هذه المكتبة شعبيتها بسبب ما تتمتع به من خصائص مميزة, من أهمها: [3]
الخاتمة
مكتبة بايتورش هي مكتبة تعلم آلي تتيح إمكانية بناء نماذج التعلم الآلي والشبكات العصبية وكذلك نماذج معالجة اللغة الطبيعية, تعتمد على لغة البرمجة بايثون وهذا ما يجعلها من أسهل المكتبات للعمل عليها, كما أنها توفر جميع الأدوات والعمليات الرياضية اللازمة لبناء وتدريب النماذج.
تعتمد في عملها على المصفوفات أو التنسورز Tensors والتي تستخدمها لتخزين بيانات ومعاملات الإدخال مثل الأوزان وكذلك تعتمد على الرسوم البيانية Graphs حيث تستفيد منها في تتبع العمليات على المصفوفات من خلال تمثيلها بالرسم البياني الموجه غير الدائري.
وأخيرا, تتميز مكتبة بايتورش بمرونة استخدامها وإمكانية التنقل بين الأوامر بسهولة وسلاسة, بالإضافة الى إمكانية تشغيلها على أنظمة تشغيل IOS و Android وهذا يعني أنه يمكنك بماء النماذج باستخدام هاتفك الذكي.
تحظى المكتبة بمستقبل واعد مع استمرار التطور والتحسين المستمر، مما يجعلها خيارا متقدما في مجال تعلم الآلة والبرمجة.
المصادر