Aracılığıyla paylaş


SQL Server'da önceden eğitilmiş makine öğrenmesi modellerini yükleme

Şunlar için geçerlidir: SQL Server 2016 (13.x) SQL Server 2017 (14.x) SQL Server 2019 (15.x)

Bu makale SQL Server 2016 (13.x), SQL Server 2017 (14.x) ve SQL Server 2019 (15.x) için geçerlidir.

Bu makalede, R veya Python tümleştirmesi olan bir SQL Server örneğine yaklaşım analizi ve görüntü özellikleri için ücretsiz önceden eğitilmiş makine öğrenmesi modelleri eklemek için PowerShell'in nasıl kullanılacağı açıklanmaktadır. Önceden eğitilen modeller, Microsoft tarafından oluşturulur ve kullanıma hazır olarak bir örneğe yükleme sonrası görev olarak eklenir. Bu modeller hakkında daha fazla bilgi için bu makalenin Kaynaklar bölümüne bakın.

SQL Server 2022 'den (16.x) başlayarak, R, Python ve Java çalışma zamanları artık SQL Kurulumu ile yüklenmez. Bunun yerine, istediğiniz R ve/veya Python özel çalışma zamanlarını ve paketlerini yükleyin. Daha fazla bilgi için bkz. Windows'a SQL Server 2022 Machine Learning Services(Python ve R) yükleme .

Yüklendikten sonra, önceden eğitilen modeller MicrosoftML (R) ve microsoftml (Python) kitaplıklarındaki belirli işlevleri destekleyen bir uygulama ayrıntısı olarak kabul edilir. Modelleri görüntülememeli, özelleştirmemeli veya yeniden eğitmemelisiniz veya bunları özel kodda veya eşleştirilmiş diğer işlevlerde bağımsız bir kaynak olarak kabul edemezsiniz.

Önceden eğitilmiş modelleri kullanmak için aşağıdaki tabloda listelenen işlevleri çağırın.

R işlevi (MicrosoftML) Python fonksiyonu (microsoftml) Usage
getSentiment get_sentiment Metin girişleri üzerinde pozitif-negatif yaklaşım puanı oluşturur.
featurizeImage featurize_image Resim dosyası girişlerinden metin bilgilerini ayıklar.

Prerequisites

Makine öğrenmesi algoritmaları hesaplama açısından yoğundur. Tüm örnek verileri kullanarak öğretici kılavuzunun tamamlanması dahil olmak üzere düşük-orta düzey iş yükleri için 16 GB RAM öneririz.

Önceden eğitilmiş modeller eklemek için bilgisayarda ve SQL Server'da yönetici haklarına sahip olmanız gerekir.

Dış betiklerin etkinleştirilmesi ve SQL Server LaunchPad hizmetinin çalışıyor olması gerekir. Yükleme yönergeleri, bu özellikleri etkinleştirme ve doğrulama adımlarını sağlar.

SQL Server sürümünüz için en son toplu güncelleştirmeyi indirin ve yükleyin. Bkz. Microsoft SQL Server için en son güncelleştirmeler.

MicrosoftML R paketi veya microsoftml Python paketi önceden eğitilmiş modelleri içerir.

SQL Server Machine Learning Services , makine öğrenmesi kitaplığının her iki dil sürümünü de içerdiğinden bu önkoşul sizin için başka bir işlem yapılmadan karşılanır. Kitaplıklar mevcut olduğundan, bu kitaplıklara önceden eğitilmiş modelleri eklemek için bu makalede açıklanan PowerShell betiğini kullanabilirsiniz.

MicrosoftML R paketi , önceden eğitilmiş modelleri içerir.

Yalnızca R olan SQL Server R Services, MicrosoftML paketini kullanıma sunmaz. MicrosoftML eklemek için bir bileşen yükseltmesi yapmanız gerekir. Bileşen yükseltmesinin avantajlarından biri, powershell betiğini çalıştırmayı gereksiz hale getiren önceden eğitilmiş modelleri aynı anda ekleyebilmenizdir. Ancak, önceden yükselttiyseniz ancak önceden eğitilmiş modelleri ilk kez eklemeyi kaçırdıysanız, PowerShell betiğini bu makalede açıklandığı gibi çalıştırabilirsiniz. Sql Server'ın her iki sürümünde de çalışır. Bunu gerçekleştirmeden önce, MicrosoftML kitaplığının C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library konumunda mevcut olup olmadığını onaylayın.

Önceden eğitilmiş modellerin yüklü olup olmadığını kontrol edin

R ve Python modelleri için yükleme yolları aşağıdaki gibidir:

  • R için: C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\MicrosoftML\mxLibs\x64

  • Python için: C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\Lib\site-packages\microsoftml\mxLibs

Model dosyası adları aşağıdaki listede yer alıyor:

  • AlexNet_Updated.model
  • ImageNet1K_mean.xml
  • pretrained.model
  • ResNet_101_Updated.model
  • ResNet_18_Updated.model
  • ResNet_50_Updated.model

Modeller zaten yüklüyse, kullanılabilirliği onaylamak için doğrulama adımına atlayın.

Yükleme betiğini indirme

https://aka.ms/mlm4sql Install-MLModels.ps1 dosyasını indirmek için web adresini ziyaret edin. GitHub sayfasında Ham dosyayı indir'i seçin.

Yükseltilmiş ayrıcalıklarla çalıştır

  1. PowerShell'i başlatın. Görev çubuğunda PowerShell programı simgesine sağ tıklayın ve Yönetici olarak çalıştır'ı seçin.

  2. Yükleme sırasında önerilen yürütme ilkesi "RemoteSigned" şeklindedir. PowerShell yürütme ilkesini ayarlama hakkında daha fazla bilgi için bkz . Set-ExecutionPolicy. Örneğin:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Yükleme betiği dosyasının tam yolunu girin ve örnek adını ekleyin. İndirilenler klasörünü ve varsayılan bir örneği varsayarsak, komut aşağıdaki gibi görünebilir:

    PS C:\WINDOWS\system32> C:\Users\<user-name>\Downloads\Install-MLModels.ps1 MSSQLSERVER
    

Output

R ve Python ile İnternet'e bağlı bir SQL Server Machine Learning Services varsayılan örneğinde aşağıdakine benzer iletiler görmeniz gerekir.

MSSQL14.MSSQLSERVER
     Verifying R models [9.2.0.24]
     Downloading R models [C:\Users\<user-name>\AppData\Local\Temp]
     Installing R models [C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\]
     Verifying Python models [9.2.0.24]
     Installing Python models [C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\]
PS C:\WINDOWS\system32>

Yüklemeyi doğrulama

İlk olarak , mxlibs klasöründeki yeni dosyaları denetleyin. Ardından, modellerin yüklendiğini ve işlevsel olduğunu onaylamak için tanıtım kodunu çalıştırın.

R doğrulama adımları

  1. RGUI.EXE'yi C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64başlatın.

  2. Komut isteminde aşağıdaki R betiğini yapıştırın.

    # Create the data
    CustomerReviews <- data.frame(Review = c(
    "I really did not like the taste of it",
    "It was surprisingly quite good!",
    "I will never ever ever go to that place again!!"),
    stringsAsFactors = FALSE)
    
    # Get the sentiment scores
    sentimentScores <- rxFeaturize(data = CustomerReviews, 
                                    mlTransforms = getSentiment(vars = list(SentimentScore = "Review")))
    
    # Let's translate the score to something more meaningful
    sentimentScores$PredictedRating <- ifelse(sentimentScores$SentimentScore > 0.6, 
                                            "AWESOMENESS", "BLAH")
    
    # Let's look at the results
    sentimentScores
    
  3. Yaklaşım puanlarını görüntülemek için Enter tuşuna basın. Çıktı aşağıdaki gibi olmalıdır:

    > sentimentScores
                                            Review SentimentScore
    1           I really did not like the taste of it      0.4617899
    2                 It was surprisingly quite good!      0.9601924
    3 I will never ever ever go to that place again!!      0.3103435
    PredictedRating
    1            BLAH
    2     AWESOMENESS
    3            BLAH
    

Python doğrulama adımları

  1. adresindenPython.exeC:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICESbaşlatın.

  2. Komut isteminde aşağıdaki Python betiğini yapıştırın.

    import numpy
    import pandas
    from microsoftml import rx_logistic_regression, rx_featurize, rx_predict, get_sentiment
    
    # Create the data
    customer_reviews = pandas.DataFrame(data=dict(review=[
                "I really did not like the taste of it",
                "It was surprisingly quite good!",
                "I will never ever ever go to that place again!!"]))
    
    # Get the sentiment scores
    sentiment_scores = rx_featurize(
        data=customer_reviews,
        ml_transforms=[get_sentiment(cols=dict(scores="review"))])
    
    # Let's translate the score to something more meaningful
    sentiment_scores["eval"] = sentiment_scores.scores.apply(
                lambda score: "AWESOMENESS" if score > 0.6 else "BLAH")
    print(sentiment_scores)
    
  3. Puanları yazdırmak için Enter tuşuna basın. Çıktı aşağıdaki gibi olmalıdır:

    >>> print(sentiment_scores)
                                                review    scores         eval
    0            I really did not like the taste of it  0.461790         BLAH
    1                  It was surprisingly quite good!  0.960192  AWESOMENESS
    2  I will never ever ever go to that place again!!  0.310344         BLAH
    >>>
    

Note

Tanıtım betikleri başarısız olursa, önce dosya konumunu denetleyin. BIRDEN çok SQL Server örneğine sahip sistemlerde veya tek başına sürümlerle yan yana çalışan örneklerde, yükleme betiğinin ortamı yanlış okuması ve dosyaları yanlış konuma yerleştirmesi mümkündür. Genellikle, dosyaları el ile doğru mxlib klasörüne kopyalamak sorunu çözer.

Önceden eğitilmiş modellerin kullanıldığı örnekler

Aşağıdaki bağlantı, önceden eğitilen modelleri çağıran örnek kodu içerir.

Araştırma ve kaynaklar

Şu anda kullanılabilen modeller yaklaşım analizi ve görüntü sınıflandırması için derin sinir ağı (DNN) modelleridir. Önceden eğitilen tüm modeller Microsoft'un Hesaplama Ağı Araç Seti (CNTK) kullanılarak eğitilmiştir.

Her ağın yapılandırması aşağıdaki başvuru uygulamalarına dayanıyordu:

  • ResNet-18
  • ResNet-50
  • ResNet-101
  • AlexNet

Bu derin öğrenme modellerinde kullanılan algoritmalar ve CNTK kullanılarak nasıl uygulanıp eğitildikleri hakkında daha fazla bilgi için şu makalelere bakın: