Aracılığıyla paylaş


PREDICT ile makine öğrenmesi modellerini puanla

Ayrılmış SQL havuzu, makine öğrenmesi modellerini tanıdık T-SQL dilini kullanarak puan verme olanağı sağlar. T-SQL PREDICT ile geçmiş verilerle eğitilmiş mevcut makine öğrenmesi modellerinizi getirebilir ve bunları veri ambarınızın güvenli sınırları içinde puanlayabilirsiniz. PREDICT işlevi bir ONNX (Açık Nöral Ağ Değişimi) modeli ve verileri giriş olarak alır. Bu özellik, değerli verileri puanlama için veri ambarı dışına taşıma adımını ortadan kaldırır. Veri uzmanlarının makine öğrenmesi modellerini tanıdık T-SQL arabirimiyle kolayca dağıtmalarını ve görevleri için doğru çerçeveyle çalışan veri bilimcileriyle sorunsuz işbirliği yapmalarını sağlamayı amaçlar.

Not

Bu işlev şu anda sunucusuz SQL havuzunda desteklenmiyor.

İşlevsellik, modelin Synapse SQL dışında eğitilmiş olmasını gerektirir. Modeli derledikten sonra veri ambarı içine yükleyin ve verilerden içgörüler elde etmek için T-SQL Tahmin söz dizimi ile puanlayın.

predictoverview

Modeli Eğitma

Ayrılmış SQL havuzu önceden eğitilmiş bir model bekler. Ayrılmış SQL havuzunda tahmin gerçekleştirmek için kullanılan bir makine öğrenmesi modelini eğitirken aşağıdaki faktörleri göz önünde bulundurun.

  • Ayrılmış SQL havuzu yalnızca ONNX biçim modellerini destekler. ONNX, birlikte çalışabilirliği etkinleştirmek için çeşitli çerçeveler arasında model alışverişi yapmanızı sağlayan bir açık kaynak model biçimidir. Yerel olarak destekleyen veya dönüştürme paketlerinin kullanılabilir olduğu çerçeveleri kullanarak mevcut modellerinizi ONNX biçimine dönüştürebilirsiniz. Örneğin, sklearn-onnx paketi scikit-learn modellerini ONNX'e dönüştürür. ONNX GitHub deposu desteklenen çerçevelerin ve örneklerin listesini sağlar.

    Eğitim için Otomatik ML kullanıyorsanız, bir ONNX biçim modeli oluşturmak için enable_onnx_compatible_models parametresini TRUE olarak ayarladığınızdan emin olun. Otomatik Makine Öğrenmesi Not Defteri , ONNX biçiminde bir makine öğrenmesi modeli oluşturmak için otomatik ML'nin nasıl kullanılacağını gösteren bir örnek gösterir.

  • Giriş verileri için aşağıdaki veri türleri desteklenir:

    • int, bigint, real, float (bu terimler programlama veri türleridir)
    • char, varchar, nvarchar
  • Puanlama verilerinin eğitim verileriyle aynı biçimde olması gerekir. Çok boyutlu diziler gibi karmaşık veri türleri PREDICT tarafından desteklenmez. Bu nedenle eğitim için, modelin her girişinin tüm girişleri içeren tek bir dizi geçirmek yerine puanlama tablosunun tek bir sütununa karşılık olduğundan emin olun.

  • Model girişlerinin adlarının ve veri türlerinin yeni tahmin verilerinin sütun adları ve veri türleriyle eşleştiğinden emin olun. Çevrimiçi ortamda kullanılabilen çeşitli açık kaynak araçları kullanarak bir ONNX modelini görselleştirmek hata ayıklama konusunda daha fazla yardımcı olabilir.

Modeli yükleme

Model, ayrılmış bir SQL havuzu kullanıcı tablosunda onaltılık dize olarak depolanır. Modeli tanımlamak için model tablosuna kimlik ve açıklama gibi ek sütunlar eklenebilir. Model sütununun veri türü olarak varbinary(max) kullanın. Modelleri depolamak için kullanılabilecek bir tablo için kod örneği aşağıda verilmiştir:

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

Model onaltılık bir dizeye ve belirtilen tablo tanımına dönüştürüldükten sonra, modeli ayrılmış SQL havuzu tablosuna yüklemek için COPY komutunu veya Polybase'i kullanın. Aşağıdaki kod örneği, modeli yüklemek için Kopyala komutunu kullanır.

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

Modeli puanlama

Model ve veriler veri ambarında yüklendikten sonra, modeli puanlarken T-SQL PREDICT işlevini kullanın. Yeni giriş verilerinin modeli oluşturmak için kullanılan eğitim verileriyle aynı biçimde olduğundan emin olun. T-SQL PREDICT iki giriş alır: model ve yeni puanlama giriş verileri ve çıkış için yeni sütunlar oluşturur. Model değişken, değişmez değer veya skaler sub_query olarak belirtilebilir. Veri parametresi için adlandırılmış bir sonuç kümesi belirtmek üzere WITH common_table_expression kullanın.

Aşağıdaki örnekte tahmin işlevini kullanan bir örnek sorgu gösterilmektedir. Tahmin sonuçlarını içeren Score adlı ve veri türü float olan ek bir sütun oluşturulur. Tüm giriş veri sütunlarının yanı sıra çıkış tahmin sütunları select deyimiyle görüntülenebilir. Daha fazla ayrıntı için bkz . 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;

Sonraki adımlar

PREDICT işlevi hakkında daha fazla bilgi edinmek için bkz . PREDICT (Transact-SQL).