سجل نماذج التعلم الآلي باستخدام PREDICT

توفر لك مجموعة SQL المخصصة القدرة على تسجيل نماذج التعلم الآلي باستخدام لغة T-SQL المألوفة. باستخدام T-SQL PREDICT، يمكنك جلب نماذج التعلم الآلي الحالية المدربة بالبيانات التاريخية وتسجيلها ضمن الحدود الآمنة لمستودع البيانات الخاص بك. تأخذ وظيفة PREDICT نموذج ONNX (تبادل الشبكة العصبية المفتوح) والبيانات كمدخلات. تلغي هذه الميزة مسارات نقل البيانات القيمة خارج مستودع البيانات لتسجيل النقاط. ويهدف إلى تمكين محترفي البيانات من نشر نماذج التعلم الآلي بسهولة باستخدام واجهة T-SQL المألوفة بالإضافة إلى التعاون بسلاسة مع علماء البيانات الذين يعملون مع الإطار المناسب لمهمتهم.

ملاحظة

هذه الوظيفة غير مدعومة حاليا في تجمع SQL بدون خادم.

تتطلب الوظيفة تدريب النموذج خارج Synapse SQL. بعد إنشاء النموذج ، قم بتحميله في مستودع البيانات وتسجيله باستخدام بناء جملة T-SQL Predict للحصول على رؤى من البيانات.

predictoverview

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

يتوقع تجمع SQL المخصص نموذجا مدربا مسبقا. ضع العوامل التالية في الاعتبار عند تدريب نموذج التعلم الآلي المستخدم لإجراء التنبؤات في مجموعة SQL مخصصة.

  • يدعم تجمع SQL المخصص نماذج تنسيق ONNX فقط. إن ONNX هو تنسيق نموذج مفتوح المصدر يسمح لك بتبادل النماذج بين أطر العمل المختلفة لتمكين التشغيل المتداخل. يمكنك تحويل نماذجك الحالية إلى تنسيق ONNX باستخدام أطر العمل التي تدعمها أصلا أو تتوفر بها حزم تحويل. على سبيل المثال، تقوم حزمة sklearn-onnx بتحويل نماذج scikit-learn إلى ONNX. يوفر مستودع ONNX GitHub قائمة بالأطر والأمثلة المدعومة.

    إذا كنت تستخدم ML التلقائي للتدريب، فتأكد من تعيين معلمة enable_onnx_compatible_models إلى TRUE لإنتاج نموذج تنسيق ONNX. يعرض دفتر ملاحظات التعلم الآلي الآلي مثالا على كيفية استخدام التعلم الآلي الآلي لإنشاء نموذج تعلم آلي بتنسيق ONNX.

  • يتم دعم أنواع البيانات التالية لبيانات الإدخال:

    • int ، bigint ، حقيقي ، تعويم
    • شار ، فارشار ، نفارشار
  • يجب أن تكون بيانات التسجيل بنفس تنسيق بيانات التدريب. أنواع البيانات المعقدة مثل المصفوفات متعددة الأبعاد غير مدعومة بواسطة PREDICT. لذلك ، للتدريب ، تأكد من أن كل إدخال من مدخلات النموذج يتوافق مع عمود واحد من جدول التسجيل بدلا من تمرير صفيف واحد يحتوي على جميع المدخلات.

  • تأكد من تطابق أسماء مدخلات النموذج وأنواعها مع أسماء الأعمدة وأنواع البيانات الخاصة ببيانات التنبؤ الجديدة. يمكن أن يساعد تصور نموذج ONNX باستخدام العديد من الأدوات مفتوحة المصدر المتاحة عبر الإنترنت في تصحيح الأخطاء.

تحميل النموذج

يتم تخزين النموذج في جدول مستخدم مجموعة SQL مخصصة كسلسلة سداسية عشرية. يمكن إضافة أعمدة إضافية مثل المعرف والوصف في جدول النموذج لتعريف النموذج. استخدم ثنائيّاً متغيراً (الحد الأقصى) كنوع بيانات عمود النموذج. وفيما يلي مثال على رمز لجدول يمكن استخدامه لتخزين النماذج:

-- Sample table schema for storing a model and related data
CREATE TABLE [dbo].[Models]
(
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Model] [varbinary](max) NULL,
    [Description] [varchar](200) NULL
)
WITH
(
    DISTRIBUTION = ROUND_ROBIN,
    HEAP
)
GO

بمجرد تحويل النموذج إلى سلسلة سداسية عشرية وتحديد تعريف الجدول، استخدم الأمر COPY أو Polybase لتحميل النموذج في جدول مجموعة SQL المخصص. يستخدم نموذج التعليمات البرمجية التالي الأمر Copy لتحميل النموذج.

-- Copy command to load hexadecimal string of the model from Azure Data Lake storage location
COPY INTO [Models] (Model)
FROM '<enter your storage location>'
WITH (
    FILE_TYPE = 'CSV',
    CREDENTIAL=(IDENTITY= 'Shared Access Signature', SECRET='<enter your storage key here>')
)

تسجيل النموذج

بمجرد تحميل النموذج والبيانات إلى مستودع البيانات، استخدم وظيفة T-SQL PREDICT لتسجيل النموذج. تأكد من أن بيانات الإدخال الجديدة بنفس تنسيق بيانات التدريب المستخدمة لبناء النموذج. يأخذ T-SQL PREDICT مدخلين: النموذج وبيانات إدخال تسجيل النقاط الجديدة ، ويولد أعمدة جديدة للمخرجات. يمكن تحديد النموذج كمتغير أو حرفي أو عددي sub_query. استخدم WITH common_table_expression لتحديد مجموعة نتائج معينة لمعلمة البيانات.

يوضح المثال أدناه نموذج استعلام باستخدام دالة التنبؤ. يتم إنشاء عمود إضافي باسم Scoreوتعويم نوع البيانات يحتوي على نتائج التنبؤ. تتوفر جميع أعمدة بيانات الإدخال وكذلك أعمدة التنبؤ بالمخرجات للعرض باستخدام عبارة التحديد. لمزيدٍ من التفاصيل، انظر PREDICT (Transact-SQL).

-- Query for ML predictions
SELECT d.*, p.Score
FROM PREDICT(MODEL = (SELECT Model FROM Models WHERE Id = 1),
DATA = dbo.mytable AS d, RUNTIME = ONNX) WITH (Score float) AS p;

الخطوات التالية

لمعرفة المزيد حول الدالة PREDICT، راجع PREDICT (SQL المعاملات).