Partilhar via


Instalar modelos de aprendizado de máquina pré-treinados no SQL Server

Aplica-se a: SQL Server 2016 (13.x) SQL Server 2017 (14.x) 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 aprendizagem automática pré-treinados gratuitos para análise de sentimento e caracterização de imagens a uma instância SQL Server com integração com R ou Python. Os modelos pré-treinados são criados pela Microsoft e prontos para uso, adicionados a uma instância como uma tarefa pós-instalação. Para mais informações sobre estes modelos, consulte a secção de Recursos deste artigo.

A partir do SQL Server 2022 (16.x), os tempos de execução para R, Python e Java não são mais instalados com a Instalação do SQL. Em vez disso, instale os tempos de execução e pacotes personalizados R e/ou Python desejados. Para obter mais informações, consulte Instalar os Serviços de Aprendizado de Máquina do SQL Server 2022 (Python e R) no Windows.

Uma vez instalados, os modelos pré-treinados são considerados um detalhe de implementação que alimenta funções específicas nas bibliotecas MicrosoftML (R) e microsoftml (Python). Você não deve (e não pode) visualizar, personalizar ou treinar novamente os modelos, nem pode tratá-los como um recurso independente em código personalizado ou outras funções emparelhadas.

Para usar os modelos pré-treinados, chame as funções listadas na tabela a seguir.

Função R (MicrosoftML) Função Python (microsoftml) Usage
getSentiment get_sentiment Gera pontuação de sentimento positivo-negativo sobre entradas de texto.
featurizeImage featurize_image Extrai informações de texto de entradas de arquivo de imagem.

Prerequisites

Os algoritmos de aprendizado de máquina são intensivos em termos computacionais. Recomendamos 16 GB de RAM para cargas de trabalho baixas a moderadas, incluindo a conclusão das instruções passo a passo do tutorial usando todos os dados de exemplo.

Você deve ter direitos de administrador no computador e no SQL Server para adicionar modelos pré-treinados.

Os scripts externos devem estar habilitados e o serviço SQL Server LaunchPad deve estar em execução. As instruções de instalação fornecem as etapas para habilitar e verificar esses recursos.

Transfira e instale a atualização cumulativa mais recente para a sua versão do SQL Server. Consulte as atualizações mais recentes para o Microsoft SQL Server.

O pacote MicrosoftML R ou o pacote Microsoftml Python contêm os modelos pré-treinados.

Os Serviços de Aprendizado de Máquina do SQL Server incluem ambas as versões de idioma da biblioteca de aprendizado de máquina, portanto, esse pré-requisito é atendido sem nenhuma ação adicional de sua parte. Como as bibliotecas estão presentes, você pode usar o script do PowerShell descrito neste artigo para adicionar os modelos pré-treinados a essas bibliotecas.

O pacote MicrosoftML R contém os modelos pré-treinados.

O SQL Server R Services, que é apenas R, não inclui o pacote MicrosoftML pronto para uso. Para adicionar MicrosoftML, é necessário fazer uma atualização de componentes. Uma vantagem da atualização do componente é que você pode adicionar simultaneamente os modelos pré-treinados, o que torna a execução do script do PowerShell desnecessária. No entanto, se você já atualizou, mas perdeu a adição dos modelos pré-treinados na primeira vez, poderá executar o script do PowerShell conforme descrito neste artigo. Ele funciona para ambas as versões do SQL Server. Antes de o fazer, confirme se a biblioteca MicrosoftML existe em C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library.

Verifique se os modelos pré-treinados estão instalados

Os caminhos de instalação para modelos R e Python são os seguintes:

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

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

Os nomes de arquivo de modelo estão na lista a seguir:

  • 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, avance para a etapa de validação para confirmar a disponibilidade.

Baixe o script de instalação

Visite https://aka.ms/mlm4sql para descarregar o ficheiro Install-MLModels.ps1. Na página GitHub, selecione Baixar arquivo bruto.

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, consulte 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. Supondo a pasta Downloads e uma instância padrão, o comando pode ter esta aparência:

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

Output

Em uma instância padrão do SQL Server Machine Learning Services conectada à Internet com R e Python, você 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>

Verificar instalação

Primeiro, verifica os novos ficheiros na pasta mxlibs. Em seguida, execute o código de demonstração para confirmar se os modelos estão instalados e funcionais.

Etapas de verificação no R

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

  2. Cole o seguinte script R 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 ver as pontuações de sentimento. A saída deve ser a seguinte:

    > 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. Comece Python.exe em C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES.

  2. Cole o seguinte script Python 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 deve ser a seguinte:

    >>> 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 os scripts de demonstração falharem, verifique primeiro o local do arquivo. Em sistemas com várias instâncias do SQL Server, ou para instâncias que são executadas lado a lado com versões autônomas, é possível que o script de instalação leia incorretamente o ambiente e coloque os arquivos no local errado. Normalmente, copiar manualmente os arquivos para a pasta mxlib correta corrige o problema.

Exemplos usando modelos pré-treinados

O link a seguir inclui código de exemplo invocando os modelos pré-treinados.

Investigação e recursos

Atualmente, os modelos disponíveis são modelos de redes neurais profundas (DNN) para análise de sentimento e classificação de imagens. Todos os modelos pré-treinados foram treinados usando o Computation Network Toolkit (CNTK) da Microsoft.

A configuração de cada rede baseou-se 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 aprendizagem profunda e como eles são implementados e treinados usando CNTK, consulte estes artigos: