أباتشي سيستم دي إس

Apache SystemDS (سابقًا، Apache SystemML) هو نظام تعلم آلي مفتوح المصدر لدورة حياة علوم البيانات الشاملة.

تتمثل الخصائص المميزة لنظام SystemDS فيما يلي:

  1. إمكانية تخصيص الخوارزمية عبر لغات تشبه لغة R ولغات تشبه لغة بايثون.
  2. أوضاع تنفيذ متعددة، بما في ذلك الوضع المستقل، وSpark Batch، و Spark MLContext، و Hadoop Batch، وJMLC.
  3. التحسين التلقائي بناءً على البيانات وخصائص المجموعة لضمان الكفاءة وقابلية التوسع.

تاريخ

تم تطوير SystemML عام 2010 على يد باحثين في مركز أبحاث IBM ألمادن بقيادة زميل IBM شيفاكومار فايثياناثان. لوحظ أن علماء البيانات كانوا يكتبون خوارزميات التعلم الآلي بلغات مثل R و Python لمعالجة البيانات الصغيرة. وعندما حان وقت التوسع لمعالجة البيانات الضخمة، كان لا بد من الاستعانة بمبرمج أنظمة لتوسيع نطاق الخوارزمية بلغة مثل Scala . كانت هذه العملية تستغرق عادةً أيامًا أو أسابيع لكل تكرار، وكانت الأخطاء واردة أثناء ترجمة الخوارزميات للعمل على البيانات الضخمة. يسعى SystemML إلى تبسيط هذه العملية. يتمثل أحد أهدافه الرئيسية في توسيع نطاق الخوارزمية المكتوبة بلغة شبيهة بـ R أو Python تلقائيًا للعمل على البيانات الضخمة، مع توليد نفس النتيجة دون الحاجة إلى أسلوب الترجمة المتكرر والمعرض للأخطاء.

في 15 يونيو 2015، وخلال قمة سبارك في سان فرانسيسكو، أعلنت بيث سميث، المديرة العامة لقسم تحليلات IBM، أن IBM ستتيح SystemML كمصدر مفتوح كجزء من التزامها الكبير تجاه Apache Spark والمشاريع ذات الصلة. أصبح SystemML متاحًا للجمهور على GitHub في 27 أغسطس 2015، وانضم إلى حاضنة Apache في 2 نوفمبر 2015. وفي 17 مايو 2017، وافق مجلس إدارة مؤسسة برمجيات Apache على تصنيف Apache SystemML كمشروع رئيسي من مشاريع Apache.

التقنيات الرئيسية

فيما يلي بعض التقنيات المدمجة في محرك SystemDS.

أمثلة

تحليل المكونات الرئيسية

يقوم مقتطف الشفرة التالي [ 1 ] بتحليل المكونات الرئيسية لمصفوفة الإدخالأ{\displaystyle A}، والذي يُعيدهـأنازهـنvهـجتoرs{\displaystyle eigenvectors}وهـأنازهـنvألuهـs{\textstyle القيم الذاتية}.

PCA.dml# انظر: https://github.com/apache/systemds/blob/master/scripts/algorithms/PCA.dml#L61N = عدد الصفوف ( A D = ncol ( A );# إجراء عملية التقييم المعياري (التوسيط والقياس)A = scale ( A , center == 1 , scale == 1 );# مصفوفة التغايرmu = colSums ( A ) / N ;C = ( t ( A ) %*% A ) / ( N -1 ) - ( N / ( N -1 )) * t ( mu ) %*% mu ;# حساب المتجهات الذاتية والقيم الذاتية[ القيم ، المتجهات ] = الذات ( C 

نص الاستدعاء

spark-submit SystemDS.jar -f PCA.dml -nvargs INPUT=INPUT_DIR/pca-1000x1000 \  OUTPUT=OUTPUT_DIR/pca-1000x1000-model PROJDATA=1 CENTER=1 SCALE=1

وظائف قاعدة البيانات

خوارزمية التجميع DBSCAN مع المسافة الإقليدية .

X = rand ( rows = 1780 , cols = 180 , min = 1 , max = 20 )[ المؤشرات ، النموذج ] = dbscan ( X = X ، eps = 2.5 ، minPts = 360 )

