Установка предварительно обученных моделей машинного обучения на 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. Предварительно обученные модели создаются корпорацией Майкрософт и готовы к использованию, добавляются в экземпляр в качестве задачи после установки. Дополнительные сведения об этих моделях см. в разделе Ресурсы этой статьи.
Начиная с SQL Server 2022 (16.x), среды выполнения для R, Python и Java больше не устанавливаются с помощью программы установки SQL. Вместо этого установите нужные среды выполнения и пакеты Python. Дополнительные сведения см. в статье Установка Служб машинного обучения SQL Server 2022 (Python и R) в Windows.
После установки предварительно обученные модели считаются подробными сведениями о реализации конкретных функций в библиотеках MicrosoftML (R) и Microsoftml (Python). Вы не можете просматривать, настраивать и повторно обучать модели, а также обрабатывать их как независимый ресурс в пользовательском коде или в других функциях.
Чтобы использовать предварительно обученные модели, вызовите функции, указанные в следующей таблице.
Функция R (MicrosoftML) | Функция Python (microsoftml) | Использование |
---|---|---|
getSentiment | get_sentiment | Формирует положительную или отрицательную оценку тональности для текстовых входных данных. |
featurizeImage | featurize_image | Извлекает текстовые данные из входного файла изображения. |
Необходимые компоненты
Алгоритмы машинного обучения обладают высокими требованиями к вычислительным ресурсам. Рекомендуется использовать 16 ГБ ОЗУ для низко-умеренных рабочих нагрузок, включая выполнение пошаговых руководств по использованию всех примеров данных.
Для добавления предварительно обученных моделей необходимо иметь права администратора на компьютере и SQL Server.
Необходимо включить внешние сценарии, а на SQL Server должна быть запущена служба панели запуска. Инструкции по установке содержат инструкции по включению и проверке этих компонентов.
Скачайте и установите последнее накопительное обновление для вашей версии SQL Server. См. Последние обновления для Microsoft SQL Server.
Пакет MicrosoftML R или пакет Microsoftml Python содержат предварительно обученные модели.
Службы машинного обучения SQL Server включают версии библиотеки машинного обучения для обоих языков, поэтому это условие выполняется без каких-либо дополнительных действий с вашей стороны. Так как библиотеки присутствуют, можно использовать сценарий PowerShell, описанный в этой статье, чтобы добавить предварительно обученные модели в эти библиотеки.
Пакет MicrosoftML R содержит предварительно обученные модели.
Службы SQL Server R Services, предназначенные только для языка R, не содержат пакет MicrosoftML. Чтобы добавить пакет MicrosoftML, необходимо выполнить обновление компонентов. Одним из преимуществ обновления компонента является то, что можно одновременно добавлять предварительно обученные модели, что делает выполнение скрипта PowerShell ненужным. Однако если вы уже обновили, но пропустили добавление предварительно обученных моделей в первый раз, можно запустить сценарий PowerShell, как описано в этой статье. Он работает для обеих версий SQL Server. Перед выполнением сценария убедитесь, что библиотека MicrosoftML в C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library
существует.
Проверьте, установлены ли предварительно обученные модели
Пути установки для моделей 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
Если модели уже установлены, перейдите к шагу проверки, чтобы подтвердить доступность.
Скачивание сценария установки
Чтобы скачать файл Install-MLModels.ps1, перейдите на страницу https://aka.ms/mlm4sql. На странице GitHub выберите "Скачать необработанный файл".
Выполнение с повышенными привилегиями
Запустите PowerShell. На панели задач щелкните правой кнопкой мыши значок программы PowerShell и выберите Запуск от имени администратора.
Рекомендуемая политика выполнения в процессе установки — "RemoteSigned". Дополнительные сведения о настройке политики выполнения PowerShell см. в разделе Set-ExecutionPolicy. Например:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Введите полный путь к файлу скрипта установки и добавьте имя экземпляра. Если сценарий находится в папке Downloads и используется экземпляр по умолчанию, команда может выглядеть следующим образом:
PS C:\WINDOWS\system32> C:\Users\<user-name>\Downloads\Install-MLModels.ps1 MSSQLSERVER
Выходные данные
На экземпляре по умолчанию Служб машинного обучения 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
Запустите RGUI.EXE с
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\bin\x64
.Вставьте в командную строку следующий сценарий 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
Нажмите клавишу ВВОД , чтобы просмотреть оценки тональности. Выходные данные должны выглядеть следующим образом:
> 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
Запустите Python.exe в
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES
.Вставьте следующий скрипт 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)
Нажмите клавишу ВВОД, чтобы распечатать оценки. Выходные данные должны выглядеть следующим образом:
>>> 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 >>>
Примечание.
Если демонстрационные сценарии завершаются с ошибкой, проверьте расположение файла. В системах с несколькими экземплярами SQL Server или для экземпляров, работающих параллельно с автономными версиями, сценарий установки может некорректно считывать параметры среды и размещать файлы в неправильном месте. Как правило, для устранения этой проблемы достаточно вручную скопировать файлы в правильную папку mxlib.
Примеры использования предварительно обученных моделей
Следующая ссылка содержит пример кода, вызывающего предварительно обученные модели.
Исследования и ресурсы
Сейчас доступны модели глубокой нейронной сети для анализа тональности и классификации изображений. Все предварительно обученные модели обучены с помощью набора средств сети вычислений Майкрософт (CNTK).
Конфигурация каждой сети была основана на следующих эталонных реализациях:
ResNet-18
ResNet-50
ResNet-101
AlexNet
Дополнительные сведения об алгоритмах, используемых в этих моделях глубокого обучения, и о том, как они реализуются и обучаются с помощью CNTK, см. в следующих статьях: