Compartilhar via


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

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

  2. 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
    
  3. 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

  1. Inicie RGUI.EXE em C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64.

  2. 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
    
  3. 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

  1. Inicie Python.exe em C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES.

  2. 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)
    
  3. 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: