Развертывание веб-служб "Студия машинного обучения" (классическая версия), использующих модули импорта и экспорта данных
ОБЛАСТЬ ПРИМЕНЕНИЯ К:Машинное обучение Studio (классическая) Машинное обучение Azure
Внимание
Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.
Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классической) можно будет использовать до 31 августа 2024 г.
- См. сведения о переносе проектов машинного обучения из Студии машинного обучения (классическая версия) в Машинное обучение Azure.
- См. дополнительные сведения о Машинном обучении Azure.
Прекращается поддержка документации по Студии машинного обучения (классической). В будущем она может не обновляться.
При создании прогнозного эксперимента обычно добавляются вход и выход веб-службы. Если вы развернете эксперимент, то пользователи смогут отправлять и получать данные из веб-службы через входы и выходы. В некоторых приложениях данные пользователя могут быть доступны через веб-канал данных или уже находиться во внешнем источнике данных, таком как хранилище BLOB-объектов Azure. В этих случаях для чтения и записи данных им не требуются входы и выходы веб-службы. Вместо этого они могут использовать службу выполнения пакетов (BES) для чтения из источника данных с помощью модуля импорта данных, а записывать результаты оценки в другое расположение с помощью модуля экспорта данных.
Модули импорта и экспорта данных могут выполнять чтение и запись в различные расположения данных, такие как URL-адрес с использованием протокола HTTP, запрос Hive, база данных SQL Azure, хранилище таблиц Azure, хранилище BLOB-объектов Azure, поставщик веб-канала данных или база данных SQL Server.
В данной статье используется пример "Sample 5: Train, Test, Evaluate for Binary Classification: Adult Dataset" (Образец 5. Обучение, тестирование, оценка для классификации бинарных файлов: набор данных с контентом для взрослых). Предполагается, что набор данных уже загружен в таблицу Azure SQL с именем censusdata.
Создание обучающего эксперимента
При открытии примера "Sample 5: Train, Test, Evaluate for Binary Classification: Adult Dataset" (Образец 5. Обучение, тестирование, оценка для классификации бинарных файлов: набор данных с контентом для взрослых) используется пример набора данных Adult Census Income Binary Classification. На холсте эксперимент должен выглядеть так, как показано на рисунке ниже.
Для чтения данных из таблицы Azure SQL выполните следующие действия:
Удалите модуль набора данных.
В поле поиска компонентов введите "import".
В списке результатов найдите модуль Import Data (Импорт данных) и добавьте его на холст эксперимента.
Соедините выходные данные модуля Импорт данных и входные данные модуля Clean Missing Data (Очистка недостающих данных).
На панели свойств в раскрывающемся списке Azure SQL Database in the Azure SQL Database (База данных SQL Azure).
В полях Имя сервера базы данных, Имя базы данных, Имя пользователя и Пароль введите сведения, соответствующие базе данных.
В поле запросов базы данных введите следующий запрос:
select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata;
В нижней части холста эксперимента нажмите кнопку Run(Выполнить).
Создание прогнозного эксперимента
На следующем шаге необходимо настроить прогнозной эксперимент, из которого будет развернута веб-служба.
- В нижней части холста эксперимента щелкните Set Up Web Service (Настроить веб-службу) и выберите Predictive Web Service [Recommended] (Веб-служба прогнозной аналитики [рекомендуется]).
- Удалите из прогнозного эксперимента модули Web Service Input (Входные данные веб-службы) и Web Service Output (Выходные данные веб-службы).
- В поле поиска компонентов введите "export".
- В списке результатов найдите модуль Export Data (Экспорт данных) и добавьте его на холст эксперимента.
- Соедините выходные данные модуля Score Model (Оценка модели) и входные данные модуля Экспорт данных.
- На панели свойств в раскрывающемся списке назначения данных выберите Azure SQL Database (База данных SQL Azure).
- В полях Имя сервера базы данных, Имя базы данных, Server user account name (Имя учетной записи пользователя сервера) и Server user account password (Пароль учетной записи пользователя сервера) введите сведения, соответствующие базе данных.
- В поле Comma separated list of columns to be saved (Разделенный запятыми список столбцов для сохранения) введите "Scored Labels".
- В поле Data table name(Имя таблицы данных), введите dbo.ScoredLabels. Если таблица не существует, то она создается при запуске эксперимента или при вызове веб-службы.
- В поле Comma separated list of datatable columns (Разделенный запятыми список столбцов таблицы данных) введите "ScoredLabels".
При написании приложения, которое вызывает окончательную веб-службу, может потребоваться указать другой входной запрос или целевую таблицу во время выполнения. Чтобы настроить эти входные и выходные данные, воспользуйтесь функцией "Web Service Parameters" (Параметры веб-службы). С ее помощью можно задать свойство Data source (Источник данных) модуля Import Data (Импорт данных) и свойство "Data destination" (Назначение данных) модуля Export Data (Экспорт данных). Дополнительные сведения о параметрах веб-служб см. в статье Параметры веб-служб "Студия машинного обучения", которая опубликована в блоге, посвященном Cortana Intelligence и машинному обучению.
Чтобы настроить параметры веб-службы для запроса импорта и целевой таблицы, выполните следующие действия:
- На панели свойств модуля Импорт данных щелкните значок в правом верхнем углу поля Запрос к базе данных и выберите Set as web service parameter (Установить как параметр веб-службы).
- На панели свойств модуля Экспорт данных щелкните значок в правом верхнем углу поля Имя таблицы данных и выберите Set as web service parameter (Установить как параметр веб-службы).
- В нижней части панели свойств модуля Export Data (Экспорт данных) в разделе Web Service Parameters (Параметры веб-службы) щелкните пункт "Database query" (Запрос к базе данных) и переименуйте его в "Query" (Запрос).
- Щелкните Имя таблицы данных и измените его имя на Таблица.
По завершении эксперимент должен выглядеть так, как показано на рисунке ниже.
Теперь можно развернуть прогнозный эксперимент как веб-службу.
Развертывание веб-службы
Развертывание можно выполнить как в классическую, так и в новую веб-службу.
Развертывание классической веб-службы
Для развертывания классической веб-службы и создания использующего ее приложения выполните следующие действия:
В нижней части холста эксперимента нажмите кнопку Run(Выполнить).
По завершении выполнения щелкните Deploy Web Service (Развернуть веб-службу) и выберите Deploy Web Service [Classic] (Развернуть веб-службу [классическую]).
На панели мониторинга веб-службы найдите ключ API. Скопируйте и сохраните его для последующего использования.
В таблице Default Endpoint (Конечная точка по умолчанию) щелкните ссылку Выполнение пакета, чтобы открыть страницу справки API.
В Visual Studio создайте консольное приложение C# в Visual Studio (Создать>Проект>Visual C#>Классический рабочий стол Windows>Консольное приложение (.NET Framework).
На странице справки API в нижней части страницы найдите раздел Sample Code (Пример кода).
Скопируйте пример кода C# и вставьте его в файл Program.cs, а также удалите все ссылки на хранилище BLOB-объектов.
Обновите значение переменной apiKey , заменив его на ключ API, сохраненный ранее.
Найдите объявление запроса и обновите значения параметров веб-службы, которые передаются в модули Импорт данных и Экспорт данных. В этом случае используется исходный запрос, но определяется имя новой таблицы.
var request = new BatchExecutionRequest() { GlobalParameters = new Dictionary<string, string>() { { "Query", @"select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata" }, { "Table", "dbo.ScoredTable2" }, } };
Запустите приложение.
По завершении выполнения новая таблица добавляется в базу данных, содержащую результаты оценки.
Развертывание новой веб-службы
Примечание.
Для развертывания новой веб-службы у вас должен быть достаточный уровень разрешений в подписке, в которую выполняется развертывание веб-службы. Дополнительные сведения см. в статье Управление веб-службой с помощью портала веб-служб "Машинное обучение".
Для развертывания новой веб-службы и создания использующего ее приложения выполните следующие действия:
В нижней части холста эксперимента нажмите кнопку Run(Выполнить).
По завершении выполнения щелкните Deploy Web Service (Развернуть веб-службу) и выберите Deploy Web Service [New] (Развернуть веб-службу [новую]).
На странице "Deploy Experiment" (Развертывание эксперимента) введите имя веб-службы и выберите ценовой план, а затем нажмите кнопку Deploy (Развернуть).
На странице Быстрый запуск щелкните Consume (Использование).
В разделе Sample Code (Пример кода) щелкните Пакетная служба.
В Visual Studio создайте консольное приложение C# в Visual Studio (Создать>Проект>Visual C#>Классический рабочий стол Windows>Консольное приложение (.NET Framework).
Скопируйте пример кода C# и вставьте его в файл Program.cs.
Обновите значение переменной apiKey, заменив его на Первичный ключ, указанный в разделе Basic consumption info (Основные сведения об использовании).
Найдите объявление scoreRequest и обновите значения параметров веб-службы, которые передаются в модули Импорт данных и Экспорт данных. В этом случае используется исходный запрос, но определяется имя новой таблицы.
var scoreRequest = new { Inputs = new Dictionary<string, StringTable>() { }, GlobalParameters = new Dictionary<string, string>() { { "Query", @"select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata" }, { "Table", "dbo.ScoredTable3" }, } };
Запустите приложение.