التحسينات

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

  • آلية جديدة لوظائف DML (على مستوى البرنامج النصي) builtin، ومجموعة كبيرة من الوظائف المدمجة الجديدة لمعالجة البيانات المسبقة بما في ذلك تنظيف البيانات، وتوسيعها، وتقنيات هندسة الميزات، وخوارزميات التعلم الآلي الجديدة، وتصحيح أخطاء النموذج.
  • تم تطبيق العديد من طرق تنظيف البيانات بما في ذلك عمليات الإسناد المتعددة باستخدام الإسناد متعدد المتغيرات بواسطة المعادلات المتسلسلة (MICE) وتقنيات أخرى، وSMOTE، وهي تقنية إعادة أخذ العينات الزائدة لعدم توازن الفئات، وملء القيم المفقودة للأمام والخلف، والتنظيف باستخدام معلومات المخطط والطول، ودعم اكتشاف القيم الشاذة باستخدام الانحراف المعياري والمدى الربيعي، واكتشاف التبعية الوظيفية.
  • إطار عمل كامل لتتبع النسب وإعادة الاستخدام بما في ذلك دعم إزالة التكرار الحلقي، وإعادة الاستخدام الكاملة والجزئية، وإعادة الاستخدام بمساعدة المترجم، والعديد من عمليات إعادة الكتابة الجديدة لتسهيل إعادة الاستخدام.
  • واجهة خلفية جديدة لوقت التشغيل الموحد تتضمن دعم المصفوفات والإطارات الموحدة، و builtins الموحدة ( transform-encode، decodeإلخ).
  • أعد هيكلة حزمة الضغط وأضف وظائف تشمل التكميم للضغط مع فقدان البيانات، وعمليات الخلايا الثنائية، وضرب المصفوفة اليسرى. [تجريبي]
  • روابط بايثون جديدة تدعم العديد من builtinالعمليات، وعمليات المصفوفات، والموترات الموحدة، وتتبعات النسب.
  • تنفيذ CUDA لعوامل التجميع التراكمية ( cumsum، cumprodإلخ.)
  • تقنية جديدة لتصحيح أخطاء النماذج باستخدام أداة البحث عن الشرائح.
  • نموذج بيانات موتر جديد (موترات أساسية من أنواع قيم مختلفة، موترات بيانات مع مخطط) [تجريبي]
  • نصوص نشر السحابة لـ AWS ونصوص لإعداد وبدء العمليات الموحدة.
  • تحسينات في الأداء مع parallel sort، gpu cum agg، append cbindإلخ.
  • تحسينات متنوعة للمترجم ووقت التشغيل بما في ذلك عمليات إعادة الكتابة الجديدة والمحسّنة، وتقليل إنشاء سياق Spark، evalوإطار عمل جديد، وعمليات القوائم، ومكتبات النواة الأصلية المحدثة على سبيل المثال لا الحصر.
  • قارئ/كاتب بيانات جديد للإطارات jsonودعم sqlكمصدر بيانات.
  • تحسينات متنوعة: تحسين التوثيق، وتحسين الاختبار، ونصوص التشغيل/الإصدار، وتحسين التغليف، وحاوية Docker لنظام systemds، ودعم تعبيرات lambda، وإصلاحات الأخطاء.
  • تمت إزالة مُجمِّع MapReduce وواجهة التشغيل الخلفية، pydmlوالمحلل اللغوي، وإطار عمل Java-UDF، ومصحح الأخطاء على مستوى البرنامج النصي.
  • تم إيقاف استخدامها ./scripts/algorithms، حيث ستصبح هذه الخوارزميات تدريجياً جزءاً من SystemDS builtin.

[ 2 ]

المساهمات

يرحب مشروع Apache SystemDS بالمساهمات في كتابة التعليمات البرمجية، أو طرح الأسئلة والإجابة عليها، أو بناء المجتمع، أو نشر المعلومات. دليل المساهمين متاح على الرابط التالي: https://github.com/apache/systemds/blob/main/CONTRIBUTING.md

انظر أيضاً

مراجع

  1. أباتشي سيستم دي إس ، مؤسسة برمجيات أباتشي، 24 فبراير 2022 ، تم الاطلاع عليه بتاريخ 6 مارس 2022
  2. SystemDS، أباتشي. "ملاحظات إصدار SystemML 1.2.0" . systemds.apache.org . تم الاطلاع عليه بتاريخ 26 فبراير 2021 .