Installer des modèles Machine Learning préformés sur SQL Server

S’applique à : SQL Server 2016 (13.x), SQL Server 2017 (14.x) et SQL Server 2019 (15.x)

Cet article s’applique à SQL Server 2016 (13.x), SQL Server 2017 (14.x) et SQL Server 2019 (15.x).

Cet article explique comment utiliser PowerShell pour ajouter des modèles Machine Learning préentraînés gratuits pour l’analyse des sentiments et la génération de fonctionnalités d’images à une instance SQL Server avec l’intégration R ou Python. Les modèles préformés sont générés par Microsoft et prêts à être utilisés. Ils sont d’ailleurs ajoutés à une instance suite à l’installation. Pour plus d’informations sur ces modèles, consultez la section Ressources de cet article.

À compter de SQL Server 2022 (16.x), les runtimes pour R, Python et Java ne sont plus installés avec le programme d’installation de SQL. Au lieu de cela, installez le(s) runtime(s) et les packages personnalisés R et/ou Python souhaités. Pour plus d’informations, consultez Installer SQL Server 2022 Machine Learning Services (Python et R) sur Windows.

Une fois installés, les modèles préformés sont considérés comme des détails d’implémentation qui alimentent des fonctions spécifiques dans les bibliothèques MicrosoftML (R) et microsoftml (Python). Vous ne devez pas (et ne pouvez pas) afficher, personnaliser ou reformer les modèles. Vous ne pouvez pas non plus les traiter en tant que ressource indépendante dans du code personnalisé ou dans d’autres fonctions couplées.

Pour utiliser les modèles préformés, appelez les fonctions indiquées dans le tableau suivant.

Fonction R (MicrosoftML) Fonction Python (MicrosoftML) Usage
getSentiment get_sentiment Génère un score de sentiment positif-négatif sur les entrées de texte.
featurizeImage featurize_image Extrait des informations de texte à partir des entrées du fichier image.

Prérequis

Les algorithmes d’apprentissage automatique nécessitent beaucoup de ressources de calcul. Nous vous recommandons 16 Go de RAM pour les charges de travail de taille petite à modérée, y compris l’exécution des procédures pas à pas du didacticiel à l’aide de tous les exemples de données.

Vous devez disposer de droits d’administrateur sur l’ordinateur et SQL Server pour ajouter des modèles préformés.

Les scripts externes doivent être activés, et le service SQL Server LaunchPad doit être en cours d’exécution. Les instructions d’installation fournissent les étapes nécessaires à l’activation et à la vérification de ces fonctionnalités.

Téléchargez et installez la dernière mise à jour cumulative pour votre version de SQL Server. Consultez les Dernières mises à jour pour Microsoft SQL Server.

Le package MicrosoftML R ou le package MicrosoftML Python contiennent les modèles préformés.

SQL Server Machine Learning Services contient les deux versions de langage de la bibliothèque Machine Learning ; cette condition préalable est donc remplie sans aucune autre action de votre part. Étant donné que les bibliothèques sont présentes, vous pouvez utiliser le script PowerShell décrit dans cet article pour ajouter les modèles préformés à ces bibliothèques.

Le package MicrosoftML R contient les modèles préformés.

SQL Server R Services, qui est R uniquement, n’inclut pas le package MicrosoftML prêt à l’emploi. Pour ajouter MicrosoftML, vous devez effectuer une mise à niveau du composant. L’un des avantages de la mise à niveau des composants est que vous pouvez ajouter simultanément les modèles préformés, ce qui rend l’exécution du script PowerShell inutile. Toutefois, si vous avez déjà effectué la mise à niveau, mais que vous avez omis d’ajouter les modèles préformés, vous pouvez exécuter le script PowerShell comme décrit dans cet article. Il fonctionne pour les deux versions de SQL Server. Avant cela, vérifiez que la bibliothèque MicrosoftML existe dans C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library.

Vérifier si des modèles préformés sont installés

Les chemins d’installation des modèles R et Python sont les suivants :

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

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

Les noms de fichiers de modèles sont répertoriés ci-dessous :

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

Si les modèles sont déjà installés, passez directement à l’étape de validation pour confirmer la disponibilité.

Télécharger le script d’installation

Consultez https://aka.ms/mlm4sql pour télécharger le fichier Install-MLModels.ps1.

Exécuter avec des privilèges élevés

  1. Démarrez PowerShell. Dans la barre des tâches, cliquez avec le bouton droit sur l’icône de programme PowerShell, puis sélectionnez Exécuter en tant qu’administrateur.

  2. La stratégie d’exécution recommandée lors de l’installation est « RemoteSigned ». Pour plus d’informations sur la définition de la stratégie d’exécution de PowerShell, consultez Set-ExecutionPolicy. Par exemple :

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Entrez un chemin d’accès complet au fichier de script de script d’installation et incluez le nom de l’instance. En partant du principe que vous utilisez le dossier Téléchargements et une instance par défaut, la commande peut ressembler à ce qui suit :

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

Sortie

Sur une instance par défaut SQL Server Machine Learning Services connectée à Internet avec R et Python, vous devez voir des messages identiques à ce qui suit.

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>

Vérifier l'installation

Tout d’abord, recherchez les nouveaux fichiers dans le dossier mxlibs. Ensuite, exécutez le code de démonstration pour confirmer que les modèles sont installés et fonctionnels.

Étapes de vérification pour R

  1. Démarrez RGUI. EXE dans C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64.

  2. Collez le script R suivant à l’invite de commandes.

    # 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. Appuyez sur Entrée pour afficher les scores de sentiment. La sortie doit ressembler à ce qui suit :

    > 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
    

Étapes de vérification pour Python

  1. Démarrez Python.exe dans C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES.

  2. Collez le script Python suivant à l’invite de commandes

    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. Appuyez sur Entrée pour imprimer les scores. La sortie doit ressembler à ce qui suit :

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

Notes

Si les scripts de démonstration échouent, vérifiez d’abord l’emplacement du fichier. Sur les systèmes dotés de plusieurs instances de SQL Server, ou pour les instances qui s’exécutent côte à côte avec des versions autonomes, il est possible que le script d’installation ne lise pas correctement l’environnement et place les fichiers au mauvais emplacement. En général, la copie manuelle des fichiers dans le dossier mxlib approprié résout le problème.

Exemples utilisant des modèles préformés

Le lien suivant inclut un exemple de code appelant les modèles préformés.

Recherche et ressources

Actuellement, les modèles qui sont disponibles sont les modèles de réseau neuronal profond pour l’analyse des sentiments et la classification des images. Tous les modèles préformés ont été formés à l’aide du Microsoft Computation Network Toolkit ou CNTK.

La configuration de chaque réseau reposait sur les implémentations de référence suivantes :

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

Pour plus d’informations sur les algorithmes utilisés dans ces modèles Deep Learning et sur la façon dont ils sont implémentés et formés à l’aide de CNTK, consultez les articles suivants :

Voir aussi