Если мы спросим определение искусственного интеллекта у 5 разных специалистов по данным, неудивительно, что мы получим 5 разных ответов. Хотя искусственный интеллект не нов, он был изобретен еще в 1960-х годах, и ученые и инженеры в крупных технологических компаниях, таких как IBM, довольно долгое время работают над некоторыми конкретными сценариями использования. Но в последнее десятилетие с появлением цифровых технологий, таких как мобильные, облачные и большие данные, их коммерческое использование увеличилось в геометрической прогрессии. Сегодня мы всегда подключены к Интернету через мобильные телефоны и выполняем множество задач с помощью различных приложений, таких как интернет-магазины, онлайн-банкинг, онлайн-торговля, социальные сети и т. Д.… И генерируем огромное количество цифровых отпечатков или данных. Эти данные, генерируемые людьми, наряду с цифровыми технологиями, дают компаниям возможность предоставлять более качественные услуги клиентам, а также помогают им увеличивать клиентскую базу.

Здесь на сцену выходит аналитика больших данных и искусственный интеллект. Как уже было сказано, существует несколько определений искусственного интеллекта, но упрощенно:

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

Теперь ИИ - это общая область исследования, но здесь нас интересует подмножество ИИ, называемое машинным обучением.

Машинное обучение - это метод науки о данных, который позволяет компьютерам использовать алгоритмы и существующие данные для прогнозирования будущего поведения, результатов и тенденций на основе новых данных. Используя машинное обучение, компьютеры учатся без явного программирования.

Пейзаж машинного обучения Azure

Машинное обучение Azure - это семейство продуктов, в которое входят:

  1. Платформа машинного обучения Azure - это полностью управляемая облачная служба с графической студией и визуальным дизайнером. Он поддерживает популярные библиотеки Python, такие как pyTorch и scikit-learn. Он также поддерживает R, язык статистического программирования, и поддерживает блокноты Azure Jupyter (это блокнот Jupyter, размещенный в Microsoft).
  2. Azure ML Studio (Classic) - это версия v1 продукта, которая теперь называется «(Classic)». Это интерактивная визуальная рабочая среда с низким кодом или без кода для обучения и развертывания моделей машинного обучения. Поскольку это историческая версия, у нее есть свои проблемы и проблемы, такие как ограничение обучающих данных в 10 ГБ, а также формат модели, являющийся проприетарным и непереносимым.
  3. Когнитивная служба Azure - это набор API-интерфейсов, доступных в виде готового продукта SaaS. В нем есть предварительно построенные модели для таких вещей, как обнаружение эмоций и сентиментальности, зрение и распознавание речи.
  4. Службы машинного обучения SQL Server / Сервер машинного обучения -. Службы машинного обучения SQL Server обеспечивают статистический анализ и прогнозную аналитику, поддерживая среды программирования Python и R для баз данных SQL Server. Таким образом, мы можем создавать и развертывать модели машинного обучения внутри SQL Server. Сервер машинного обучения Microsoft - это автономный корпоративный сервер для прогнозного анализа. Мы можем создавать и развертывать модели, используя предварительно обработанные данные. Это кроссплатформенный продукт, работающий на Windows Server и Linux.

Идея здесь в том, что Microsoft многому научилась у своего продукта v1 ML Studio. Они поняли, что хотят предоставить командам по обработке и анализу данных и инженерам по ИИ единое рабочее пространство, где каждый член команды может выполнять свою работу. Мы собираемся обнаружить, что эта новая Студия машинного обучения Azure поддерживает такие вещи, как управление доступом на основе ролей Azure, так что у вас могут быть люди, которые, возможно, не являются специалистами по данным, но больше профессионалов инфраструктуры Azure смогут взять под контроль базовую вычислительную инфраструктуру, а затем специалисты по обработке данных и инженеры ИИ, в зависимости от их опыта, могут сотрудничать, и инструмент встретит их там, где они находятся.

В этом обсуждении мы будем иметь дело исключительно с текущей версией последней версии Machine Learning Studio.

Прежде чем двигаться дальше, я хотел бы упомянуть, что эта статья не об алгоритмах или моделях машинного обучения. В этой статье рассказывается, как использовать графический интерфейс Студии машинного обучения Azure для создания конвейера машинного обучения без использования кода.

Начало работы со службой машинного обучения Azure

Чтобы создать конвейер машинного обучения, сначала войдите на портал Azure, то есть portal.azure.com. Откройте Все службы и найдите AI + машинное обучение. Будет предоставлено несколько вариантов, мы нажимаем Машинное обучение.

Как мы видим, существует несколько сервисов, теперь есть сервис машинного обучения, который мы называем V2, а затем есть сервис, называемый классическим, который является более старой версией Studio. Теперь мы переходим к клинку и просим нас создать «рабочее пространство машинного обучения».

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

Рабочая область машинного обучения Azure (рабочая область AML)

Azure ML Workspace считается ресурсом верхнего уровня в семействе машинного обучения Azure. Он предоставляет централизованное место для работы со службой машинного обучения Azure. Это похоже на логический контейнер, который содержит все ресурсы и связан со службой машинного обучения Azure. Azure предоставляет нам различные способы создания рабочей области AML, мы можем создать ее через портал Azure, шаблон ARM для программного развертывания, Azure CLI, VS Code с расширением AML, или мы можем создать его с помощью AML SDK для Python или R. В этой статье мы будет использовать портал Azure для создания ресурсов.

Поэтому, когда мы создаем новую рабочую область машинного обучения Azure, нам нужно указать группу ресурсов, имя и регион рабочей области. Когда создается новое рабочее пространство AML, оно автоматически создает учетную запись хранения, хранилище ключей, аналитику приложений и реестр контейнеров.

Теперь нажмите «Далее», чтобы добавить сведения о сети. Здесь мы можем ограничить метод подключения общедоступным или присоединить частную конечную точку, чтобы ограничить ее подключение к определенной сети. Мы сохраним значение по умолчанию в качестве общедоступной конечной точки.

Далее мы предоставим тип шифрования данных. Здесь мы можем настроить, хотим ли мы использовать ключи, управляемые Microsoft, для шифрования или если мы используем некоторые настраиваемые ключи на предприятии, то мы можем предоставить эти сведения здесь. Мы будем хранить ключи, управляемые Microsoft.

Затем мы добавим теги и перейдем на вкладку Review + create. Здесь azure проверит предоставленные данные, и если проверка будет пройдена, это позволит нам создать рабочую область, нажав «Создать».

Как только мы нажмем кнопку «Создать», будет создана новая, но пустая рабочая область машинного обучения Azure. Как уже упоминалось, это контейнер для хранения всех ресурсов службы машинного обучения Azure, и все действия мы выполняем в Студии машинного обучения Azure. Поэтому мы нажимаем кнопку «Запустить студию», чтобы открыть студию. Также есть ссылка для загрузки config.json, связанного с этим рабочим пространством. Это используется разработчиками для регистрации проектов и исходного кода в рабочей области.

Студия машинного обучения Azure

Когда мы нажимаем Запустить студию, она откроется в отдельной вкладке, и мы перейдем на ml.azure.com.

Когда мы войдем на ml.azure.com, мы получим общую схему машинного обучения. В нем говорится, что сначала регистрируйте наборы данных в рабочей области, а следующей основной задачей будет обучение моделей с использованием различных алгоритмов машинного обучения для создания точных прогнозов. Затем мы оценим модель по тестовым данным и, наконец, развернем модели как веб-сервис, используя разные вычислительные цели.

Azure ML Studio разделена на 3 раздела: «Автор», «Активы» и «Управление». Автор - раздел дает нам возможность использовать подход "сначала код" с использованием Jupyter notebook. Если мы не уверены, какой алгоритм машинного обучения нам лучше всего подходит, мы можем выполнить автоматический запуск машинного обучения, в котором Azure, используя преимущества массивных параллельных вычислений, может опробовать целый ряд различных алгоритмов, и мы можем выбрать наиболее точный. Также, если нас не устраивает код, он предоставляет нам возможность использовать графический дизайнер.

Активы - здесь идея заключается в совместной общей рабочей области. Мы можем регистрировать наборы данных, эксперименты, создавать конвейеры, модели и конечные точки, которыми мы можем поделиться. Все вносимые нами изменения отслеживаются по версии. Мы будем вдаваться в подробности при создании конвейеров.

Управление - этот раздел предназначен для управления инфраструктурой, которая находится в основе машинного обучения Azure, где у нас есть вычислительные ресурсы, хранилища данных и маркировка данных. Мы расскажем подробнее при развертывании конвейера.

Создание конвейера машинного обучения Azure

Теперь мы понимаем основы рабочего пространства машинного обучения Azure, и Azure ML Studio позволяет создать первый конвейер машинного обучения с помощью конструктора. так что щелкните значок дизайнера в левой панели Studio, он покажет вам следующий экран, содержащий целую кучу образцов. Мы также будем использовать один из готовых модулей, то есть прогноз цен на автомобили, для этого обсуждения.

В новом конвейере нажмите «простые в использовании готовые модули», чтобы создать новый конвейер. Он откроет новый экран с функцией автосохранения, что приятно. Я рекомендую вам оставить его включенным.

Теперь, как мы видим в Настройках, цель вычислений выбрана, поэтому давайте выберем цель вычислений, щелкнув ссылку Выбрать цель вычислений:

Теперь он предоставит нам 2 варианта: выбрать существующее вычисление или создать новое.

Поскольку у нас нет существующих вычислений, мы можем пойти дальше и выбрать «Создать новый». Azure порекомендует нам предопределенную конфигурацию. Если мы хотим контролировать внешний вид этого кластера с точки зрения распределения ЦП, ОЗУ, хранилища и количества узлов, мы можем перейти к вычислительным, а затем обучающим кластерам. Здесь у нас все в порядке с предустановленной конфигурацией, поэтому мы даем имя обучающему кластеру и нажимаем «Сохранить».

После сохранения нового обучающего кластера нам нужно подождать некоторое время, пока Azure предоставит необходимые ресурсы. Мы можем проверить статус в Setup compute target.

Как только учебный кластер станет доступен, мы сможем выбрать его в качестве цели вычислений. После выбора цели вычислений мы можем обновить имя конвейера на «Тестирование автоматического прогнозирования цен».

Как уже говорилось, первый шаг, который нам нужно сделать, - это ввести данные. Итак, теперь мы расширим категорию «Наборы данных» и несколько модулей для демонстрационных данных. Чтобы получить пользовательские данные, мы можем сохранить их в хранилищах данных, и тогда они будут доступны здесь в виде наборов данных, но мы используем образец набора данных для этой статьи, поэтому мы выберем данные о ценах на автомобили из образцов наборов данных и перетащим их в конструктор.

Теперь мы откроем вкладку настроек для данных о ценах на автомобили, она автоматически открывается, когда мы перетаскиваем ее, и если нам нужно открыть ее снова, мы можем выбрать задачу, и вкладка настроек откроется снова. Мы перейдем на вкладку вывода и нажмем кнопку визуализации.

Это показывает нам, как выглядят данные в этом наборе данных. Он говорит нам, что у нас 26 столбцов и 205 строк.

Мы можем прокручивать и видеть различные типы данных, которые мы анализируем в этом наборе данных о ценах. Основываясь на этих различных свойствах, и когда мы выбираем одну из этих категорий, мы можем видеть некоторые статистические данные справа, включая, что важно, уникальные значения и пропущенные значения. Мы хотим следить за столбцами, которые содержат недостающие данные, потому что это может повлиять на точность нашей модели.

Чтобы очистить данные, нам нужно выполнить действие с существующими столбцами. Для этого мы выберем «Выбрать столбцы в наборе данных» в разделе «Преобразование данных». Также обратите внимание, что эти модули имеют один или несколько портов. Здесь у данных о ценах на автомобили есть порт вывода, а у Select Columns in Dataset есть порт ввода, мы можем перетащить соединитель между двумя.

Затем мы выберем «Выбрать столбцы в наборе данных», чтобы открыть настройки, и щелкнем «Изменить столбец», чтобы включить определенные имена столбцов.

Теперь мы заглянули в набор данных и определили, что есть столбец с названием «normalized-loss», в котором много пропущенных значений, поэтому мы исключим этот столбец.

Для этого мы сначала включим все столбцы.

Затем добавит строку и исключит имя столбца.

Когда мы выберем «Исключить», появится всплывающее окно, содержащее все имена столбцов, и мы выберем столбец «normalized-loss».

Теперь нажимаем «Сохранить», чтобы сохранить изменения.

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

Теперь мы удалим отсутствующие данные, удалив строки с отсутствующими значениями. Мы вернемся к списку модулей и в нем к «Очистить отсутствующие данные». Затем мы перетащим соединительный модуль «Выбрать столбец в наборе данных».

Для очистки строк мы перейдем к настройке и в разделе «Режим очистки» выберем «Удалить всю строку». Таким образом, в любое время, когда есть недостающие данные, он удаляет всю строку. Также нам нужно выбрать столбцы, которые нужно очистить, чтобы нажать «Изменить столбец».

У нас появится всплывающее окно для выбора столбца, который будет включен в действие по очистке.

Как и раньше, мы добавим правило «Исключить» и выберем «normalized-loss». Теперь нажмите «Сохранить», чтобы сохранить изменения.

Затем для обучения мы разделим данные на 2 набора данных, то есть один для обучения и один для тестирования. И для этого мы перетащим модуль «Разделить данные».

Как мы можем заметить, модуль «Очистить отсутствующие данные» имеет 2 выходных порта, поэтому мы подключим модуль «Разделить данные» с левым портом «Очистить отсутствующие данные». Также в конфигурации «Доля строк в первом выходном наборе данных» мы разделим набор данных на соотношение 70:30, добавив значение «0,7».

Затем мы обучим модель и выберем здесь модуль «Линейная регрессия», который доступен в разделе «Алгоритмы машинного обучения».

Мы также добавим модуль «Модель обучения», который доступен в разделе «Обучение модели».

Затем мы свяжем «Linear Regression» с левым входным портом модуля «Train Model». Также будет соединен левый порт левого выходного порта модуля «Разделить данные» с правым входным портом «Train Model».

Как мы видим, в модуле «Train Model» есть значок ошибки. Затем нам нужно указать, какие столбцы следует прогнозировать (что является причиной ошибки). Для этого мы откроем раздел конфигурации модуля «Train Model», а затем «Edit Column».

Появится всплывающее окно «Label Column», и здесь мы выберем имя «price», которое оно будет предсказывать, и нажмите «Сохранить».

Теперь, когда мы видим, что ошибка исчезла, мы собираемся оценить модель.

Для этого мы перетащим модуль «Score Model», который находится под «Model Scoring and Evaluation» на холсте. Мы соединим выходной порт модуля «Модель поезда» с левым входным портом «Score Model».

Затем мы введем «Оценить модель» и соединим выходной порт «Score Model» с левым входным портом «Evaluate Model».

Теперь мы не можем забыть о нашем разделении: мы пропускаем 70% данных через наш процесс обучения, но нам также необходимо пройти через процесс тестирования 30% данных. Итак, для этого мы подключим правый выходной порт модуля «Разделить данные» к правому входному порту модуля «Score Model».

Развертывание конвейера машинного обучения Azure в тестовом кластере

Теперь наша модель завершена, и мы готовы ее запустить. Давайте сделаем это, нажав кнопку «Отправить».

Теперь появится всплывающее окно, в котором можно выбрать «эксперимент» или создать новый. Теперь эксперимент по сути представляет собой контейнер, в котором работают аналогичные конвейеры. Кроме того, нам нужно выбрать цель вычислений, если мы еще не создали ее, мы должны сначала создать ее, прежде чем мы сможем отправить эксперимент. К счастью, мы уже создали «тестовый кластер».

Поскольку у нас его нет, мы создадим новый.

Мы назовем его «Test-Auto-Price-Prediction-Exp1» и затем отправим его.

Теперь ждем, мы видим, что он в рабочем состоянии. Это займет несколько минут.

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

А пока мы можем пойти и проверить вкладку вычислений. Здесь мы видим, что 2 узла запущены и работают.

Мы можем увидеть подробности, нажав «test-cluster».

Хорошо, теперь мы видим, что все модули успешно выполняются.

Теперь мы сначала проверим оценочную модель. Мы перейдем к «Выходы + журналы» и щелкнем значок «Визуализировать».

Откроется всплывающее окно визуализации «Модель оценки», в котором мы будем искать поле «цена». Помните, что это тот же столбец, который мы выбрали для прогнозирования при настройке модуля «Train Model». Столбец «цена» содержит исходные цены на автомобили, рядом с которыми мы видим оцененную цену. Наша цель - увидеть, насколько точно наша модель машинного обучения с линейной регрессией предсказывает эти цены.

Затем мы посмотрим на данные оценки, для этого мы «Оценить модель» конфигурацию и снова щелкнем значок «визуализировать».

Доступна различная статистика ошибок. Чем меньше значение этой статистики ошибок, тем лучше они. Здесь мы будем искать «Coefficient_of_Determination», предполагается, что он близок к 1. Как мы можем видеть ниже, это очень хорошая модель.

Конвейер вывода

Далее мы создадим конвейер вывода. Когда мы нажимаем на раскрывающееся меню «Создать конвейер вывода» рядом с кнопкой «Отправить», нам будут представлены 2 варианта: «Конвейер вывода в реальном времени »и« Конвейер пакетного вывода ». Мы выберем «конвейер вывода в реальном времени».

Когда мы создаем конвейер вывода, который будет обобщен, обучающие модули исчезнут, и мы можем заметить, что Azure добавила «Входные данные веб-службы» и «Выходные данные веб-службы »Модуль.

Большая часть работы уже сделана за нас, поэтому нам нужно «Отправить», чтобы убедиться, что модель по-прежнему работает нормально. Мы можем повторно использовать эксперимент, который мы создали и запустили ранее.

Мы воспользуемся тем же обучающим кластером, то есть «test-cluster», и нажмем «Отправить».

Как мы видим, он в рабочем состоянии. Итак, у нас есть возможность создать «Кластер вывода».

Мы перейдем на вкладку «Вычислить» и откроем «Кластеры вывода». На данный момент нет доступных кластеров. Мы создадим активный кластер AKS, который будем запускать для самой конечной точки. Итак, мы нажмем «Новый».

В разделе «Сервисы Kubernetes» мы выберем переключатель «Создать» и выберем местоположение как «Восточная часть США».

Теперь это даст нам возможность выбрать семейство виртуальных машин в качестве вычисляемого. Мы выберем «Standard_D2_v2». Мы можем выбрать любую другую виртуальную машину в зависимости от наших вычислительных требований.

Затем мы должны предоставить другие конфигурации, такие как имя вычислений, цель кластера, сеть и конфигурацию SSL. Мы выберем «Dev-Test» в качестве цели кластера с 2 узлами, «Базовая» в качестве конфигурации сети, и для этой демонстрации сохраним конфигурацию SSL как отключенную. Теперь нажмем «Создать».

Как мы видим в состоянии «Создание», на создание потребуется около 15–20 минут.

Когда кластер будет готов, состояние изменится на «Успешно».

Теперь мы вернемся к нашему «конвейеру вывода в реальном времени», который успешно работает. И мы нажмем «Развернуть».

Он попросит либо «развернуть новую конечную точку в реальном времени», либо заменить существующую. Мы сохраним имя «testdeployment» и выберем тип вычислений как «Служба Azure Kubernetes». Затем мы выберем имя нашего вычисления из выпадающего списка, который мы только что создали, «Test-ML-Cluster». а затем нажмите «Развернуть».

Как мы видим на баннере вверху, он создает конечную точку.

Теперь, когда развертывание выполнено успешно, мы нажмем ссылку «просмотреть конечную точку в реальном времени».

Он откроется в отдельной вкладке. На странице сведений мы можем увидеть фактический URL-адрес конечной точки. Также он предоставит информацию, используем ли мы аутентификацию на основе ключа или токена.

Он также предоставляет нам URL-адрес документации по swagger и прямую ссылку на черновой вариант конвейера.

На вкладке потребления мы можем найти информацию, которой мы поделимся с нашими разработчиками и специалистами по данным. Мы также можем настроить аутентификацию с использованием ключа или токена. Затем у нас есть исходный код потребления на C #, python и R.

На вкладке «Тест» введите в Azure образцы данных из исходного набора для обучения. Цель состоит в том, что мы можем предоставить здесь данные в реальном времени, нажать «Test» и пройти через этот конвейер и получить результаты.

Если мы вернемся к нашему «конвейеру» и увидим, что есть 3 прохода нашего конвейера

Если мы перейдем на вкладку Datasets, мы увидим наши обучающие и тестовые наборы данных.

Если мы посмотрим на исходную группу ресурсов. Это ресурсы, которые будут созданы.

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