Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri
SQL Server'da, yüksek performanslı tahminler veya öngörü iş yüklerinde puanlama sonuçları için sp_rxPredict sistem saklı yordamını kullanarak gerçek zamanlı puanlamanın nasıl gerçekleştirileceğini öğrenin.
Gerçek zamanlı puanlama sp_rxPredict dil bağımsızdır ve Machine Learning Services'te R veya Python çalışma zamanlarına bağımlılık olmadan çalışır. Microsoft fonksiyonları kullanılarak oluşturulan ve eğitilen ve SQL Server'da ikili formata serileştirilen bir model kullanarak, R veya Python eklentisi olmayan SQL Server örneklerinde yeni veri girişlerinde öngörülen sonuçlar elde etmek için gerçek zamanlı puanlama kullanabilirsiniz.
Gerçek zamanlı puanlama nasıl çalışır
Gerçek zamanlı puanlama, RevoScaleR veya MicrosoftML (R) veya Python'daki revoscalepy veya microsoftml fonksiyonlarına dayalı belirli model tiplerinde desteklenir. Özel ikili formatta depolanan makine öğrenimi modeline sağlanan kullanıcı girdisine dayalı puanlar oluşturmak için yerel C++ kütüphaneleri kullanır.
Eğitimli bir model, Machine Learning Services'te harici bir dil çalışma zamanı çağırmadan puanlama için kullanılabildiği için, birden fazla işlemin ek maliyeti azalır.
Gerçek zamanlı puanlama çok aşamalı bir süreçtir:
- Veritabanı başına puanlama yapan kayıtlı prosedürü etkinleştirirsiniz.
- Önden eğitilmiş modeli ikili formatta yüklüyorsunuz.
- Modele girdi olarak tablo ya da tek satırlı olarak puanlanacak yeni giriş verileri sağlarsınız.
- Puan oluşturmak için sp_rxPredict stored prosedürünü çağırın.
Prerequisites
Model, desteklenen rx algoritmalarından biri kullanılarak önceden eğitilmelidir. Detaylar için, Desteklenen algoritmalar
sp_rxPredictiçin bkz.R için rxSerialize veya Python için rx_serialize_model kullanarak modeli seri hale getirin. Bu serileştirme işlevleri, hızlı puanlama desteği için iyileştirilmiştir.
Modeli, çağırmak istediğiniz veritabanı motoru örneğine kaydedin. Bu örnek R veya Python çalışma zamanı uzantısı gerektirmez.
Note
Gerçek zamanlı puanlama şu anda birkaç satırdan yüz binlerce satıra kadar değişen küçük veri setlerinde hızlı tahminler için optimize edilmiştir. Büyük veri setlerinde rxPredict kullanmak daha hızlı olabilir.
Gerçek zamanlı puanlama etkinleştirin
Puanlamak için kullanmak istediğiniz her veritabanı için bu özelliği etkinleştirin. Sunucu yöneticisi, RevoScaleR paketiyle birlikte gelen komut satırı RegisterRExt.exearacını çalıştırmalıdır.
Caution
Gerçek zamanlı puanlamanın çalışabilmesi için, örnekte SQL CLR işlevselliği etkinleştirilmeli ve veritabanının güvenilir olarak işaretlenmesi gerekir. Scripti çalıştırdığınızda, bu işlemler sizin için gerçekleştirilir. Ancak, bunu yapmadan önce ek güvenlik sorunlarını dikkatlice düşünün.
Yükseltilmiş komut isteğini açın ve RegisterRExt.exe bulunduğu klasöre gidin. Varsayılan kurulumda aşağıdaki yol kullanılabilir:
<SQLInstancePath>\R_SERVICES\library\RevoScaleR\rxLibs\x64\Genişletilmiş depolanmış prosedürleri etkinleştirmek istediğiniz örnek adını ve hedef veritabanını değiştirerek aşağıdaki komutu çalıştırın:
RegisterRExt.exe /installRts [/instance:name] /database:databasenameÖrneğin, genişletilmiş depolanmış prosedürü varsayılan örnekte CLRPredict veritabanına eklemek için şunu yazın:
RegisterRExt.exe /installRts /database:CLRPRedictVeritabanı varsayılan örnekte ise, örnek adı isteğe bağlıdır. Eğer adlandırılmış bir örnek kullanıyorsanız, örnek adını belirtin.
RegisterRExt.exe aşağıdaki nesneleri yaratır:
- Güvenilir meclisler
- Depolanmış prosedür
sp_rxPredict - Yeni bir veritabanı rolü,
rxpredict_users. Veritabanı yöneticisi, bu rolü gerçek zamanlı puanlama işlevini kullanan kullanıcılara izin vermek için kullanabilir.
sp_rxPredictöğesini çalıştırması gereken kullanıcıları yeni role ekleyin.
Note
SQL Server 2017 ve sonrasında, CLR entegrasyonunda sorunları önlemek için ek güvenlik önlemleri uygulanmıştır. Bu önlemler, bu depolanmış prosedürün kullanımına ek kısıtlamalar da getirir.
Gerçek zamanlı puanlamayı devre dışı bırakın
Gerçek zamanlı puanlama işlevini devre dışı bırakmak için, yükseltilmiş komut diziyi açın ve aşağıdaki komutu çalıştırın: RegisterRExt.exe /uninstallrts /database:<database_name> [/instance:name]
Example
Bu örnek, gerçek zamanlı tahmin için bir modeli hazırlamak ve kaydetmek için gereken adımları açıklar ve R'de fonksiyonun T-SQL'den nasıl çağrılacağına dair bir örnek sunar.
Adım 1. Modeli hazırlama ve kaydetme
sp_rxPredict tarafından gerekli olan ikili format, PREDICT fonksiyonunu kullanmak için gereken formatla aynıdır. Bu nedenle, R kodunuza rxSerializeModel çağrısı ekleyin ve realtimeScoringOnly = TRUEbu örnekte olduğu gibi , belirttiğinizden emin olun:
model <- rxSerializeModel(model.name, realtimeScoringOnly = TRUE)
Adım 2. Çağır sp_rxPredict
Diğer kayıtlı işlemler gibi çağırırsınız sp_rxPredict . Mevcut sürümde, saklanan prosedür yalnızca iki parametre alır: @model ikili formatta model için ve geçerli bir SQL sorgusu olarak tanımlanan puanlamada kullanılan veri için @inputData .
İkili format PREDICT fonksiyonunun kullandığı ile aynı olduğundan, önceki örnekten modelleri ve veri tablosunu kullanabilirsiniz.
DECLARE @irismodel varbinary(max)
SELECT @irismodel = [native_model_object] from [ml_models]
WHERE model_name = 'iris.dtree'
AND model_version = 'v1'
EXEC sp_rxPredict
@model = @irismodel,
@inputData = N'SELECT * FROM iris_rx_data'
Note
Puanlama için girdi verisi modelin gereksinimlerine uyan sütunları içermiyorsa çağrı sp_rxPredict başarısız olur. Şu anda yalnızca aşağıdaki .NET veri türleri desteklenmektedir: double, float, short, ushort, long, ulong ve string.
Bu nedenle, gerçek zamanlı puanlama için kullanmadan önce giriş verinizdeki desteklenmeyen türleri filtrelemeniz gerekebilir.
İlgili SQL türleri hakkında bilgi için SQL-CLR Tür Eşleme veya CLR Parametre Verilerinin Eşlenmesi bölümüne bakın.
İlgili içerik
- SQL makine öğrenimi ile PREDICT T-SQL fonksiyonu kullanılarak yerel puanlama
- sp_rxPredict
- SQL makine öğrenmesi