Installare modelli di Machine Learning con training preliminare in SQL Server

Si applica a: SQL Server 2016 (13.x), SQL Server 2017 (14.x) e 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 con training preliminare per l'analisi del sentiment e la definizione delle caratteristiche di un'immagine a un'istanza di SQL Server con l'integrazione di R o Python. I modelli con training preliminare creati da Microsoft sono pronti all'uso e vengono aggiunti a un'istanza come attività di post-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 con training preliminare sono considerati un dettaglio di implementazione che alimenta funzioni specifiche nelle librerie MicrosoftML (R) e microsoftml (Python). Non è consigliabile (né possibile) visualizzare, personalizzare o ripetere il training dei modelli e nemmeno trattarli come risorsa indipendente in codice personalizzato o altre funzioni associate.

Per usare i modelli con training preliminare, chiamare le funzioni elencate nella tabella seguente.

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

Prerequisiti

Gli algoritmi di Machine Learning comportano un utilizzo elevato delle risorse di calcolo. Per un carico di lavoro da basso a moderato sono consigliati 16 GB di RAM, incluso il completamento delle procedure dettagliate delle esercitazioni con tutti i dati di esempio.

Per aggiungere modelli con training preliminare è 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.

I modelli con training preliminare sono inclusi nel pacchetto MicrosoftML per R o nel pacchetto microsoftml per Python.

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.

I modelli con training preliminare sono inclusi nel pacchetto MicrosoftML per R.

In R Services per SQL Server, che include solo il supporto per R, non è integrato il pacchetto MicrosoftML. Per aggiungere MicrosoftML, è necessario eseguire un aggiornamento del componente. Questo aggiornamento offre il vantaggio di poter aggiungere contemporaneamente i modelli con training preliminare, evitando così di dover eseguire lo script di PowerShell. Se tuttavia l'aggiornamento è già stato eseguito, ma non sono stati subito aggiunti i modelli con training preliminare, è possibile eseguire lo script di PowerShell come descritto in questo articolo. Lo script funziona per entrambe le versioni di SQL Server. Prima di procedere, verificare che la libreria di MicrosoftML sia presente in C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library.

Controllare se i modelli con training preliminare 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 elencati di seguito:

  • 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, proseguire con il passaggio di convalida per verificare la disponibilità.

Scaricare lo script di installazione

Visitare https://aka.ms/mlm4sql per scaricare il file Install-MLModels.ps1.

Eseguire con privilegi elevati

  1. Avviare 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. Ad esempio:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Immettere il percorso completo del file dello 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

Per prima cosa, controllare che i nuovi file siano presenti 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 in C:\Programmi\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64.

  2. Incollare lo script R seguente nel 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 in C:\Programmi\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
    >>>
    

Nota

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 d'uso dei modelli con training preliminare

Il collegamento seguente include codice di esempio che richiama i modelli con training preliminare.

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 sono stati sottoposti a training con il Computation Network Toolkit, o 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:

Vedi anche