Установка предварительно обученных моделей машинного обучения на SQL Server

Применимо к: SQL Server 2016 (13.x) SQL Server 2017 (14.x) SQL Server 2019 (15.x)

Эта статья относится к SQL Server 2016 (13.x), SQL Server 2017 (14.x) и SQL Server 2019 (15.x).

В этой статье объясняется, как использовать PowerShell для добавления бесплатных предварительно обученных моделей машинного обучения для анализа тональности и фичеризации изображений в экземпляр SQL Server с интеграцией R или Python. Предварительно обученные модели созданы Microsoft, готовы к использованию и добавляются в экземпляр в качестве задачи, выполняемой после установки. Дополнительные сведения об этих моделях см. в разделе "Ресурсы " этой статьи.

Начиная с SQL Server 2022 (16.x), среды выполнения для R, Python и Java больше не устанавливаются с помощью программы установки SQL. Вместо этого установите нужные пользовательские среды выполнения и пакеты для R и/или Python. Дополнительные сведения см. в статье Установка Служб машинного обучения SQL Server 2022 (Python и R) в Windows.

После установки предварительно обученные модели считаются деталью реализации, обеспечивающей работу определённых функций в библиотеках MicrosoftML (R) и microsoftml (Python). Вы не должны (и не можете) просматривать, настраивать или переобучать модели, а также использовать их как самостоятельный ресурс в пользовательском коде или в сочетании с другими функциями.

Чтобы использовать предварительно обученные модели, вызовите функции, указанные в следующей таблице.

Функция R (MicrosoftML) Функция Python (microsoftml) Usage
getSentiment get_sentiment Формирует положительную или отрицательную оценку тональности для текстовых входных данных.
featurizeImage featurize_image Извлекает текстовые данные из входного файла изображения.

Prerequisites

Алгоритмы машинного обучения обладают высокими требованиями к вычислительным ресурсам. Рекомендуется использовать 16 ГБ ОЗУ для низко-умеренных рабочих нагрузок, включая выполнение пошаговых руководств по использованию всех примеров данных.

Для добавления предварительно обученных моделей необходимо иметь права администратора на компьютере и SQL Server.

Необходимо включить внешние сценарии, а на SQL Server должна быть запущена служба панели запуска. Инструкции по установке содержат инструкции по включению и проверке этих компонентов.

Скачайте и установите последнее накопительное обновление для вашей версии SQL Server. См. Последние обновления для Microsoft SQL Server.

Пакет MicrosoftML R или пакет Microsoftml Python содержат предварительно обученные модели.

Службы машинного обучения SQL Server включают версии библиотеки машинного обучения для обоих языков, поэтому это условие выполняется без каких-либо дополнительных действий с вашей стороны. Так как библиотеки присутствуют, можно использовать сценарий PowerShell, описанный в этой статье, чтобы добавить предварительно обученные модели в эти библиотеки.

Проверьте, установлены ли предварительно обученные модели

Пути установки для моделей R и Python приведены ниже:

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

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

Имена файлов модели находятся в следующем списке:

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

Если модели уже установлены, перейдите к шагу проверки , чтобы подтвердить доступность.

Скачивание сценария установки

Посетите https://aka.ms/mlm4sql страницу для скачивания файла Install-MLModels.ps1. На странице GitHub выберите "Скачать необработанный файл".

Выполнить с повышенными привилегиями

  1. Запустите PowerShell. На панели задач щелкните правой кнопкой мыши значок программы PowerShell и выберите Запуск от имени администратора.

  2. Рекомендуемая политика выполнения в процессе установки — "RemoteSigned". Дополнительные сведения о настройке политики выполнения PowerShell см. в разделе Set-ExecutionPolicy. Рассмотрим пример.

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Введите полный путь к файлу скрипта установки и добавьте имя экземпляра. Предполагая, что используется папка Downloads и экземпляр по умолчанию, команда может выглядеть следующим образом:

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

Output

На экземпляре по умолчанию Служб машинного обучения SQL Server с R и Python, подключенном к Интернету, вы должны увидеть сообщения, аналогичные приведенным ниже.

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>

Проверка установки

Сначала проверьте наличие новых файлов в папке mxlibs. Затем запустите демонстрационный код, чтобы убедиться, что модели установлены и работают.

Шаги проверки для R

  1. Запустите RGUI.EXE с C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64.

  2. Вставьте в командную строку следующий сценарий R.

    # 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. Нажмите клавишу ВВОД , чтобы просмотреть оценки тональности. Выходные данные должны выглядеть следующим образом:

    > 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
    

Действия по выполнению проверки для Python

  1. Запустите Python.exe с C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES.

  2. Вставьте следующий скрипт Python в командной строке.

    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. Нажмите Enter, чтобы распечатать результаты. Выходные данные должны выглядеть следующим образом:

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

Если демонстрационные сценарии завершаются с ошибкой, проверьте расположение файла. В системах с несколькими экземплярами SQL Server или для экземпляров, работающих параллельно с автономными версиями, сценарий установки может некорректно считывать параметры среды и размещать файлы в неправильном месте. Как правило, для устранения этой проблемы достаточно вручную скопировать файлы в правильную папку mxlib.

Примеры использования предварительно обученных моделей

Следующая ссылка содержит пример кода, вызывающего предварительно обученные модели.

Исследования и ресурсы

Сейчас доступны модели глубокой нейронной сети для анализа тональности и классификации изображений. Все предварительно обученные модели обучены с помощью набора средств сети вычислений Майкрософт (CNTK).

Конфигурация каждой сети была основана на следующих эталонных реализациях:

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

Дополнительные сведения об алгоритмах, используемых в этих моделях глубокого обучения, и о том, как они реализуются и обучаются с помощью CNTK, см. в следующих статьях: