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 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, 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. Nella pagina GitHub selezionare Scarica file RAW.
Eseguire con privilegi elevati
Avviare PowerShell. Sulla barra delle applicazioni fare clic con il pulsante destro del mouse sull'icona del programma PowerShell e scegliere Esegui come amministratore.
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
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
Avviare RGUI.EXE all'indirizzo
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64
.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
Premere Invio per visualizzare i punteggi della valutazione. 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
Avviare Python.exe all'indirizzo
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES
.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)
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 con training preliminare sono stati sottoposti a training con il Computation Network Toolkit (CNTK).
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:
Microsoft Researchers' Algorithm Sets ImageNet Challenge Milestone (L'algoritmo dei ricercatori Microsoft ottiene un importante risultato nella sfida di ImageNet)
Microsoft Computational Network Toolkit offers most efficient distributed deep learning computational performance (Microsoft Computational Network Toolkit offre prestazioni di calcolo di massimo livello per il Deep Learning distribuito)