Bagikan melalui


Menginstal model pembelajaran mesin yang telah dilatih sebelumnya di SQL Server

Berlaku untuk: SQL Server 2016 (13.x), SQL Server 2017 (14.x), dan SQL Server 2019 (15.x)

Artikel ini berlaku untuk SQL Server 2016 (13.x), SQL Server 2017 (14.x), dan SQL Server 2019 (15.x).

Artikel ini menjelaskan cara menggunakan PowerShell untuk menambahkan model pembelajaran mesin gratis yang telah dilatih sebelumnya untuk analisis sentimen dan fiturisasi gambar ke instans SQL Server yang memiliki integrasi R atau Python. Model yang telah dilatih dibuat oleh Microsoft dan siap digunakan, ditambahkan ke instans sebagai tugas pasca-instal. Untuk informasi selengkapnya tentang model ini, lihat bagian Sumber Daya di artikel ini.

Dimulai dengan SQL Server 2022 (16.x), runtime untuk R, Python, dan Java, tidak lagi diinstal dengan Penyiapan SQL. Sebagai gantinya, instal runtime dan paket kustom R dan/atau Python yang Anda inginkan. Untuk informasi selengkapnya, lihat Menginstal SQL Server 2022 Pembelajaran Mesin Services (Python dan R) di Windows.

Setelah diinstal, model yang telah dilatih dianggap sebagai detail implementasi yang mendukung fungsi tertentu di pustaka MicrosoftML (R) dan microsoftml (Python). Anda tidak boleh (dan tidak dapat) melihat, menyesuaikan, atau melatih kembali model, Anda juga tidak dapat memperlakukannya sebagai sumber daya independen dalam kode kustom atau memasangkan fungsi lain.

Untuk menggunakan model yang telah dilatih sebelumnya, panggil fungsi yang tercantum dalam tabel berikut.

Fungsi R (MicrosoftML) Fungsi Python (microsoftml) Penggunaan
getSentiment get_sentiment Menghasilkan skor sentimen positif-negatif atas input teks.
featurizeImage featurize_image Mengekstrak informasi teks dari input file gambar.

Prasyarat

Algoritma pembelajaran mesin secara komputasi intensif. Kami merekomendasikan RAM 16 GB untuk beban kerja rendah hingga sedang, termasuk penyelesaian panduan tutorial menggunakan semua data sampel.

Anda harus memiliki hak administrator di komputer dan SQL Server untuk menambahkan model yang telah dilatih sebelumnya.

Skrip eksternal harus diaktifkan dan layanan LaunchPad SQL Server harus berjalan. Instruksi penginstalan menyediakan langkah-langkah untuk mengaktifkan dan memverifikasi kemampuan ini.

Unduh dan instal pembaruan kumulatif terbaru untuk versi SQL Server Anda. Lihat Pembaruan terbaru untuk Microsoft SQL Server.

Paket MicrosoftML R atau paket microsoftml Python berisi model yang telah dilatih sebelumnya.

Layanan Pembelajaran Mesin SQL Server mencakup kedua versi bahasa pustaka pembelajaran mesin, sehingga prasyarat ini terpenuhi tanpa tindakan lebih lanjut di bagian Anda. Karena pustaka ada, Anda bisa menggunakan skrip PowerShell yang dijelaskan dalam artikel ini untuk menambahkan model yang telah dilatih sebelumnya ke pustaka ini.

Paket MicrosoftML R berisi model yang telah dilatih sebelumnya.

Layanan R SQL Server, yang hanya R, tidak menyertakan paket MicrosoftML di luar kotak. Untuk menambahkan MicrosoftML, Anda harus melakukan peningkatan komponen. Salah satu keuntungan dari peningkatan komponen adalah Anda dapat secara bersamaan menambahkan model yang telah dilatih sebelumnya, yang membuat menjalankan skrip PowerShell tidak perlu. Namun, jika Anda sudah memutakhirkan tetapi melewatkan penambahan model yang telah dilatih sebelumnya untuk pertama kalinya, Anda dapat menjalankan skrip PowerShell seperti yang dijelaskan dalam artikel ini. Ini berfungsi untuk kedua versi SQL Server. Sebelum Anda melakukannya, konfirmasikan bahwa pustaka MicrosoftML ada di C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library.

Periksa apakah model yang telah dilatih telah diinstal

Jalur penginstalan untuk model R dan Python adalah sebagai berikut:

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

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

Nama file model ada dalam daftar berikut:

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

Jika model sudah diinstal, lewati ke langkah validasi untuk mengonfirmasi ketersediaan.

Mengunduh skrip penginstalan

Kunjungi https://aka.ms/mlm4sql untuk mengunduh file Install-MLModels.ps1. Pada halaman GitHub, pilih Unduh file mentah.

Jalankan dengan hak istimewa yang ditingkatkan

  1. Mulai PowerShell. Pada bilah tugas, klik kanan ikon program PowerShell dan pilih Jalankan sebagai administrator.

  2. Kebijakan eksekusi yang direkomendasikan selama penginstalan adalah "RemoteSigned". Untuk mengetahui informasi selengkapnya tentang pengaturan kebijakan eksekusi PowerShell, lihat Set-ExecutionPolicy. Contohnya:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Masukkan jalur yang sepenuhnya memenuhi syarat ke file skrip penginstalan dan sertakan nama instans. Dengan asumsi folder Unduhan dan instans default, perintah mungkin terlihat seperti ini:

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

Hasil

Pada instans default SQL Server Pembelajaran Mesin Services yang terhubung ke internet dengan R dan Python, Anda akan melihat pesan yang mirip dengan yang berikut ini.

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>

Verifikasi penginstalan

Pertama, periksa file baru di folder mxlibs. Selanjutnya, jalankan kode demo untuk mengonfirmasi model diinstal dan fungsional.

Langkah-langkah verifikasi R

  1. Mulai RGUI.EXE di C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64.

  2. Tempelkan skrip R berikut ini di prompt perintah.

    # 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. Tekan Enter untuk melihat skor sentimen. Output harus sebagai berikut:

    > 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
    

Langkah-langkah verifikasi Python

  1. Mulai Python.exe di C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES.

  2. Tempelkan skrip Python berikut ini di prompt perintah.

    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. Tekan Enter untuk mencetak skor. Output harus sebagai berikut:

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

Catatan

Jika skrip demo gagal, periksa lokasi file terlebih dahulu. Pada sistem yang memiliki beberapa instans SQL Server, atau misalnya yang berjalan berdampingan dengan versi mandiri, skrip penginstalan mungkin salah membaca lingkungan dan menempatkan file di lokasi yang salah. Biasanya, menyalin file secara manual ke folder mxlib yang benar memperbaiki masalah.

Contoh menggunakan model yang telah dilatih sebelumnya

Tautan berikut mencakup contoh kode yang memanggil model yang telah dilatih sebelumnya.

Penelitian dan sumber daya

Saat ini model yang tersedia adalah model jaringan neural mendalam (DNN) untuk analisis sentimen dan klasifikasi gambar. Semua model yang telah dilatih sebelumnya dilatih dengan menggunakan Computation Network Toolkit (CNTK) Microsoft.

Konfigurasi setiap jaringan didasarkan pada implementasi referensi berikut:

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

Untuk informasi selengkapnya tentang algoritma yang digunakan dalam model pembelajaran mendalam ini, dan bagaimana algoritma tersebut diimplementasikan dan dilatih menggunakan CNTK, lihat artikel berikut: