Udostępnij przez


Instalowanie wstępnie wytrenowanych modeli uczenia maszynowego w programie SQL Server

Dotyczy: SQL Server 2016 (13.x) SQL Server 2017 (14.x) SQL Server 2019 (15.x)

Ten artykuł dotyczy programów SQL Server 2016 (13.x), SQL Server 2017 (14.x) i SQL Server 2019 (15.x).

W tym artykule wyjaśniono, jak używać programu PowerShell do dodawania bezpłatnych wstępnie wyszkolonych modeli uczenia maszynowego na potrzeby analizy tonacji i cechowania obrazów do instancji serwera SQL Server z integracją R lub Pythona. Wstępnie wytrenowane modele stworzone przez firmę Microsoft są gotowe do użycia i dodawane do wystąpienia jako zadanie po zainstalowaniu. Aby uzyskać więcej informacji na temat tych modeli, zobacz sekcję Zasoby tego artykułu.

Począwszy od programu SQL Server 2022 (16.x), środowiska uruchomieniowe dla języków R, Python i Java nie są już instalowane przy użyciu instalatora SQL. Zamiast tego zainstaluj żądane środowiska uruchomieniowe i pakiety niestandardowe języka R i/lub Python. Aby uzyskać więcej informacji, zobacz Zainstaluj SQL Server 2022 Machine Learning Services (Python i R) na Windows.

Po zainstalowaniu wstępnie wytrenowane modele są traktowane jako szczegóły implementacji, które umożliwiają działanie określonych funkcji w bibliotekach MicrosoftML (R) i microsoftml (Python). Nie wolno wyświetlać, dostosowywać ani ponownie trenować modeli, ani traktować ich jako niezależnego zasobu w kodzie niestandardowym ani w połączeniu z innymi funkcjami.

Aby użyć wstępnie wytrenowanych modeli, wywołaj funkcje wymienione w poniższej tabeli.

Funkcja R (MicrosoftML) Python funkcja (microsoftml) Usage
getSentiment get_sentiment Generuje ocenę sentymentu pozytywno-negatywnego na podstawie tekstu wejściowego.
featurizeImage featurize_image Wyodrębnia informacje tekstowe z danych wejściowych pliku obrazu.

Prerequisites

Algorytmy uczenia maszynowego intensywnie korzystają z obliczeń. Zalecamy użycie 16 GB pamięci RAM dla obciążeń od niskich do umiarkowanych, w tym ukończenie samouczków przy użyciu wszystkich danych przykładowych.

Aby dodać wstępnie wytrenowane modele, musisz mieć uprawnienia administratora na komputerze i programie SQL Server.

Skrypty zewnętrzne muszą być włączone, a usługa LaunchPad programu SQL Server musi być uruchomiona. Instrukcje instalacji zawierają kroki włączania i weryfikowania tych możliwości.

Pobierz i zainstaluj najnowszą aktualizację zbiorczą dla używanej wersji programu SQL Server. Zobacz Najnowsze aktualizacje programu Microsoft SQL Server.

Pakiet MicrosoftML R lub pakiet języka Python microsoftml zawierają wstępnie wytrenowane modele.

Usługi SQL Server Machine Learning Services obejmują obie wersje językowe biblioteki uczenia maszynowego, więc to wymaganie wstępne jest spełnione i nie wymaga żadnych dalszych działań z Twojej strony. Ponieważ biblioteki są obecne, możesz użyć skryptu programu PowerShell opisanego w tym artykule, aby dodać wstępnie wytrenowane modele do tych bibliotek.

Pakiet języka R MicrosoftML zawiera wstępnie wytrenowane modele.

Usługi SQL Server R, które dotyczą wyłącznie języka R, nie zawierają pakietu MicrosoftML od razu po instalacji. Aby dodać kod MicrosoftML, należy wykonać uaktualnienie składnika. Jedną z zalet uaktualnienia składnika jest możliwość jednoczesnego dodawania wstępnie wytrenowanych modeli, co sprawia, że uruchamianie skryptu programu PowerShell jest niepotrzebne. Jeśli jednak już dokonałeś aktualizacji, ale przy pierwszej okazji pominąłeś dodanie wstępnie wytrenowanych modeli, możesz uruchomić skrypt PowerShell zgodnie z opisem w tym artykule. Działa w obu wersjach programu SQL Server. Przed wykonaniem upewnij się, że biblioteka MicrosoftML istnieje pod adresem C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library.

Sprawdź, czy wstępnie wytrenowane modele są zainstalowane

Ścieżki instalacji dla modeli języka R i Python są następujące:

  • W przypadku języka R: C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\MicrosoftML\mxLibs\x64

  • W przypadku języka Python: C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\Lib\site-packages\microsoftml\mxLibs

Nazwy plików modelu znajdują się na następującej liście:

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

Jeśli modele są już zainstalowane, przejdź do kroku weryfikacji , aby potwierdzić dostępność.

Pobieranie skryptu instalacji

Odwiedź stronę https://aka.ms/mlm4sql , aby pobrać plik Install-MLModels.ps1. Na stronie GitHub wybierz pozycję Pobierz nieprzetworzone pliki.

Wykonaj z podwyższonymi uprawnieniami

  1. Uruchom program PowerShell. Na pasku zadań kliknij prawym przyciskiem myszy ikonę programu PowerShell i wybierz polecenie Uruchom jako administrator.

  2. Zalecana polityka egzekucji podczas instalacji to "RemoteSigned". Aby uzyskać więcej informacji na temat ustawiania zasad wykonywania programu PowerShell, zobacz Set-ExecutionPolicy. Przykład:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Wprowadź w pełni kwalifikowaną ścieżkę do pliku skryptu instalacji i dołącz nazwę wystąpienia. Zakładając, że mamy folder Pobrane oraz domyślną instancję, polecenie może wyglądać następująco:

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

Output

W domyślnym wystąpieniu usług SQL Server Machine Learning Services połączonych z Internetem z językami R i Python powinny być wyświetlane komunikaty podobne do poniższych.

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>

Sprawdzanie instalacji

Najpierw sprawdź nowe pliki w folderze mxlibs. Następnie uruchom kod demonstracyjny, aby potwierdzić, że modele są zainstalowane i funkcjonalne.

Kroki weryfikacji języka R

  1. Uruchom RGUI.EXE o godzinie C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64.

  2. Wklej następujący skrypt języka R w wierszu polecenia.

    # 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. Naciśnij Enter aby wyświetlić wyniki sentymentu. Dane wyjściowe powinny być następujące:

    > 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
    

Kroki weryfikacji języka Python

  1. Uruchom Python.exe o godzinie C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES.

  2. Wklej następujący skrypt języka Python w wierszu polecenia.

    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. Naciśnij Enter, aby wydrukować wyniki. Dane wyjściowe powinny być następujące:

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

Jeśli skrypty demonstracyjne nie powiedzą się, najpierw sprawdź lokalizację pliku. W systemach z wieloma wystąpieniami programu SQL Server lub na wystąpieniach, które działają równolegle z wersjami autonomicznymi, skrypt instalacji może błędnie odczytać środowisko i umieścić pliki w niewłaściwej lokalizacji. Zazwyczaj ręczne kopiowanie plików do poprawnego folderu mxlib rozwiązuje problem.

Przykłady użycia wstępnie wytrenowanych modeli

Poniższy link zawiera przykładowy kod wywołujący wstępnie wytrenowane modele.

Badania i zasoby

Obecnie dostępne modele to głębokie modele sieci neuronowych (DNN) na potrzeby analizy tonacji i klasyfikacji obrazów. Wszystkie wstępnie wytrenowane modele zostały wytrenowane przy użyciu zestawu narzędzi Microsoft Computation Network Toolkit (CNTK).

Konfiguracja każdej sieci była oparta na następujących implementacjach referencyjnych:

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

Aby uzyskać więcej informacji na temat algorytmów używanych w tych modelach uczenia głębokiego oraz sposobu ich implementowania i trenowania przy użyciu cnTK, zobacz następujące artykuły: