Openbravo-rus.ru

Образование по русски
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Архитектура машинного обучения

Микросервисная архитектура при решении задач машинного обучения

Рубрика: Информационные технологии

Дата публикации: 09.06.2019 2019-06-09

Статья просмотрена: 93 раза

Библиографическое описание:

Калевич, В. В. Микросервисная архитектура при решении задач машинного обучения / В. В. Калевич. — Текст : непосредственный, электронный // Молодой ученый. — 2019. — № 23 (261). — С. 17-19. — URL: https://moluch.ru/archive/261/60192/ (дата обращения: 15.04.2020).

Машинное обучение (как и «глубокое обучение») становятся все более популярными и широко используемыми. К наиболее частым ситуациям использования машинного обучения, способным быть внедренными практически во всех коммерческих отраслях, относятся следующие: рекомендации, классификация пользователей, подбор релевантного контента. Но ML и DL обычно помогают решению вышеперечисленных ситуаций путем анализа данных определенным алгоритмом обучения, что приводит к вопросу о том, а как ML и DL могут быть интегрированы в приложение?

Рассмотрим процесс прохождения информации через приложение, при котором возможно эффективное использование ML. В качестве примера возьмем систему автоматического общения (чат-бот), которая на основании геолокации, подписок, интересов пользователя и пользовательского запроса способна выдать наиболее релевантный и подходящий ответ.

Рис. 1. Схема обработки пользовательских данных алгоритмами обучения с построением рекомендации

Чтобы добавить ML в приложение, необходимо реализовать две основные функции:

– обучение (также известное как разработка или создание модели). Учебный конвейер («training pipeline») анализирует данные с использованием выбранного вами алгоритма ML и создает модель с выделенными паттернами, использующимися на следующем шаге.

– вывод (также известный как выбор модели, прогнозирование или иногда подсчет очков, ранжирование). Это то, где входные данные из приложения (контент приложения) пропускаются через модель («prediction function»), способную генерировать желаемую рекомендацию.

Главным модулем ML для интеграции является функция вывода. Ввод — это специфические для контекста параметры (информация о пользователе, геолокация, подписчики), а вывод — рекомендация.

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

Результаты модуля обучения (то есть новые модели) должны быть предоставлены модулю вывода.

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

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

Рис. 2. Схема микросервисной архитектуры

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

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

– ML алгоритмы и стратегии могут быть изменены без влияния на основное приложение. Например, первичная модель может быть заменена альтернативной моделью или ансамблем без необходимости выпуска обновления в основное приложение;

– управление ресурсами может стать более гибким. В зависимости от используемых алгоритмов ML для эффективного обучения и / или вывода могут потребоваться значительные ресурсы ЦП или специальное оборудование, такое как графические процессоры. Они могут быть развернуты без изменения конфигурации ресурсов основного приложения и могут использоваться совместно несколькими приложениями;

– модели могут использоваться совместно (и моделировать тренировки за счет использования нескольких приложений).

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

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

Профессия Data Scientist: машинное обучение

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

Записаться на курс

  • Длительность 13 месяцев
  • Помощь в трудоустройстве
  • 7 курсов в одной программе
  • Доступ к курсу навсегда

На рынке не хватает специалистов по Data Science

  • 2 300 компаний сейчас ищут специалистов в Data Science & Machine Learning
  • 80 000 рублей зарплата начинающего специалиста

Данные сайта hh.ru

Кому подойдёт этот курс

Новичкам в IT

Вы получите базовые навыки по аналитике, статистике и математике, которые откроют путь к карьере в Data Science и Machine Learning.

Программистам

Вы прокачаете свои знания и навыки в программировании на Python. Научитесь использовать алгоритмы машинного обучения, решать бизнес-задачи — и усилите портфолио мощными проектами.

Менеджерам и владельцам бизнеса

Научитесь использовать данные для построения прогнозов и оптимизации бизнес-процессов и переведёте компанию на новый уровень.

Чему вы научитесь

Программировать на Python

Визуализировать данные

Работать с библиотеками и базами данных

Применять нейронные сети для решения реальных задач

Строить модели машинного обучения

Писать рекомендательные системы

От первого урока к работе мечты

Студенты и выпускники Skillbox получают индивидуальную поддержку от Центра карьеры на протяжении всего обучения — от помощи с выбором профессии до выхода на работу мечты. Вот как это происходит.

С каждым уроком ваш профессиональный уровень растёт и вы можете планировать карьеру уже во время обучения.

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

Выбираете лучшую вакансию

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

Начинаете карьеру мечты

Вы успешно проходите собеседование, выходите на работу и сразу начинаете выполнять задачи.

Записаться на курс или получить бесплатную консультацию

Похоже произошла ошибка. Попробуйте отправить снова или перезагрузите страницу.

Ваша заявка успешно отправлена

Как проходит обучение

Изучаете тему

В курсе — практические видеоуроки.

Выполняете задания

В том темпе, в котором вам удобно.

Работаете с наставником

Закрепляете знания и исправляете ошибки.

Защищаете дипломную работу

И дополняете ею своё портфолио.

Программа

Вас ждут 7 курсов с разным уровнем сложности, знание которых можно приравнять к году работы.

  1. Аналитика. Начальный уровень
  1. Введение.
  2. Основы Python: базовые структуры данных.
  3. Основы Python: циклы и условия.
  4. Основы Python: функции.
  5. Основы Python: классы и объекты.
  6. Основы Python: исключения.
  7. Библиотека NumPy. Часть 1.
  8. Библиотека NumPy. Часть 2.
  9. Библиотека pandas. Часть 1.
  10. Библиотека pandas. Часть 2.
  11. Визуализация данных с помощью matplotlib.
  12. Чтение и запись данных.
  13. Введение в SQL.
  14. Работа со строками.
  1. Основы статистики и теории вероятностей.
  1. Основные концепции Machine Learning (ML).
  2. Жизненный цикл ML-проекта.
  3. Регрессия.
  4. Классификация.
  5. Кластеризация
  6. Дополнительные техники.
  7. Знакомство с Kaggle.
  1. Базовые математические объекты и SymPy. Дроби и преобразования.
  2. Базовые математические объекты и SymPy. Необходимые функции и некоторые дополнительные объекты.
  3. Функции одной переменной, их свойства и графики.
  4. Интерполяция и полиномы.
  5. Аппроксимация и преобразования функций.
  6. Функции нескольких переменных, их свойства и графики.
  7. Линейные функции.
  8. Матрицы и координаты.
  9. Линейные уравнения.
  10. Производная функции одной переменной.
  11. Производная по направлению и градиент + частные производные.
  12. Линейная регрессия.
  13. Собственные векторы и значения. Определитель.
  14. Разложения матриц.
  1. Введение в нейронные сети.
  2. Обучение нейронных сетей.
  3. Нейронные сети на практике.
  4. Свёрточные нейросети для задачи классификации изображений.
  5. Семантическая сегментация. Часть 1. Слабая локализация и полносвёрточные нейросети (FCN).
  6. Семантическая сегментация. Часть 2. Продвинутые архитектуры FCN для семантической сегментации.
  7. Детектирование объектов.
  8. От дискриминативных моделей к генеративным. Style transfer.
  9. Генеративные состязательные сети.
  10. Введение в NLP.
  11. NLP на нейросетях. Рекуррентные нейросети, классификация текстов.
  12. NLP на нейросетях. Языковые модели, Attention, Transformer.
  13. Обучение с подкреплением. Q-Learning.
  14. Обучение с подкреплением. Deep Q-Learning.
  15. Ускорение и оптимизация нейронных сетей.
  16. Внедрение в DL моделей в Production.
  17. Рекомендательные системы.
  18. Вывод моделей машинного обучения в production, post production и мониторинг.
  1. Как стать первоклассным программистом.
  2. Как искать заказы на разработку.
  3. Личный бренд разработчика.
  4. Photoshop для программиста.
  5. Вёрстка email-рассылок. Советы на реальных примерах.
  6. The state of soft skills.
  7. Как мы создавали карту развития для разработчиков.
  8. Как общаться по email и эффективно работать с почтой.
  9. Повышение своей эффективности.
  10. Спор о первом языке программирования.
  11. Саморазвитие: как я не усидел на двух стульях и нашёл третий.
  12. Data-driven подход к продуктивности — инсайты из данных миллиона людей.
  1. IT Resume and CV.
  2. Job interview: questions and answers.
  3. Teamwork.
  4. Workplace communication.
  5. Business letter.
  6. Software development.
  7. System concept development and SRS.
  8. Design.
  9. Development and Testing.
  10. Deployment and Maintenance.
Читать еще:  Обучение копирайтингу с трудоустройством

Уже учились на каком-то курсе из программы?

Скажите об этом менеджеру — за этот курс платить не придётся!

Получить полную программу курса и консультацию

Похоже произошла ошибка. Попробуйте отправить снова или перезагрузите страницу.

Как связаны Apache Kafka и Machine Learning: архитектура Big Data и IoT-систем

Рассмотрев основы Apache Kafka, сегодня мы расскажем о месте этого распределённого брокера сообщений в архитектуре Big Data систем. Читайте в нашей статье, какие компоненты Кафка обеспечивают ее использование в программных продуктах машинного обучения (Machine Learning, ML), интернете вещей (Internet Of Things, IoT), системах бизнес-аналитики (Business Intelligence, BI), а также других высоконагруженных средствах обработки и хранения больших данных.

Типовая архитектура Big Data систем с Apache Kafka

Успех современного бизнеса в data-driven мире напрямую зависит от скорости обработки информации и реакции на факты, полученные в результате этого процесса. Например, банку нужно обнаружить мошенничество еще до того, как злоумышленник похитит деньги с кредитной карты клиента, а интернет-магазин стремится предложить посетителю товар, который его заинтересует, только на основании поисковых запросов. Промышленные IoT-платформы с помощью алгоритмов машинного обучения составляют графики профилактического ремонта технологического оборудования, анализируя данные, поступающие со множества датчиков, сенсоров и других smart-устройств.

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

В частности, приложения могут отправлять свои сообщения в кластер Kafka по REST-протоколу, а IoT-устройства – по протоколу MQTT. Подключение к базам данных (реляционным и NoSQL), файловым хранилищам (включая HDFS в Apache Hadoop) и облачным сервисам хранения Big Data (например, Amazon S3) реализуется через фреймворк Kafka Connect [1]. Реестр схем данных (Schema Registry) позволяет работать с различными структурами и форматами представления информации, а для анализа данных в реальном времени, что особенно важно в случае BI-дэшбордов и ML-систем, используется SQL-подобный инструмент KSQL [2].

Централизованное управление всеми распределенными сервисами с гарантированной сохранностью данных и контролем работоспособности каждого узла обеспечивает служба Apache ZooKeeper [3].

Типовая архитектура Big Data системы

Использование Кафка в высоконагруженных ML-системах

В реальности подобная архитектура реализуется во многих Big Data системах корпоративных и облачных решений. Например, IoT Data Platform на Mail.ru Cloud Solutions использует Kafka на этапе получения сообщений от smart-устройств для последующей их обработки средствами Apache Spark и хранения в Hadoop-кластере. При этом анализ и визуализацию необходимых данных выполняют внешние программные решения – ClickHouse (колоночная аналитическая СУБД от Яндекса) и Tableau (BI-сервис) [4].

IoT Data Platform на Mail.ru Cloud Solutions

Подобным образом с 2014 года Apache Kafka используется сервисом водителей Uber, агрегируя логи (журналы изменений) из реляционных СУБД и нереляционных баз данных типа «ключ-значение» (key-value) с целью ETL-преобразований в рамках BI-аналитики [5].

Аналогично Кафка и Apache Spark используются риэлтерской площадкой ЦИАН для сбора данных в режиме реального времени о поведении пользователей с внутренних и внешних источников. После агрегации и соответствующей обработки эта информация используется в моделях машинного обучения для предиктивной и постфактумной BI-аналитики и генерации персонализированных маркетинговых предложений, в частности, рассылок из CRM-системы и онлайн-рекомендаций [6]. Какие именно свойства Кафка используются в этом случае и прочих потребностях обработки данных в Big Data и IoT-системах, читайте в нашей следующей статье.

Пример использования Apache Kafka и Apache Spark в сервисе недвижимости ЦИАН

Узнайте больше про компоненты и средства настройки Apache Кафка на практических курсах Администрирование кластера Kafka в лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов для руководителей, аналитиков, архитекторов, инженеров и исследователей Big Data в Москве.

Гид по структуре машинного обучения

Контент-маркетолог Мария Пушикова специально для блога Нетологии перевела статью Charles-Antoine Richard о том, что такое машинное обучение и какие методы машинного обучения существуют.

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

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

Машинное обучение — это…

Вот самое простое определение, которое я нашел:

Машинное обучение — это «[…] класс методов искусственного интеллекта, которые позволяют улучшить результаты работы компьютеров путем обучения на известных данных», — Berkeley.

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

…подраздел искусственного интеллекта (ИИ)

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

…способ решения практических задач

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

… способ увеличить эффективность компьютеров

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

…технология, основанная на опыте

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

Простой пример:

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

Как работает машинное обучение

Машинное обучение часто называют волшебным или черным ящиком:

Вводишь данные → «волшебный черный ящик» → Миссия выполнена.

Давайте посмотрим на сам процесс обучения, чтобы лучше понять, как машинное обучение справляется с данными.

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

Очистка

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

Разделение

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

Читать еще:  Обучение публичному выступлению

Обучение

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

Чтобы было проще, сосредоточимся на нейронных сетях.

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

Оценка

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

Оптимизация

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

Какие существуют типы машинного обучения и чем они отличаются

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

  • обучение с учителем (supervised learning);
  • обучение без учителя, или самообучение (unsupervised learning);
  • обучение с подкреплением (reinforcement learning).

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

Обучение с учителем (supervised learning)

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

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

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

Обучение без учителя (unsupervised learning)

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

Обучение с подкреплением

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

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

Логические игры также хорошо подходят для обучения с подкреплением, так как они традиционно содержат логическую цепочку решений: например, покер, нарды и го, в которую недавно выиграл AlphaGo от Google. Этот метод обучения также часто применяется в логистике, составлении графиков и тактическом планировании задач.

Для чего можно использовать машинное обучение

В бизнесе можно рассматривать три сферы применения машинного обучения: описательную, прогнозирующую и нормативную.

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

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

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

Кроме того, я бы добавил еще одно применение машинного обучения, отличное от прогнозного: автоматизация процессов. Прочесть об этом можно здесь.

Вот несколько примеров задач, которые решает машинное обучение.

Логистика и производство

  • В Rethink Robotics используют машинное обучение для обучения манипуляторов и увеличения скорости производства;
  • В JaybridgeRobotics автоматизируют промышленные транспортные средства промышленного класса для более эффективной работы;
  • В Nanotronics автоматизируют оптические микроскопы для улучшения результатов осмотра;
  • Netflix и Amazon оптимизируют распределение ресурсов в соответствии с потребностями пользователей;
  • Другие примеры: прогнозирование потребностей ERP/ERM; прогнозирование сбоев и улучшение техобслуживания, улучшение контроля качества и увеличение мощности производственной линии.

Продажи и маркетинг

  • 6sense прогнозирует, какой лид и в какое время наиболее склонен к покупке;
  • Salesforce Einstein помогает предвидеть возможности для продаж и автоматизировать задачи;
  • Fusemachines автоматизирует планы продаж с помощью AI;
  • AirPR предлагает пути повышения эффективности PR;
  • Retention Science предлагает кросс-канальное вовлечение;
  • Другие примеры: прогнозирование стоимости жизненного цикла клиента, повышение точности сегментации клиентов, выявление клиентских моделей покупок, и оптимизация опыта пользователя в приложениях.

Кадры

  • Entelo помогает рекрутерам находить и отбирать кандидатов;
  • HiQ помогает менеджерам в управлении талантами.

Финансы

  • Cerebellum Capital and Sentient используют машинное обучение для улучшения процесса принятия инвестиционных решений;
  • Dataminr может помочь с текущими финансовыми решениями, заранее оповещая о социальных тенденциях и последних новостях;
  • Другие примеры: выявление случаев мошенничества и прогнозирование цен на акции.

Здравоохранение

  • Atomwise использует прогнозные модели для уменьшения времени производства лекарств;
  • Deep6 Analytics определяет подходящих пациентов для клинических испытаний;
  • Другие примеры: более точная диагностика заболеваний, улучшение персонализированного ухода и оценка рисков для здоровья.

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

Вместо заключения

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

Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации.

Применение машинного обучения в системах хранения

С недавних пор во многих компаниях, прежде всего крупных, стали чаще обращать внимание на накопленные за годы работы данные. С внедрением систем искусственного интеллекта они стали открывать для себя дополнительную ценность ранее собранной информации. Она используется для оптимизации не только бизнеса, но и работы инфраструктуры. Раскрыть скрытый потенциал данных помогают алгоритмы машинного обучения (machine learning, ML).

Лямбда-архитектура

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

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

Читать еще:  Налоговый вычет за обучение у репетитора

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

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

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

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

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

Каппа-архитектура

Альтернативное решение под названием «каппа-архитектура», нацеленное на устранение недостатков, присущих лямбда-архитектуре, предложил Джей Крепс, сооснователь и CEO компании Confluent, один из создателей платформы Apache Kafka. Его главное отличие состоит в том, что обработка потока входящих данных ведется в рамках одного направления их перемещения.

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

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

Альтернативные решения на базе Apache

Сложная и ресурсоемкая модель лямбда-архитектуры часто заставляет компании искать взамен более простые решения. Выбор в этом случае может быть связан с использованием разработок Apache Foundation.

Один из вариантов — применять асинхронные вычислительные среды для обработки потоковых данных. Это позволяет получать результаты с малой задержкой, приближенной к реальному времени. Такую возможность предоставляет фреймворк Apache Samza, созданный на базе Scala и Java; он подключается к распределенному брокеру сообщений Apache Kafka.

Другой вариант связан с делением потоковых данных на микропартии для самостоятельной обработки. В этом случае применяют платформу Batch вместе с Apache Spark Streaming. Такое решение также обеспечивает умеренные задержки (около 1 с).

Есть также сведения о применении расширения Trident, представляющего собой высокоуровневую абстракцию поверх фреймворка Apache Storm. Этот механизм обеспечивает обработку потоков в виде небольших пакетов и осуществляет пакетное агрегирование, реализуя тем самым распределенные потоковые вычисления.

Специализированные чипы

Решить проблему устранения слишком длинных задержек при интеграции ML позволяет использование программируемых интегральных микросхем (FPGA). В отличие от традиционных, использующих встроенную («прошитую») логику для обработки данных, алгоритмы обработки в микросхемах FPGA задаются путем их программирования. Для записи требуется специальный программатор и умение работать в IDE.

Программируемые микросхемы FPGA давно используются в электротехнике. Однако до недавнего времени они оставались в тени. Их широкому распространению мешала сложность отладки созданных на их базе продуктов, поскольку требовалось программирование на низком, аппаратном уровне.

Рост популярности начался в 2015 г. Тогда Intel купила за 16,7 млрд. долл. одного из главных производителей FPGA — компанию Altera. Следом появился пакет Intel FPGA SDK для OpenCL, благодаря которому разработчики смогли создавать ускорители на базе FPGA, применяя их для улучшения характеристик стандартных процессоров. Немного позднее Intel анонсировала выпуск эталонного дизайна нейронной сети для систем глубокого обучения, реализовав прототип на FPGA-моделях Stratix и Arria.

Выбор FPGA для ML диктуется двумя достоинствами этой технологии. Во-первых, для работы микросхем FPGA не требуется применять ОС общего назначения (Windows, Linux) — они являются главными «виновниками» больших задержек при работе ML. Во-вторых, в FPGA может быть использована «особая» поддержка для операций с плавающей запятой, являющейся важной составляющей в работе алгоритмов ML.

Преимущество FPGA над универсальными процессорами возникает благодаря тому, что в задачах ML не требуется высокая точность в расчетах. FPGA могут выполнять операции с плавающей запятой, например, с 8-разрядной точностью. Поэтому даже при работе на более низкой частоте (обычно 50 МГц), FPGA существенно опережают по быстродействию своих конкурентов.

Контейнеризация для ML

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

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

Среди примеров использования контейнерной обработки для ML можно выделить проект Google TensorFlow. Эта разработка началась в 2011 г. в Google Brain, подразделении Alphabet. Первоначально этот проект рассматривался как создание закрытой ML-системы для работы с нейронными сетями глубокого обучения и автоматического нахождения и классификации образов. Однако созданная Python-библиотека нашла широкое применение во многих исследовательских и коммерческих проектах Google, включая Google Cloud Speech, Google Photos и Google Search, что стало причиной сделать в 2015 г. проект TensorFlow открытым.

В 2016 г. Google выпустила аппаратный ускоритель, получивший название «тензорный процессор» (TPU). Он был адаптирован под решение задачи глубинного обучения для TensorFlow, обеспечивая высокую производительность при использовании 8-разрядной архитектуры. Позднее Google предложила поддержку TensorFlow для практически любых платформ, включая контейнеры.

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

Промышленные примеры применения ML для управления ИТ-инфраструктурой

Dell EMC. В 2018 г. компания выпустила линейку систем хранения PowerMax. Уже на старте они были названы «самыми быстрыми массивами хранения данных в мире». Согласно спецификации, PowerMax действительно обладает уникальными характеристиками. Ее производительность достигает 10 млн. IOPS, пропускная способность — 150 Гб/с, время отклика сократилось на 50% по сравнению с традиционными системами. PowerMax хорошо работает как с большими данными, так и с транзакционными нагрузками, обеспечивает высокую производительность для виртуальных машин и пр.

Высокая производительность PowerMax во многом, конечно, связана с переходом на новое поколение носителей данных, использующих протокол NVMe. Но существенный вклад также вносит применение алгоритмов ML. Они используются, в частности, для автоматизации обработки потоков ввода-вывода и интеллектуального размещения данных в хранилище. Применяя ML, данные на входе ассоциируются с ожидаемым спросом и размещаются на носителе (флэш или устройства хранения Class Memory), который наиболее подходит с учетом выбора ИИ. Все происходит автоматически, поэтому даже без настройки PowerMax позволяет выстраивать высокопроизводительные хранилища, сам управляет политиками переноса данных и осуществляет балансировку рабочей нагрузки.

Hewlett Packard Enterprise. Компания предлагает применять ML для интеллектуального размещения данных в гибридном облаке. Как правило, выбор места для размещения данных в этом случае возлагается на ИТ-отдел. Там вручную отслеживают эффективность работы систем хранения в корпоративном хранилище ЦОДа и на хостингах в публичных облаках, перемещая затем массивы данные в случае выявления проблем.

В HPE предложили управлять инфраструктурой с использованием ИИ: HPE InfoSight анализирует в реальном времени рабочие нагрузки используемых систем хранения и обеспечивает перемещение данных в оптимальное место с учетом различных показателей: стоимости хранения, производительности, близости к заказчику, доступной емкости. Рост надежности и качества предсказаний, которые делает HPE InfoSight, достигается за счет непрерывного обучения алгоритмов ML.

Ссылка на основную публикацию
Adblock
detector