Instalación de modelos de aprendizaje automático entrenados previamente en SQL Server

Se aplica a: SQL Server 2016 (13.x), SQL Server 2017 (14.x) y SQL Server 2019 (15.x)

Este artículo se aplica a SQL Server 2016 (13.x), SQL Server 2017 (14.x) y SQL Server 2019 (15.x).

En este artículo se explica cómo usar PowerShell para agregar modelos gratuitos de aprendizaje automático entrenados previamente para el análisis de sentimiento y las características de imagen a una instancia de SQL Server que tenga integración con R o Python. Los modelos entrenados previamente están compilados por Microsoft y listos para su uso, que se agregan a una instancia como una tarea posterior a la instalación. Para obtener más información acerca de estos modelos, vea la sección Recursos de este artículo.

A partir de SQL Server 2022 (16.x), los entornos de ejecución de R, Python y Java ya no se instalan con el programa de instalación de SQL. En su lugar, instale los paquetes y entornos de ejecución personalizados de R y/o Python que quiera. Para obtener más información, consulte Instalación de SQL Server 2022 Machine Learning Services (Python y R) en Windows.

Una vez instalados, los modelos previamente entrenados se consideran un detalle de implementación que tiene funciones específicas de energía en las bibliotecas de MicrosoftML (R) y microsoftml (Python). No debe (y no puede) ver, personalizar, ni volver a entrenar los modelos, ni puede tratarlos como un recurso independiente en el código personalizado o emparejar otras funciones.

Para usar los modelos previamente entrenados, llame a las funciones que se enumeran en la tabla siguiente.

Función de R (MicrosoftML) Función de Python (microsoftml) Uso
getSentiment get_sentiment Genera una puntuación de opinión positiva-negativa sobre las entradas de texto.
featurizeImage featurize_image Extrae información de texto de entradas de archivo de imagen.

Prerrequisitos

Los algoritmos de aprendizaje automático son de cálculo intensivo. Se recomienda 16 GB de RAM para cargas de trabajo de baja a moderada, incluida la finalización de tutoriales con todos los datos de ejemplo.

Debe tener derechos de administrador en el equipo y SQL Server para agregar modelos previamente entrenados.

Los scripts externos deben estar habilitados y el servicio SQL Server LaunchPad debe estar en ejecución. Las instrucciones de instalación proporcionan los pasos para habilitar y comprobar estas capacidades.

Descargue e instale la actualización acumulativa más reciente para la versión de SQL Server. Vea Actualizaciones más recientes de Microsoft SQL Server.

El paquete MicrosoftML R o el paquete microsoftml de Python contienen los modelos entrenados previamente.

SQL Server Machine Learning Services incluye las versiones de ambos lenguajes de la biblioteca de aprendizaje automático, por lo que se cumple este requisito previo sin necesidad de realizar ninguna acción por su parte. Dado que las bibliotecas están presentes, puede usar el script de PowerShell que se describe en este artículo para agregar los modelos entrenados previamente a estas bibliotecas.

El paquete MicrosoftML R contiene los modelos entrenados previamente.

SQL Server R Services, que solo admite R, no incluye el paquete MicrosoftML de serie. Para agregar MicrosoftML, debe realizar una actualización de componentes. Una ventaja de la actualización de componentes es que puede agregar simultáneamente los modelos entrenados previamente, lo que hace que no sea necesario ejecutar el script de PowerShell. Sin embargo, si ya ha realizado la actualización pero ha perdido la adición de los modelos previamente entrenados la primera vez, puede ejecutar el script de PowerShell como se describe en este artículo. Funciona en ambas versiones de SQL Server. Antes de hacerlo, confirme que la biblioteca MicrosoftML existe en C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library.

Comprobación de si los modelos previamente entrenados están instalados

Las rutas de acceso de instalación para los modelos R y Python son las siguientes:

  • 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

Los nombres de archivo de modelo se enumeran a continuación:

  • AlexNet_Updated.model
  • ImageNet1K_mean.xml
  • pretrained.model
  • ResNet_101_Updated.model
  • ResNet_18_Updated.model
  • ResNet_50_Updated.model

Si los modelos ya están instalados, vaya al paso de validación para confirmar la disponibilidad.

Descargue el script de instalación.

Haga clic en https://aka.ms/mlm4sql para descargar el archivo Install-MLModels.ps1.

Ejecución con privilegios elevados

  1. Inicie PowerShell. En la barra de tareas, haga clic con el botón derecho en el icono del programa PowerShell y seleccione Ejecutar como administrador.

  2. La directiva de ejecución recomendada durante la instalación es "RemoteSigned". Para más información sobre cómo establecer la directiva de ejecución de PowerShell, consulte Set-ExecutionPolicy. Por ejemplo:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Escriba una ruta de acceso completa al archivo de script de instalación e incluya el nombre de la instancia. Asumiendo la carpeta descargas y una instancia predeterminada, el comando podría ser similar al siguiente:

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

Salida

En una instancia predeterminada de SQL Server Machine Learning Services conectada a Internet con R y Python, debería ver mensajes similares a los siguientes.

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>

Comprobar la instalación

En primer lugar, busque los nuevos archivos en la carpeta mxlibs. A continuación, ejecute el código de demostración para confirmar que los modelos están instalados y funcionan.

Pasos de comprobación de R

  1. Inicie RGUI. EXE en C:\Archivos de programa\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64.

  2. Pegue el siguiente script de R en el símbolo del sistema.

    # 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. Pulse Entrar para ver las puntuaciones de opinión. El resultado debería ser el siguiente:

    > 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
    

Pasos de comprobación de Python

  1. Inicie Python.exe en C:\Archivos de programa\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES.

  2. Pegue el siguiente script de Python en el símbolo del sistema

    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. Presione Entrar para imprimir las puntuaciones. El resultado debería ser el siguiente:

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

Si se produce un error en los scripts de demostración, compruebe primero la ubicación del archivo. En los sistemas que tienen varias instancias de SQL Server, o para las instancias que se ejecutan en paralelo con versiones independientes, es posible que el script de instalación no lea el entorno y coloque los archivos en la ubicación equivocada. Normalmente, la copia manual de los archivos en la carpeta mxlib correcta corrige el problema.

Ejemplos de uso de modelos previamente entrenados

El siguiente vínculo incluye el código de ejemplo que invoca los modelos previamente entrenados.

Investigación y recursos

Actualmente, los modelos que están disponibles son modelos de red neuronal profunda (DNN) para el análisis de sentimiento y la clasificación de imágenes. Todos los modelos entrenados previamente se entrenaron mediante el uso del kit de herramientas de red computacional de Microsoft o CNTK.

La configuración de cada red se basó en las siguientes implementaciones de referencia:

  • ResNet-18
  • ResNet-50
  • ResNet-101
  • AlexNet

Para obtener más información sobre los algoritmos que se usan en estos modelos de aprendizaje profundo y cómo se implementan y se entrenan con CNTK, vea estos artículos:

Consulte también