المعلوماتية > برمجيات

مكتبات غوغل مفتوحة المصدر

في الحقيقة، نحن نفضّل استخدام البرمجيات المفتوحة المصدر على ما يسمى بـ البرمجيات الاحتكارية؛ أي تلك التي تملكها جهة معينة، لكنّ السؤال: ماذا يعني أن تكون البرمجيات مفتوحةَ المصدر؟

البرمجيات المفتوحة المصدر هي التي يمكن الاطلاع والتعديل على شيفرتها البرمجية باستخدام ترخيص يُمنَح فيه المالك حقوق الدراسة والتعديل والتوزيع لأي شخص ولأي غرض كان، مع إعادة طرحها لاستخدامها مرة أخرى.

يمكن تطوير البرامج المفتوحة المصدر بطريقة تعاونية؛ أي إنه بإمكان أي شخص المشاركة والمساهمة في تطويرها، على العكس من البرمجيات الاحتكارية التي لا تتيح الوصول إلى الشيفرة البرمجية والتعديل عليها

 إلا للشخص أو الفريق أو المنظمة التي أوجدت هذه الشيفرة.

تؤمن غوغل (Google) أن المصادر المفتوحة مفيدة. ولكونها مجانية ومتاحة للجميع، فإنها تشجع على التعاون والتطور التقني وحل مشكلات العالم الحقيقي بالخطوات الآتية:

الاستخدام:

تستخدم الآلاف من المشاريع والمكتبات المفتوحة المصدر لبرمجة منتجات قابلة للتطوير وموثوق بها.

النشر:

تصدر الملايين من الأسطر والتعليمات البرمجية المفتوحة المصدر ليستخدمها الآخرون.

الدعم:

تعتقد أنّ تأمين نظام عمل مناسب مهمٌّ لاستدامة المصدر المفتوح للجميع.

وقد نُفِّذ أكثر من 2000 مشروع ولا يزال العمل مستمرًّا لإضافة مشاريع أخرى، واستُخدِمت المصادر المفتوحة في كثير من مشاريع الابتكار والذكاء الصنعي.

كما هو معلوم؛ إنّ من أصعب التحديات العلمية تطويرَ التوصيلات ذات درجات الحرارة العالية وفهمَ حقيقتها المكانية والزمانية، ففي هذه الحالة يجب علينا التعامل مع التعقيد الكمومي.

وما يجعل هذه التحديات صعبة هو أنّ عدد الحالات الكمومية في هذه الأنظمة كبير جدًّا؛ مما يجعل حساب (القوة المفرطة) أو (هجوم التخمين) غير ممكن، ويُستعمَل هذا الهجوم ضد كل الأهداف المحمية بكلمات المرور مثل ملفات Win RAR أو Win ZIP أو المايكروسوفت وورد وحسابات المواقع والمنتديات والبريد الإلكتروني؛ إذ يولّد البرنامج المستخدم لهذا الهجوم عددًا ضخمًا من كلمات المرور و يجرّبها إلى حين الوصول إلى الكلمة الصحيحة. وللتعامل مع هذا، تُستخدَم هياكل البيانات التي تسمى شبكات *Tensor.

تتيح شبكات Tensor التركيزَ على أكثر الحالات الكمومية صلةً بمشكلات العالم الحقيقي مثل حالات الطاقة المنخفضة، مع تجاهل الحالات التي ليس لها صلة بذلك.

كذلك تعمل شبكات Tensor على إيجاد عددٍ كبيرٍ من التطبيقات في مجال تعليم الآلة (Machine Learning)، وعلى الرغم من ذلك؛ لا تزال هناك صعوبات تحول دون استخدامها على نطاق واسع في مجال تعليم الآلة. ومن هذه الصعوبات:

1- عدم توفر مكتبة شبكات Tensor على مستوى الإنتاج لتشغيل خوارزميات (شبكات Tensor) على نطاق واسع.

2- نلاحظ أنّ معظم شبكات Tensor موجّهة نحو تطبيقات الفيزياء، وقد خلق هذا التوجُّه لدى كثير من الناس انطباعًا خاطئًا بأنّ مستخدمي هذه الخوارزميات يجب أن يكونوا خبراء في علم ميكانيكا الكموم.

ومن أجل معالجة هذه الصعوبات فإننا نصدر TensorNetwork، وهي مكتبة جديدة مفتوحة المصدر لتحسين كفاءة حسابات Tensor، طُوِّرت بالتعاون مع معهد المحيط للفيزياء النظرية (Perimeter institute for theortical physics) وشركة X.

تُستخدَم Tensor Flow واجهةً خلفيةً (backend) وتُطوَّر (GPU) التي يمكن أن تتيح سرعاتٍ قصوى تصل إلى 100xعند مقارنتها بالعمل وفق وحدة المعالجة المركزية (CPU).

تُقدَّم (شبكات Tensor) في سلسلة من المقالات التي يقدم أولُها المكتبة الجديدة والواجهة البرمجية (API)، كذلك يقدم نظرة عامة إلى Tensor Networks لغير المتخصصين في الفيزياء.

وقد رُكِّز على استخدام حالة معينة في الفيزياء في مقال سابق؛ مما يدل على تحسين السرعة عند استخدام الـ GPU.

فوائد شبكات Tensor:

هي مصفوفة متعددة الأبعاد ومصنّفة ضمن تسلسل هرمي حسب ترتيبها، فعلى سبيل المثال؛ الرقم العادي هو tensor من الدرجة صفر، أما الشعاع فهو tensor من الدرجة الأولى، وتكون المصفوفة tensor من الدرجة الثانية، في حين يمكن بسهولة تمثيل tensor منخفضة الترتيب بمجموعة واضحة من الأرقام أو برمز رياضي مثل Tijnklm (يمثل عدد المؤشرات ترتيبَ tensor).

يصبح هذا الرمز معقدًا للغاية بمجرد أن نبدأ في الحديث عن الدرجات العالية من tensor.

وفي هذه المرحلة، من المفيد البدء في استخدام رسم تخطيطي؛ إذ نرسم دائرة (أو بعض الأشكال الأخرى) مع عدد من الخطوط أو السوق، ويكون عدد السوق هو درجة tensor نفسها. وفي هذا الرسم يكون العدد مجرد دائرة، ويكون للشعاع ساقٌ واحدة، والمصفوفة لها ساقان، ويكون لكل ساق من tensor بعدٌ معينٌ هو حجم تلك الساق.

يفيد تمثيل tensor بهذه الطريقة في تسهيل العمليات الرياضية؛ مثل ضرب مصفوفة بواسطة شعاع لإنتاج شعاع آخر، أو ضرب شعاعين لإنشاء عددي.

هذه كلها أمثلة لمفهوم شامل يسمى باختصار "Tensor".

ما هي شبكات Tensorعمليًّا؟

فكّر في مجموعة من الصور بالأبيض والأسود، علمًا أن كلًّا منها تُعدّ قائمة بقيم n بكسل. ويمكن ترميز البيكسل المفرد لصورة واحدة أحادية الترميز بشعاع ثنائي الأبعاد، وبدمج ترميزات البيكسل هذه معًا؛ فإننا نستطيع صنع تشفير ثنائي البعد أحادي اللون للصورة بأكملها.

كذلك يمكننا إعادة تشكيل هذا الشعاع الذي بعده عن tensor من المرتبة n، ثم نضيف كل tensor في مجموعتنا من الصور للحصول على إجمالي tensor Ti1 ، i2 ، ... ، in بتغليف المجموعة.

قد يبدو هذا شيئًا مضنيًا للغاية، فبهذه الطريقة قد يستغرق تشفير الصور بقرابة 50 بكسل مساحةً كبيرة من الذاكرة. وهنا يأتي دور شبكات tensor؛ فبدلًا من تخزين Tensor T أو معالجتها مباشرة، فإننا نعدّ T مصغرًا للعديد من tensor المكونة على شكل شبكة من tensor؛ مما يجعلها أكثر كفاءة. 

على سبيل المثال، إنّ شبكة في حالة المصفوفة الشائعة (MPS) ستكتب T من حيث tensor الأصغر بكثير؛ إذ يكون العدد الإجمالي للعوامل خطيًّا فقط في n، بدلًا من أن يكون أسيًّا

ومن غير الواضح أنّ شبكات tensor الكبيرة يمكن إنشاؤها أو معالجتها بكفاءة مع تجنب الحاجة إلى استخدام حجم كبير من الذاكرة باستمرار؛ لكنّ هذا لا ينفي إمكانية حدوثه في كثير من الحالات، وهذا هو السبب في استخدام شبكات tensor على نطاق واسع في الفيزياء الكمومية وفي التعليم الآلي حاليًّا.

الأداء في حالة استخدام الفيزياء:

TensorNetwork هي مكتبة تعمل على عدة أغراض لخوارزميات شبكة tensor، ولذلك؛ إنها مفيدة للفيزيائيين أيضًا.

تُعدّ الحالة التقريبية الكمومية حالةً من الحالات النموذجية لشبكات tensor في الفيزياء، وهي مناسبة لتوضيح قدرات مكتبة (شبكات tensor). ففي مقال آخر؛ صُنِّفت خوارزمية شبكة tensor الشجرية (TTN) لتقريب الحالة بين سلسلة الدوران الكمومية الدورية (1D) أو (2D)، وتنفيذ الخوارزمية باستخدام (شبكات tensor).

وقد قورن بين استخدام وحدات المعالجة المركزية (CPU) مع وحدات معالجة الرسومات (GPU)، فلوحظت زيادة سرعة حسابية كبيرة -تصل إلى 100 مرة- عند استخدام وحدة معالجة الرسومات ومكتبة (شبكات tensor).

الخلاصة والعمل المستقبلي:

في هذه المرحلة وُضّحت قوة (شبكات tensor) في تطبيقات العالم الحقيقي.

وفي المرحلة المقبلة، سنستخدم (شبكات tensor) لتصنيف الصور في مجموعات البيانات MNIST وFashion-MNIST.

أما فيما يخص الخطط المستقبلية؛ فسيُعمَل على تحليل السلاسل الزمنية في مجال تعليم الآلة (ML)، في سيُعمَل على محاكاة الدارات الكمومية في مجال الفيزياء، وستُضاف دائمًا ميزات جديدة إلى (شبكات tensor) أملًا بأن تصبح (شبكات tensor) أداةً قيّمة للفيزيائيين والعاملين في مجال تعليم الآلة.

*Tensor: مصفوفات متعددة الأبعاد ومصنّفة في تسلسل هرمي وفقًا لترتيبها.

المصادر:

1- هنا

2- هنا;