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, instala los paquetes y entornos de ejecución personalizados de R y/o Python que quieras. 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.
Debes 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, puedes 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 puedes agregar simultáneamente los modelos entrenados previamente, lo que hace que no sea necesario ejecutar el script de PowerShell. Sin embargo, si ya has realizado la actualización pero has perdido la adición de los modelos previamente entrenados la primera vez, puedes 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 encuentran en la lista siguiente:
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. Selecciona la opción Descargar archivo sin procesar en la página de GitHub.
Ejecución con privilegios elevados
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.
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
Escribe una ruta de acceso completa al archivo de script de instalación e incluye 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
Inicia RGUI.EXE en
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64
.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
Pulsa 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
Inicia Python.exe en
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES
.Pega 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)
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 (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: