Installieren von vortrainierten Machine Learning-Modellen unter SQL Server

Anwendungsbereich: JaSQL Server 2016 (13.x) und höher

In diesem Artikel wird erläutert, wie einer SQL Server-Instanz mit R- oder Python-Integration mithilfe von PowerShell kostenlose vorinstallierte Machine Learning-Modelle für Standpunktanalysen und Bildfeaturebereitstellungen hinzugefügt werden. Die vortrainierten Modelle werden von Microsoft erstellt und können einer Instanz im Rahmen einer Aufgabe nach der Installation hinzugefügt werden. Weitere Informationen zu diesen Modellen finden Sie im Abschnitt Ressourcen in diesem Artikel.

Nach der Installation werden die vortrainierten Modelle als Implementierungsdetail betrachtet, das bestimmte Funktionen in den Bibliotheken MicrosoftML (R) und microsoftml (Python) unterstützt. Diese Modelle dürfen (und können) nicht angezeigt, angepasst oder erneut trainiert werden. Zudem können sie in benutzerdefiniertem Code oder gekoppelten anderen Funktionen auch nicht als unabhängige Ressource behandelt werden.

Wenn Sie die vortrainierten Modelle verwenden möchten, rufen Sie die in der folgenden Tabelle aufgeführten Funktionen auf.

R-Funktion (MicrosoftML) Python-Funktion (microsoftml) Verwendung
getSentiment get_sentiment Generiert positive/negative Stimmungsbewertungen über Texteingaben.
featurizeImage featurize_image Extrahiert Textinformationen aus Bilddateieingaben.

Voraussetzungen

Machine Learning-Algorithmen sind rechenintensiv. Für geringfügige bis mittlere Arbeitsauslastungen wie etwa für die Durchführung der exemplarischen Vorgehensweisen in den Tutorials mit Nutzung aller Beispieldaten werden 16 GB RAM empfohlen.

Wenn Sie vortrainierte Modelle hinzuzufügen möchten, müssen Sie über Administratorrechte auf dem Computer sowie für SQL Server verfügen.

Externe Skripts müssen aktiviert sein, und der SQL Server LaunchPad-Dienst muss ausgeführt werden. Die Schritte zum Aktivieren und Überprüfen dieser Funktionen sind in den Installationsanleitungen enthalten.

Die vortrainierten Modelle sind im MicrosoftML R-Paket oder im microsoftml Python-Paket enthalten.

SQL Server Machine Learning Services enthält beide Sprachversionen der Machine Learning-Bibliothek. Diese Voraussetzung ist also erfüllt, ohne dass Sie weitere Maßnahmen ergreifen müssen. Da die Bibliotheken vorhanden sind, können Sie das in diesem Artikel beschriebene PowerShell-Skript verwenden, um diesen Bibliotheken die vortrainierten Modelle hinzuzufügen.

Die vortrainierten Modelle sind im MicrosoftML R-Paket enthalten.

In SQL Server R Services, die es nur in R gibt, ist das MicrosoftML-Paket nicht standardmäßig enthalten. Wenn Sie MicrosoftML hinzufügen möchten, müssen Sie ein Komponentenupgrade durchführen. Ein Komponentenupgrade hat unter anderem den Vorteil, dass die vortrainierten Modelle simultan hinzugefügt werden können, sodass das PowerShell-Skript nicht ausgeführt werden muss. Wenn Sie jedoch bereits ein Upgrade durchgeführt und dabei vergessen haben, die vortrainierten Modelle hinzuzufügen, können Sie das PowerShell-Skript wie in diesem Artikel beschrieben hinzufügen. Dies funktioniert bei beiden Versionen von SQL Server. Vergewissern Sie sich jedoch zuvor, dass die Bibliothek MicrosoftML unter C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library vorhanden sind.

Überprüfen, ob vortrainierte Modelle installiert sind

Die Installationspfade für R- und Python-Modelle lauten wie folgt:

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

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

Die Modelldateinamen sind im Folgenden aufgeführt:

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

Wenn die Modelle bereits installiert sind, fahren Sie mit dem Überprüfungsschritt, um die Verfügbarkeit zu bestätigen.

Herunterladen des Installationsskripts

Klicken Sie auf https://aka.ms/mlm4sql, um die Datei Install-MLModels.ps1 herunterzuladen.

Ausführen mit erhöhten Rechten

  1. Starten Sie PowerShell. Klicken Sie in der Taskleiste mit der rechten Maustaste auf das PowerShell-Programmsymbol, und wählen Sie Als Administrator ausführen aus.

  2. Geben Sie einen voll qualifizierten Pfad zur Installationsskriptdatei ein, und beziehen Sie dabei den Instanznamen ein. Wenn Sie den Ordner „Downloads“ und eine Standardinstanz angeben, sieht der Befehl beispielsweise wie folgt aus:

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

Ausgabe

Bei einer mit dem Internet verbundenen SQL Server Machine Learning Services-Standardinstanz mit R und Python werden Meldungen wie die folgenden angezeigt.

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>

Überprüfen der Installation

Prüfen Sie zunächst, ob die neuen Dateien im Ordner mxlibs vorhanden sind. Führen Sie anschließend Democode aus, um zu prüfen, ob die Modelle installiert und funktionsfähig sind.

R-Überprüfungsschritte

  1. Starten Sie RGUI.EXE unter „C:\Programme\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64“.

  2. Fügen Sie das folgende R-Skript an der Eingabeaufforderung ein.

    # 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. Drücken Sie die EINGABETASTE, um die Stimmungsbewertungen anzuzeigen. Die Ergebnisse sollten wie folgt lauten:

    > 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-Überprüfungsschritte

  1. Starten Sie Python.exe unter „C:\Programme\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES“.

  2. Fügen Sie das folgende Python-Skript an der Eingabeaufforderung ein.

    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. Drücken Sie die EINGABETASTE, um die Bewertungen zu drucken. Die Ergebnisse sollten wie folgt lauten:

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

Hinweis

Wenn bei Demoskripts ein Fehler auftritt, überprüfen Sie zuerst den Dateispeicherort. Bei Systemen mit mehreren Instanzen von SQL Server oder bei Instanzen, die parallel mit eigenständigen Versionen ausgeführt werden, kann es vorkommen, dass das Installationsskript die Umgebung falsch liest und die Dateien am falschen Speicherort ablegt. Normalerweise wird das Problem durch manuelles Kopieren der Dateien in den richtigen „mxlib“-Ordner behoben.

Beispiele für die Verwendung von vortrainierten Modellen

Über den folgenden Link gelangen Sie zu Codebeispielen zum Aufrufen der vortrainierten Modelle.

Recherche und Ressourcen

Derzeit sind für die Standpunktanalyse und Bildklassifizierung die DNN-Modelle (Deep Neural Network) verfügbar. Alle vortrainierten Modelle wurden mit dem Computation Network Toolkit bzw. CNTK von Microsoft trainiert.

Die Konfiguration der einzelnen Netzwerke basiert auf den folgenden Verweisimplementierungen:

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

Weitere Informationen zu den in diesen Deep Learning-Modellen verwendeten Algorithmen sowie zu deren Implementierung und Training mit CNTK finden Sie in den folgenden Artikeln:

Weitere Informationen