Installare modelli di Machine Learning con training preliminare in SQL Server

Si applica a: SQL Server 2016 (13.x) SQL Server 2017 (14.x) SQL Server 2019 (15.x)

Questo articolo si applica a SQL Server 2016 (13.x), SQL Server 2017 (14.x) e SQL Server 2019 (15.x).

Questo articolo illustra come usare PowerShell per aggiungere modelli di machine learning preaddestrati gratuiti per l'analisi del sentiment e l'estrazione delle caratteristiche delle immagini a un'istanza di SQL Server con integrazione R o Python. I modelli preaddestrati sono creati da Microsoft e pronti all'uso, aggiunti a un'istanza come attività successiva all'installazione. Per altre informazioni su questi modelli, vedere la sezione Risorse di questo articolo.

A partire da SQL Server 2022 (16.x), i runtime per R, Python e Java non vengono più installati con l'installazione di SQL. Installare invece i runtime e i pacchetti personalizzati per R e/o Python che si intende usare. Per altre informazioni, vedere Installare SQL Server 2022 Machine Learning Services (Python e R) in Windows.

Dopo l'installazione, i modelli preaddestrati sono considerati un dettaglio di implementazione che supporta specifiche funzionalità nelle librerie MicrosoftML (R) e microsoftml (Python). Non dovresti (né puoi) visualizzare, personalizzare o riaddestrare i modelli, né trattarli come una risorsa indipendente in codice personalizzato o abbinarli ad altre funzioni.

Per usare i modelli preaddestrati, richiamare le funzioni elencate nella tabella seguente.

Funzione R (MicrosoftML) Funzione Python (microsoftml) Usage
getSentiment get_sentiment Genera un punteggio di sentiment positivo-negativo per input di testo.
featurizeImage featurize_image Estrae informazioni in formato testo da input di file di immagine.

Prerequisites

Gli algoritmi di Machine Learning comportano un utilizzo elevato delle risorse di calcolo. Si consigliano 16 GB di RAM per carichi di lavoro da bassi a moderati, incluso il completamento dei tutorial guidati utilizzando tutti i dati di esempio.

Per aggiungere modelli preaddestrati è necessario disporre dei diritti di amministratore sul computer e su SQL Server.

Gli script esterni devono essere abilitati e il servizio Launchpad di SQL Server deve essere in esecuzione. Nelle istruzioni di installazione sono descritti i passaggi per abilitare e verificare queste funzionalità.

Scaricare e installare l'aggiornamento cumulativo più recente per la versione di SQL Server. Vedere Aggiornamenti più recenti per Microsoft SQL Server.

Il pacchetto MicrosoftML per R o il pacchetto microsoftml per Python contiene i modelli preaddestrati.

Machine Learning Services per SQL Server include le versioni della libreria di Machine Learning per i due linguaggi e pertanto questo prerequisito viene soddisfatto senza che siano necessarie altre azioni da parte dell'utente. Poiché le librerie sono presenti, è possibile usare lo script di PowerShell descritto in questo articolo per aggiungere i modelli con training preliminare a queste librerie.

Verificare se i modelli preaddestrati sono installati

I percorsi di installazione dei modelli per R e Python sono i seguenti:

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

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

I nomi dei file di modello sono inclusi nell'elenco seguente:

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

Se i modelli sono già installati, passare al passaggio di convalida per confermare la disponibilità.

Scaricare lo script di installazione

Visitare https://aka.ms/mlm4sql per scaricare il file Install-MLModels.ps1. Nella pagina GitHub selezionare Scarica file RAW.

Eseguire con privilegi elevati

  1. Avvia PowerShell. Sulla barra delle applicazioni fare clic con il pulsante destro del mouse sull'icona del programma PowerShell e scegliere Esegui come amministratore.

  2. I criteri di esecuzione consigliati durante l'installazione sono "RemoteSigned". Per altre informazioni sull'impostazione dei criteri di esecuzione di PowerShell, vedere Set-ExecutionPolicy. Per esempio:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Immettere il percorso completo del file script di installazione e includere il nome dell'istanza. Supponendo che vengano usate la cartella Downloads e un'istanza predefinita, il comando potrebbe essere simile al seguente:

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

Output

In un'istanza predefinita connessa a Internet di Machine Learning Services per SQL Server con R e Python, verranno visualizzati messaggi simili al seguente.

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>

Verifica l'installazione

Prima di tutto, cercare i nuovi file nella cartella mxlibs. Eseguire quindi il codice demo per verificare che i modelli siano installati e funzionanti.

Passaggi di verifica per R

  1. Avviare RGUI.EXE all'indirizzo C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64.

  2. Incolla il seguente script R al prompt dei comandi.

    # 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. Premere INVIO per visualizzare i punteggi del sentiment. L'output sarà simile al seguente:

    > 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
    

Passaggi di verifica per Python

  1. Avviare Python.exe all'indirizzo C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES.

  2. Incollare lo script Python seguente nel prompt dei comandi.

    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. Premere INVIO per visualizzare i punteggi. L'output sarà simile al seguente:

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

Se gli script demo hanno esito negativo, controllare prima il percorso del file. Nei sistemi con più istanze di SQL Server, o per istanze eseguite side-by-side con versioni autonome, è possibile che lo script di installazione non riesca a leggere l'ambiente in modo corretto e inserisca i file nel percorso sbagliato. È in genere possibile correggere il problema copiando manualmente i file nella cartella mxlib.

Esempi che utilizzano modelli preaddestrati

Il seguente link include codice di esempio per richiamare i modelli preaddestrati.

Ricerca e risorse

I modelli attualmente disponibili sono modelli di tipo DNN (Deep Neural Network) per l'analisi del sentiment e la classificazione delle immagini. Tutti i modelli preaddestrati sono stati addestrati utilizzando il Computation Network Toolkit (CNTK) di Microsoft.

La configurazione di ogni rete neurale è stata basata sulle seguenti implementazioni di riferimento:

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

Per altre informazioni sugli algoritmi usati in questi modelli di Deep Learning e sul modo in cui vengono implementati e sottoposti a training con CNTK, vedere questi articoli: