Проектирование архитектуры искусственного интеллекта (ИИ)

Искусственный интеллект (ИИ) — это способность компьютера имитировать мышление человека. С помощью ИИ компьютеры могут анализировать изображения, понимать речь, взаимодействовать естественным образом и делать прогнозы на основе данных.

Illustration depicting the relationship of artificial intelligence as a parent concept. Within AI is machine learning. Within machine learning is deep learning.

Основные понятия ИИ

Алгоритм

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

Машинное обучение

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

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

Глубокое обучение

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

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

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

Боты

Бот — это автоматизированная программа, предназначенная для выполнения определенной задачи. Ее можно представить себе как робота без тела. Первые боты были сравнительно несложными и выполняли повторяющиеся и объемные задачи с помощью относительно простой алгоритмической логики. В качестве примера можно привести программы-обходчики, используемые поисковыми системами для автоматического сканирования и каталогизации содержимого в Интернете.

В дальнейшем боты стали гораздо более сложными. Теперь они используют ИИ и другие технологии для имитации действий человека и принятия решений, часто взаимодействуя с людьми в письменной или даже устной форме. К примерам относятся боты, которые могут принимать бронирование столов в ресторане, чат-боты (разговорный ИИ), которые помогают службе поддержки взаимодействовать с клиентами, а также боты в социальных сетях, которые публикуют последние новости или результаты научных исследований.

Корпорация Майкрософт предлагает Службу Azure Bot, управляемую службу корпоративного класса для разработки ботов.

Автономные системы

Автономные системы — это новый развивающийся класс систем, который не ограничивается базовыми возможностями автоматизации. Вместо многократного выполнения определенной задачи абсолютно одинаковым образом или с небольшими вариациями (как это делают боты) автономные системы обладают интеллектуальными возможностями и могут адаптироваться к изменяющимся условиям для достижения поставленной цели.

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

Общие сведения о решениях ИИ корпорации Майкрософт

Узнайте больше о решениях ИИ корпорации Майкрософт и следите за новостями:

Типы высокоуровневой архитектуры

Предварительно подготовленный ИИ

Предварительно подготовленный ИИ — это, как следует из названия, готовые к использованию модели ИИ, службы и интерфейсы API. Они позволяют добавлять интеллектуальные возможности к приложениям, веб-сайтам и потокам без необходимости собирать данные, а затем создавать, обучать и публиковать собственные модели.

Одним из примеров предварительно подготовленного ИИ может служить предварительно обученная модель, которую можно интегрировать без изменений или использовать в качестве основы для дальнейшего обучения. Еще один пример — облачная служба API, которую можно вызывать в любой момент для обработки текстов на естественном языке.

Azure Cognitive Services

Службы Cognitive Services дают разработчикам возможность использовать готовые интерфейсы API и наборы средств интеграции для создания приложений, которые могут видеть, слышать, говорить, понимать и даже рассуждать. Каталог служб Cognitive Services можно разделить на пять категорий, которые связаны со зрением, речью, языком, поиском в Интернете и принятием решений и выдачей рекомендаций.

Предварительно созданные модели ИИ в AI Builder

AI Builder — это новая возможность Microsoft Power Platform, которая предоставляет интерактивный интерфейс для добавления ИИ в приложения даже при отсутствии навыков программирования или обработки и анализа данных. (Некоторые функции в AI Builder еще не выпущены для общедоступной доступности и остаются в состоянии предварительной версии. Дополнительные сведения см. на странице доступности компонентов по регионам .)

Вы можете создавать и обучать собственные модели, но AI Builder также предоставляет предварительно созданные модели ИИ, готовые к использованию. Например, можно добавить компонент в Microsoft Power Apps на основе предварительно созданной модели, которая распознает контактные данные на визитных карточках.

Настраиваемый ИИ

Хотя предварительно подготовленный ИИ может быть полезен (и становится все более гибким), лучший способ получить необходимые возможности ИИ — создать систему самостоятельно. Разумеется, это очень обширная и сложная тема, но давайте рассмотрим некоторые основные понятия, помимо уже упомянутых.

Языки программирования

В основе ИИ лежит использование алгоритмов для анализа данных и создания моделей для соответствующего их описания (или оценки). Алгоритмы пишутся разработчиками и специалистами по обработке и анализу данных (а иногда другими алгоритмами) с использованием программного кода. В настоящее время два самых популярных языка программирования для разработки ИИ — это Python и R.

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

R — это язык и среда для статистических вычислений и графики. Ее можно использовать в самых разных целях: от отслеживания широкого круга социальных и рыночных тенденций в Интернете до разработки финансовых и метеорологических моделей.

Корпорация Майкрософт полностью поддерживает язык программирования R и предоставляет разработчикам на нем различные средства для выполнения кода в Azure.

Обучение

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

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

Настройка гиперпараметров

Гиперпараметры — это переменные данные, которые сами регулируют процесс обучения. Это переменные конфигурации, управляющие работой алгоритма. Поэтому гиперпараметры, как правило, задаются до начала обучения модели и не изменяются в процессе обучения, как обычные параметры. Настройка гиперпараметров предполагает выполнение пробных испытаний в рамках задачи обучения, оценку того, насколько успешно выполняется задание, и последующую корректировку по мере необходимости. В результате создается несколько моделей, каждая из которых обучена с помощью разных семейств гиперпараметров.

выбор модели;

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

Автоматизированное машинное обучение (AutoML)

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

Очки

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

  • список рекомендуемых элементов и оценка схожести;

  • числовые значения для моделей временных рядов и моделей регрессии;

  • значение вероятности того, что новые входные данные относятся к некоторой существующей категории;

  • название категории или кластера, с которыми новый элемент наиболее схож;

  • Прогнозируемый класс или результат для моделей классификации

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

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

Общие сведения о пользовательском ИИ в Azure

Предложения платформы ИИ Azure

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

Машинное обучение Azure

Ускорьте создание и развертывание моделей со службой машинного обучения корпоративного класса. Машинное обучение Azure предоставляет веб-интерфейсы и пакеты SDK, чтобы вы могли быстро обучать и развертывать модели машинного обучения и конвейеры в нужном масштабе. Использовать эти возможности можно с помощью платформ Python с открытым кодом, например PyTorch, TensorFlow и scikit-learn.

Эталонные архитектуры машинного обучения для Azure

Автоматизированное машинное обучение Azure

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

Azure Cognitive Services

Это комплексный набор служб ИИ и когнитивных интерфейсов API, который поможет вам при создании интеллектуальных приложений. Предварительно обученные модели ИИ, ориентированные на конкретные предметные области, можно настроить с использованием ваших данных.

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

Служба Azure Bot

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

Apache Spark в Azure

Apache Spark — это платформа параллельной обработки, которая поддерживает обработку в памяти, чтобы повысить производительность приложений для анализа больших данных. Spark предоставляет примитивы для кластерных вычислений в памяти. Задание Spark может загрузить данные, поместить их в кэш в памяти и запрашивать их неоднократно, что значительно повышает скорость работы по сравнению с приложениями, использующими диски, такими как Hadoop.

Apache Spark в Azure HDInsight — это реализация Apache Spark в облаке, предоставляемая корпорацией Майкрософт. Кластеры Spark в HDInsight совместимы со службой хранилища Azure и с Azure Data Lake Storage. Поэтому имеющиеся данные, хранящиеся в Azure, можно обрабатывать с помощью кластеров Spark HDInsight.

Библиотека машинного обучения Майкрософт для Apache Spark — SynapseML (прежнее название — MMLSpark). Эта библиотека с открытым кодом добавляет множество средств глубокого обучения и обработки и анализа данных, сетевых возможностей и производительности рабочей среды в экосистему Spark. Дополнительные сведения о функциях и возможностях SynapseML.

Azure Databricks Runtime для машинного обучения

Azure Databricks — это платформа для аналитики на базе Apache Spark. Платформа настраивается одним щелчком, упрощает рабочие процессы и предоставляет интерактивную рабочую область для совместной работы инженеров, бизнес-аналитиков, а также специалистов по обработке и анализу данных.

Databricks Runtime для машинного обучения (Databricks Runtime ML) позволяет запускать кластер Databricks со всеми библиотеками, необходимыми для распределенного обучения. Эта среда содержит все необходимое для машинного обучения, обработки и анализа данных. Кроме того, она содержит много популярных библиотек, включая TensorFlow, PyTorch, Keras и XGBoost. Оно также поддерживает распределенное обучение с использованием Horovod.

Истории клиентов

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

Дополнительные истории успешного использования ИИ клиентами

Следующие шаги