Home
Login

مترجم يجمع بين SQL والذكاء الاصطناعي، ويوسع دعم بناء جملة SQL لتدريب نماذج التعلم الآلي والتنبؤ والتقييم.

Apache-2.0Go 5.2ksql-machine-learning Last Updated: 2024-04-18

مشروع SQLFlow: نظرة عامة مفصلة

نظرة عامة على المشروع

SQLFlow هو مُترجم يقوم بتحويل برامج SQL إلى مهام سير عمل تعمل على Kubernetes. يقوم بتوسيع بناء جملة SQL لدعم مهام الذكاء الاصطناعي، بما في ذلك التدريب والتنبؤ وتقييم النماذج وتفسير النماذج والمهام المخصصة والتخطيط الرياضي.

عنوان المشروع: https://github.com/sql-machine-learning/sqlflow

الميزات الأساسية

1. دمج مثالي بين SQL والذكاء الاصطناعي

يعالج SQLFlow نقاط الضعف في تطوير التعلم الآلي التقليدي:

  • يتطلب تطوير تطبيقات ML التقليدية أدوارًا متعددة مثل مهندسي البيانات وعلماء البيانات ومحللي الأعمال.
  • يتطلب إتقان لغات برمجة متعددة مثل Python و SQL و SAS و Julia و R.
  • يؤدي تجزئة الأدوات وبيئات التطوير إلى صعوبات هندسية.

يمكّن SQLFlow المهندسين ذوي مهارات SQL من تطوير تطبيقات ML متقدمة.

2. توافق واسع النطاق

أنظمة قواعد البيانات المدعومة:

  • MySQL
  • MariaDB
  • TiDB
  • Apache Hive
  • Alibaba MaxCompute

أطر عمل التعلم الآلي المدعومة:

  • TensorFlow
  • Keras
  • XGBoost

3. بناء جملة SQL موسع

يقوم SQLFlow بتوسيع بناء جملة SQL القياسي، ويضيف كلمات رئيسية وعبارات متعلقة بالتعلم الآلي، مما يمكّن المستخدمين من إجراء ما يلي مباشرة في SQL:

  • تدريب النموذج (TO TRAIN)
  • التنبؤ بالنموذج (TO PREDICT)
  • تقييم النموذج
  • هندسة الميزات

أمثلة على الاستخدام

مثال على تدريب النموذج

SELECT *
FROM iris.train
TO TRAIN DNNClassifier
WITH model.n_classes = 3, model.hidden_units = [10, 20]
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;

مثال على التنبؤ بالنموذج

SELECT *
FROM iris.test
TO PREDICT iris.predict.class
USING sqlflow_models.my_dnn_model;

تصميم معماري

تتميز البنية العامة لـ SQLFlow بالخصائص التالية:

1. قابلية التوسع

  • يدعم محركات SQL متعددة، وليس محرك SQL معينًا.
  • لا يعتمد على وظائف تعريف المستخدم (UDF) لبناء امتدادات بناء الجملة.
  • يدعم نماذج وأدوات التعلم الآلي المعقدة.

2. المرونة وسهولة الاستخدام

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

3. التنفيذ الموزع

الناتج عبارة عن سير عمل Argo يتم تشغيله بشكل موزع على مجموعة Kubernetes، مما يضمن:

  • توافر عالي
  • قدرة على التوسع الأفقي
  • دعم نشر على مستوى المؤسسة

المزايا التقنية

1. الاختلافات عن الحلول الحالية

Microsoft SQL Server: يوفر خدمات التعلم الآلي، ولكنه يتطلب R أو Python كنصوص برمجية خارجية.

Teradata SQL for DL: يوفر خدمة RESTful، والتي يمكن استدعاؤها من بناء جملة SQL SELECT الموسع.

Google BigQuery: يمكّن التعلم الآلي في SQL من خلال عبارة CREATE MODEL.

تكمن ميزة SQLFlow في:

  • حل قابل للتطوير بالكامل.
  • متوافق مع محركات SQL متعددة.
  • يدعم نماذج التعلم الآلي المعقدة.
  • لا حاجة لتضمين كود Python أو R في عبارات SQL.

2. تكامل سير العمل

  • يقوم بتجميع برامج SQL في مهام سير عمل Kubernetes.
  • يدعم تنسيق سير عمل Argo.
  • تصميم معماري أصيل للسحابة.

المجتمع والنظام البيئي

الدعم الأكاديمي

النظام البيئي مفتوح المصدر

يحتوي SQLFlow على نظام بيئي كامل مفتوح المصدر:

  • المشروع الرئيسي: sql-machine-learning/sqlflow
  • عميل Python: sql-machine-learning/pysqlflow
  • تكامل Zeppelin: sql-machine-learning/zeppelin-sqlflow
  • الموقع الرسمي: sql-machine-learning.github.io

سيناريوهات التطبيق

SQLFlow مناسب بشكل خاص للسيناريوهات التالية:

  • فرق تحليل البيانات على مستوى المؤسسة التي ترغب في تقليل حاجز تطوير ML.
  • سيناريوهات الأعمال التي تتطلب إجراء التعلم الآلي مباشرة في استعلامات SQL.
  • المؤسسات التي ترغب في توحيد معالجة البيانات ومهام سير عمل التعلم الآلي.
  • الشركات التي تحتاج إلى حلول ML قابلة للتطوير وأصلية للسحابة.

ملخص

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