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

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

ملاحظة

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

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

عرض توقعي

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

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

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

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

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

    • int, bigint, real, float
    • char, varchar, nvarchar
  • يجب أن تكون بيانات التسجيل بنفس تنسيق بيانات التدريب. لا يدعم 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 مدخلين: نموذج وبيانات إدخال تسجيل جديدة، وينشئ أعمدة جديدة للمخرجات. يمكن تحديد النموذج كمتغير أو حرفي أو استعلام فرعي عددي. استخدم WITH common_table_expression لتحديد مجموعة نتائج معينة لمعلمة البيانات.

يوضح المثال أدناه نموذج استعلام باستخدام وظيفة التوقع. يتم إنشاء عمود إضافي باسم Score ونوع البيانات float يحتوي على نتائج التوقع. جميع أعمدة بيانات الإدخال بالإضافة إلى أعمدة توقع المخرجات متاحة للعرض مع جملة التحديد. لمزيدٍ من التفاصيل، انظر 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 (Transact-SQL).