Instalar modelos de machine learning treinados previamente no SQL Server
Aplica-se a: SQL Server 2016 (13.x) SQL Server 2017 (14.x) e SQL Server 2019 (15.x)
Este artigo aplica-se ao SQL Server 2016 (13.x), SQL Server 2017 (14.x) e SQL Server 2019 (15.x).
Este artigo explica como usar o PowerShell para adicionar modelos de machine learning treinados previamente e gratuitos para a análise de sentimento e para a definição de recursos de imagens para uma instância do SQL Server com integração com R ou com Python. Os modelos treinados previamente são desenvolvidos pela Microsoft e estão prontos para uso ao serem adicionados a uma instância como uma tarefa posterior à instalação. Para obter mais informações sobre esses modelos, confira a seção Recursos deste artigo.
A partir do SQL Server 2022 (16.x), os runtimes do R, do Python e do Java não são mais instalados com a Instalação do SQL. Em vez disso, instale os runtimes e os pacotes personalizados em R e/ou em Python desejados. Para obter mais informações, confira Instalar os Serviços de Machine Learning (Python e R) do SQL Server 2022 no Windows.
Uma vez instalados, os modelos treinados previamente são considerados um detalhe de implementação que possibilitam funções específicas nas bibliotecas MicrosoftML (R) e microsoftml (Python). Você não deve (e não pode) exibir, personalizar nem treinar novamente modelos, tampouco tratá-los como um recurso independente em código personalizado ou emparelhado com outras funções.
Para usar os modelos pré-treinados, chame as funções listadas na tabela a seguir.
Função do R (MicrosoftML) | Função do Python (microsoftml) | Uso |
---|---|---|
getSentiment | get_sentiment | Gera uma pontuação de sentimentos positiva/negativa sobre entradas de texto. |
featurizeImage | featurize_image | Extrai informações de texto de entradas de arquivo de imagem. |
Pré-requisitos
Os algoritmos de aprendizado de máquina fazem uso de computação intensiva. Nossa recomendação é de 16 GB de RAM para cargas de trabalho baixas a moderadas, incluindo a conclusão dos tutoriais passo a passo ao usar todos os dados de amostra.
Você deve ter direitos de administradores no computador e no SQL Server para adicionar modelos treinados previamente.
Os scripts externos precisam estar habilitados e o serviço SQL Server LaunchPad precisa estar em execução. As instruções de instalação fornecem as etapas para habilitar e verificar essas funcionalidades.
Baixe e instale a atualização cumulativa mais recente para sua versão do SQL Server. Confira as Atualizações mais recentes do Microsoft SQL Server.
O pacote da biblioteca MicrosoftML para R ou o pacote da biblioteca microsoftml para Python contém os modelos treinados previamente.
Os Serviços de Machine Learning do SQL Server incluem versões da biblioteca de aprendizado de máquina em ambas as linguagens de programação, portanto, esse pré-requisito é atendido sem que você realize nenhuma ação adicional. Como as bibliotecas estão presentes, é possível usar o script do PowerShell descrito neste artigo para adicionar os modelos treinados previamente a essas bibliotecas.
O pacote da biblioteca MicrosoftML para R contém os modelos treinados previamente.
O SQL Server R Services, que é somente em R, não inclui o pacote MicrosoftML pronto para uso. Para adicionar o MicrosoftML, você precisa fazer uma atualização de componente. Uma vantagem da atualização do componente é que você pode adicionar simultaneamente os modelos treinados previamente, o que torna desnecessária a execução do script do PowerShell. No entanto, se você já fez a atualização, mas se esqueceu de adicionar os modelos treinados previamente na primeira vez, é possível realizar a execução do script do PowerShell, conforme descrito neste artigo. Ele funciona para ambas as versões do SQL Server. Antes de fazer isso, confirme se a biblioteca MicrosoftML existe em C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library
.
Como verificar se os modelos treinados previamente estão instalados
Os caminhos de instalação dos modelos do R e do Python são os seguintes:
Para o R:
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\MicrosoftML\mxLibs\x64
Para o Python:
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\Lib\site-packages\microsoftml\mxLibs
Os nomes de arquivos de modelo estão na seguinte lista:
AlexNet_Updated.model
ImageNet1K_mean.xml
pretrained.model
ResNet_101_Updated.model
ResNet_18_Updated.model
ResNet_50_Updated.model
Se os modelos já estiverem instalados, vá direto para a etapa de validação para confirmar a disponibilidade.
Baixar o script de instalação
Visite https://aka.ms/mlm4sql para baixar o arquivo Install-MLModels.ps1. Na página do GitHub, selecione Fazer download do arquivo RAW.
Executar com privilégios elevados
Inicie o PowerShell. Na barra de tarefas, clique com o botão direito do mouse no ícone do programa PowerShell e selecione Executar como administrador.
A política de execução recomendada durante a instalação é "RemoteSigned". Para obter mais informações sobre como definir a política de execução do PowerShell, confira Set-ExecutionPolicy. Por exemplo:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Insira um caminho totalmente qualificado para o arquivo de script de instalação e inclua o nome da instância. Se pressupormos a existência da pasta Downloads e de uma instância padrão, o comando teria a seguinte aparência:
PS C:\WINDOWS\system32> C:\Users\<user-name>\Downloads\Install-MLModels.ps1 MSSQLSERVER
Saída
Em uma instância padrão dos Serviços de Machine Learning do SQL Server com R e Python conectada à Internet, você deverá ver mensagens semelhantes às seguintes.
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>
Verifique a instalação
Primeiro, verifique os novos arquivos na pasta mxlibs. Em seguida, execute o código de demonstração para confirmar se os modelos estão instalados e funcionando.
Etapas de verificação do R
Inicie RGUI.EXE em
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64
.Cole o script R a seguir no prompt de comando.
# 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
Pressione Enter para realizar a exibição das pontuações de sentimento. A saída deverá ser conforme demonstrado a seguir:
> 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
Etapas de verificação do Python
Inicie Python.exe em
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES
.Cole o script em Python apresentado a seguir no prompt de comando.
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)
Pressione Enter para imprimir as pontuações. A saída deverá ser conforme demonstrado a seguir:
>>> 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 >>>
Observação
Se os scripts de demonstração falharem, verifique primeiro a localização do arquivo. Em sistemas com várias instâncias do SQL Server ou em instâncias que são executadas lado a lado com versões autônomas, é possível que o script de instalação faça uma leitura incorreta do ambiente e coloque os arquivos na localização errada. Normalmente, copiar os arquivos manualmente para a pasta mxlib correta corrige o problema.
Exemplos que usam modelos treinados previamente
O link apresentado a seguir inclui um código de exemplo para invocar os modelos treinados previamente.
Pesquisa e recursos
Atualmente, os modelos disponíveis são modelos de DNN (rede neural profunda) para análise de sentimentos e classificação de imagem. Todos os modelos treinados previamente receberam treinamento ao usar o Kit de Ferramentas de Rede Computacional (CNTK) da Microsoft.
A configuração de cada rede foi baseada nas seguintes implementações de referência:
ResNet-18
ResNet-50
ResNet-101
AlexNet
Para obter mais informações sobre os algoritmos usados nesses modelos de aprendizado profundo e o modo como eles são implementados e treinados usando o CNTK, confira estes artigos: