Bagikan melalui


Mencetak model pembelajaran mesin dengan PREDICT

Kumpulan SQL khusus memberi Anda kemampuan untuk mencetak model pembelajaran mesin menggunakan bahasa T-SQL yang akrab. Dengan T-SQL PREDICT,Anda dapat membawa model pembelajaran mesin yang ada yang dilatih dengan data historis dan mencetaknya dalam batas aman gudang data Anda. Fungsi Predict mengambil model ONNX (Open Neural Network Exchange) dan data sebagai input. Fitur ini menghilangkan langkah memindahkan data berharga di luar gudang data untuk mencetak gol. Ini bertujuan untuk memberdayakan para profesional data untuk dengan mudah menyebarkan model pembelajaran mesin dengan antarmuka T-SQL yang akrab serta berkolaborasi dengan mulus dengan para ilmuwan data yang bekerja dengan kerangka kerja yang tepat untuk tugas mereka.

Catatan

Fungsionalitas ini saat ini tidak didukung dalam kumpulan SQL tanpa server.

Fungsionalitas mengharuskan model dilatih di luar Synapse SQL. Setelah membangun model, masukkan ke gudang data dan cetak dengan sintaksis T-SQL Predict untuk mendapatkan wawasan dari data.

prediksi

Melatih model

Kumpulan SQL khusus mengharapkan model yang telah dilatih sebelumnya. Ingatlah faktor-faktor berikut saat melatih model pembelajaran mesin yang digunakan untuk melakukan prediksi di kumpulan SQL khusus.

  • Kumpulan SQL khusus hanya mendukung model format ONNX. ONNX adalah format model sumber terbuka yang memungkinkan Anda bertukar model di antara berbagai kerangka kerja untuk memungkinkan interoperabilitas. Anda dapat mengonversi model yang ada ke format ONNX menggunakan kerangka kerja yang mendukungnya secara asli atau memiliki paket konversi yang tersedia. Misalnya, paket sklearn-onnx mengonversi model scikit-learn ke ONNX. Repositori ONNX GitHub menyediakan daftar kerangka kerja dan contoh yang didukung.

    Jika Anda menggunakan ML Otomatis untuk pelatihan, pastikan untuk mengatur parameter enable_onnx_compatible_models ke TRUE untuk menghasilkan model format ONNX. Notebook Pembelajaran Mesin Otomatis memperlihatkan contoh cara menggunakan ML otomatis untuk membuat model pembelajaran mesin format ONNX.

  • Jenis data berikut ini didukung untuk data input:

    • int, bigint, real, float
    • char, varchar, nvarchar
  • Data penilaian harus dalam format yang sama dengan data pelatihan. jenis data kompleks seperti array multi-dimensi tidak didukung oleh PREDICT. Jadi, untuk pelatihan pastikan bahwa setiap input model sesuai dengan satu kolom tabel penilaian alih-alih melewati array tunggal yang berisi semua input.

  • Pastikan bahwa nama dan jenis data input model cocok dengan nama kolom dan jenis data dari data prediksi baru. Memvisualisasikan model ONNX menggunakan berbagai alat sumber terbuka yang tersedia secara daring dapat membantu penelusuran kesalahan lebih lanjut.

Memuat model

Model disimpan dalam tabel pengguna kumpulan SQL khusus sebagai string heksadesimal. Kolom tambahan seperti ID dan deskripsi dapat ditambahkan dalam tabel model untuk mengidentifikasi model. Gunakan varbinary(max) sebagai tipe data kolom model. Berikut adalah contoh kode untuk tabel yang dapat digunakan untuk menyimpan model:

-- 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

Setelah model dikonversi menjadi string heksadesimal dan definisi tabel yang ditentukan, gunakan perintah COPY atau Polybase untuk memuat model dalam tabel kumpulan SQL khusus. Contoh kode berikut menggunakan perintah Salin untuk memuat model.

-- 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>')
)

Menilai model

Setelah model dan data dimuat di gudang data, gunakan fungsi T-SQL PREDICT untuk mencetak model. Pastikan bahwa data input baru berada dalam format yang sama dengan data pelatihan yang digunakan untuk membangun model. T-SQL PREDICT mengambil dua input: model dan data input penilaian baru, dan menghasilkan kolom baru untuk output. Model dapat ditentukan sebagai variabel, literal atau skalar sub_query. Gunakan common_table_expression WITH untuk menentukan kumpulan hasil bernama untuk parameter data.

Contoh di bawah ini memperlihatkan contoh kueri menggunakan fungsi prediksi. Kolom tambahan dengan nama Skor dan jenis data float dibuat berisi hasil prediksi. Semua kolom data input serta kolom prediksi output tersedia untuk ditampilkan dengan pernyataan pemilihan. Untuk detail selengkapnya, lihat PREDIKSI (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;

Langkah berikutnya

Untuk mempelajari selengkapnya tentang fungsi PREDICT, lihat PREDICT (Transact-SQL).