logz.io является партнером по передовым технологиям AWS Partner Network (APN) с Компетенции AWS в области DevOps, безопасности, данных и аналитики. Logz.io предлагает платформу наблюдения «программное обеспечение как услуга» (SaaS), основанную на лучших в своем классе программных решениях с открытым исходным кодом для аналитики журналов, метрик и отслеживания. Клиенты отправляют в Logz.io все больше данных из различных источников данных для управления работоспособностью и производительностью своих приложений и служб. Это может быть ошеломляющим для новых пользователей, которые хотят перемещаться по различным панелям мониторинга, созданным с течением времени, обрабатывать различные уведомления о предупреждениях и соединять точки при устранении неполадок в работе.
Среднее время обнаружения (MTTD) и среднее время разрешения (MTTR) являются ключевыми показателями для наших клиентов. Они рассчитываются путем измерения времени, когда пользователь на нашей платформе начинает исследовать проблему (например, производственная служба не работает) до момента, когда он прекращает выполнять действия на платформе, связанные с конкретным расследованием.
Чтобы помочь клиентам сократить MTTD и MTTR, Logz.io обращается к машинному обучению (ML), чтобы предоставлять рекомендации для соответствующих панелей мониторинга и запросов, а также выполнять обнаружение аномалий посредством самообучения. В результате средний пользователь получает совокупный опыт всей своей компании, опираясь на мудрость многих. Мы обнаружили, что наше решение может снизить MTTR до 20%.
По мере уменьшения MTTD пользователи могут быстрее идентифицировать проблему и решить ее. Наш семантический слой данных содержит семантику для запуска и остановки расследования, а также популярность каждого действия, которое пользователь выполняет в отношении определенного предупреждения.
В этом посте мы рассказываем, как Logz.io использовал Создатель мудреца Амазонки чтобы сократить время и усилия для проверки концепции (POC), экспериментов от исследований до оценки производства, а также то, как мы сократили наши производственные затраты.
Задача
До тех пор, пока Logz.io не использовал SageMaker, время между исследованиями и тестированием POC и экспериментами на производстве было довольно продолжительным. Это было связано с тем, что нам нужно было создать задания Spark для сбора, очистки и нормализации данных. Эта работа требуется DevOps для чтения каждого источника данных. Навыки DevOps и инженерии данных не входят в нашу команду машинного обучения, и это привело к высокой зависимости между командами.
Еще одна задача заключалась в том, чтобы предоставить нашим продуктам услугу логического вывода на основе машинного обучения, достигнув при этом оптимального соотношения цены и производительности. Наш оптимальный сценарий — поддерживать как можно больше моделей для вычислительного устройства, обеспечивая при этом высокий уровень параллелизма от клиентов со многими моделями. У нас была гибкость в отношении времени вывода, потому что наше начальное окно потока данных для службы вывода — это 5-минутная корзина журналов.
Фаза исследования
Наука о данных — это итеративный процесс, требующий интерактивной среды разработки для исследований, проверки выходных данных на каждой итерации и обработки данных. Поэтому мы рекомендуем нашим исследователям машинного обучения использовать ноутбуки.
Чтобы ускорить итерационный цикл, мы хотели протестировать код наших ноутбуков на реальных производственных данных, запуская его в масштабе. Кроме того, мы хотели избежать узких мест, связанных с DevOps и обработкой данных во время первоначального тестирования в рабочей среде, имея при этом возможность просматривать результаты и пытаться оценить время выполнения кода.
Чтобы реализовать это, мы хотели предоставить нашей команде специалистов по обработке и анализу данных полный контроль и сквозную ответственность, начиная с исследований и заканчивая первоначальными испытаниями в производстве. Нам нужно было, чтобы они легко извлекали данные, сохраняя при этом управление доступом к данным и отслеживая этот доступ. Им также необходимо было легко развертывать свои пользовательские ноутбуки POC в производстве с возможностью масштабирования, при этом отслеживая время выполнения и ожидаемые затраты.
Этап оценки
На этом этапе мы оценили несколько платформ машинного обучения, чтобы удовлетворить требования как к обучению, так и к обслуживанию. Мы обнаружили, что SageMaker лучше всего подходит для наших случаев использования, поскольку поддерживает как обучение, так и логические выводы. Кроме того, его можно настраивать, поэтому мы можем адаптировать его в соответствии с предпочитаемым нами исследовательским процессом.
Изначально мы начали с локальных ноутбуков, тестируя различные библиотеки. Мы столкнулись с проблемами при извлечении массивных данных из производства. Позже мы застряли на этапе моделирования, который занял много часов на локальной машине.
Мы оценили множество решений и в итоге остановились на следующей архитектуре:
- Табличка данных - Версия с открытым исходным кодом Табличка данных помогли нам легко извлекать и объединять наши данные с помощью нашего Spark Амазонка ЭМИ кластеры с простым SQL, при этом отслеживая доступ к данным
- Экземпляр блокнота SageMaker и задания обработки — Это помогло нам с масштабируемостью среды выполнения и гибкостью типов машин и платформ машинного обучения при совместной работе над нашим кодом через соединение Git.
Архитектура решения на этапе исследования
Следующая диаграмма иллюстрирует архитектуру решения на этапе исследования и состоит из следующих компонентов:
- Блокноты SageMaker – Исследователи данных используют их ноутбуки проводить свои исследования.
- Лямбда-функция AWS – AWS Lambda — это бессерверное решение, которое запускает задание обработки по требованию. В задании используется контейнер Docker с записной книжкой, которую мы хотим запустить во время нашего эксперимента, вместе со всеми нашими общими файлами, которые необходимы для поддержки записной книжки (
requirements.txt
и код функций многопроцессорной обработки в отдельной записной книжке). - Амазонка ЭКР – Реестр Amazon Elastic Container (Amazon ECR) хранит наш контейнер Docker.
- Работа SageMaker Processing - Мы можем запустить это работа по обработке данных на любой машине ML, и он запускает нашу записную книжку с параметрами.
- Табличка данных – Этот сервис помогает нам использовать SQL и легко объединять несколько источников данных. Он переводит его в код Spark и оптимизирует его, одновременно отслеживая доступ к данным и помогая уменьшить утечки данных. Версия Xtra предоставила еще больше возможностей.
- Амазонка ЭМИ – Этот сервис запускает извлечение данных как рабочие нагрузки через Spark, обращаясь ко всем нашим ресурсам данных.
Благодаря жизненному циклу экземпляра записной книжки SageMaker мы можем контролировать максимальное время выполнения экземпляра записной книжки, используя autostop.py
шаблон скрипты.
После тестирования платформ машинного обучения мы выбрали ядро SageMaker MXNet для наших этапов кластеризации и ранжирования.
Чтобы протестировать код записной книжки на наших производственных данных, мы запустили записную книжку, инкапсулировав ее через Docker в Amazon ECS, и запустили ее как задание обработки, чтобы проверить максимальное время выполнения на разных типах машин.
Контейнер Docker также помогает нам распределять ресурсы между тестами ноутбуков. В некоторых случаях ноутбук призывает другие ноутбуки использовать несколько процессов, разделяя большие кадры данных на более мелкие кадры данных, которые могут выполняться одновременно на каждом виртуальном ЦП в большом типе машины.
Решение для логического вывода в реальном времени
На этапе исследования мы использовали паркет Простой сервис хранения Amazon (Amazon S3) для сохранения наших рекомендаций. Они используются один раз в день из нашего инженерного конвейера, чтобы прикрепить рекомендации к нашему механизму предупреждений.
Однако наша дорожная карта требует решения с более высокой частотой обновления, и в долгосрочной перспективе одного запроса в день недостаточно, потому что мы хотим давать рекомендации даже во время расследования.
Чтобы внедрить это решение в масштабе, мы протестировали большинство решений SageMaker для конечных точек в ходе нашего исследования по обнаружению аномалий. Мы протестировали 500 готовых моделей с одной конечной машиной различных типов и использовали параллельные многопоточные клиенты для выполнения запросов к конечной точке. Мы измерили время отклика, ЦП, память и другие показатели (дополнительную информацию см. Мониторинг Amazon SageMaker с помощью Amazon CloudWatch). Мы обнаружили, что конечная точка с несколькими моделями идеально подходит для наших вариантов использования.
Конечная точка с несколькими моделями может значительно снизить наши затраты по сравнению с одной конечной точкой или даже Kubernetes для использования веб-сервисов Flask (или других Python). Наше первое предположение заключалось в том, что мы должны предоставить единую конечную точку, используя небольшую машину с 4 виртуальными ЦП, для каждого клиента и в среднем запрашивать четыре выделенные модели, поскольку каждый виртуальный ЦП обслуживает одну модель. С мультимодельной конечной точкой мы могли объединить больше клиентов на одной машине с несколькими конечными точками.
У нас была модель и файлы кодирования для каждого клиента, и после проведения нагрузочных тестов мы определили, что можем обслуживать 50 клиентов, каждый из которых использует 10 моделей и даже использует самый маленький экземпляр ml.t2.medium для наших решений.
На этом этапе мы рассмотрели возможность использования мультимодельные конечные точки. Конечные точки с несколькими моделями предоставляют масштабируемое и экономичное решение для развертывания большого количества моделей, позволяя размещать несколько моделей в одном контейнере логического вывода. Это снижает затраты на хостинг за счет улучшения использования конечной точки по сравнению с использованием нескольких небольших конечных точек одной модели, каждая из которых обслуживает одного клиента. Это также снижает накладные расходы на развертывание, поскольку SageMaker управляет загрузкой моделей в память и их масштабированием на основе шаблонов трафика к ним.
Кроме того, преимущество конечной точки с несколькими моделями заключается в том, что если у вас высокая скорость вывода от конкретных клиентов, его структура сохраняет в памяти последние модели обслуживания для повышения производительности.
После того, как мы оценили затраты с использованием конечных точек с несколькими моделями по сравнению со стандартными конечными точками, мы обнаружили, что это потенциально может привести к снижению затрат примерно на 80%.
Исход
В этом разделе мы рассмотрим этапы и результаты процесса.
Мы используем конфигурацию записной книжки жизненного цикла, чтобы разрешить запуск записных книжек в качестве заданий обработки путем инкапсуляции записной книжки в контейнере Docker для более быстрой проверки кода и использования механизма автоматической остановки:
Мы клонируем sagemaker-run-ноутбук GitHub и добавьте в контейнер следующее:
- Наши требования к пунктам
- Возможность запускать записные книжки из записной книжки, что позволяет нам использовать многопроцессорное поведение для использования всех ядер экземпляра ml.m5.12xlarge.
Это позволяет нам запускать рабочие процессы, состоящие из множества записных книжек, выполняющихся как задания обработки в строке кода, при этом определяя тип экземпляра для запуска.
Поскольку мы можем добавлять параметры в записную книжку, мы можем масштабировать нашу обработку, запуская ее одновременно в разные часы, дни или месяцы для извлечения и обработки данных.
Мы также можем создавать задания по расписанию, которые запускают блокноты (и даже ограничивают время выполнения).
Мы также можем наблюдать за последними запусками и их деталями, такими как время обработки.
С помощью бумажной фабрики, которая используется в контейнере, мы можем просматривать выходные данные каждого запуска, что помогает нам отлаживать производство.
Наш обзор выходных данных ноутбука представлен в виде стандартного блокнота только для чтения.
Использование нескольких процессоров помогает нам масштабировать процессор каждого ноутбука и использовать все его ядра. Мы создали функции в других блокнотах, которые могут выполнять тяжелую обработку, например следующие:
- Взорвать JSON
- Найдите соответствующие строки в DataFrame, в то время как основной блокнот разбивает DataFrame на
#cpu-cores
элементы - Одновременный запуск кластеризации по типам оповещений
Затем мы добавляем эти функциональные блокноты в контейнер, который запускает блокнот в качестве задания обработки. См. следующий файл Docker (обратите внимание на команды COPY):
Итоги
На этапе исследования мы оценили возможность запуска наших блокнотов как таковых, чтобы поэкспериментировать и оценить, как наш код работает со всеми нашими соответствующими данными, а не только с выборкой данных. Мы обнаружили, что инкапсуляция наших записных книжек с помощью заданий обработки может нам очень подойти, потому что нам не нужно переписывать код, и мы можем использовать мощь инстансов AWS, оптимизированных для вычислений и памяти, и легко отслеживать состояние процесса.
Во время оценки выводов мы оценили различные решения для конечных точек SageMaker. Мы обнаружили, что использование конечной точки с несколькими моделями может помочь нам обслуживать примерно 50 клиентов, каждый из которых имеет несколько (примерно 10) моделей в одном экземпляре, что соответствует нашим ограничениям по низкой задержке и, следовательно, позволяет нам сэкономить до 80 % затрат. .
Благодаря этой архитектуре решения мы смогли сократить среднее время восстановления (MTTR) наших клиентов, которое является основным показателем успеха при использовании нашей платформы. Это сокращает общее время с момента ответа на нашу ссылку оповещения, которая описывает проблему в ваших системах, до момента, когда вы закончите исследование проблемы с помощью нашей платформы. На этапе расследования мы измеряем действия пользователей с нашим рекомендательным решением для машинного обучения и без него. Это помогает нам давать рекомендации о наилучших действиях для более быстрого решения конкретной проблемы и выявлять аномалии, чтобы определить фактическую причину проблемы.
Заключение и следующие шаги
В этом посте мы рассказали, как Logz.io использовала SageMaker для улучшения MTTD и MTTR.
В качестве следующего шага мы рассматриваем возможность расширения решения следующими функциями:
Мы рекомендуем вам попробовать Блокноты SageMaker. Дополнительные примеры см. Примеры SageMaker в репозитории GitHub.
Об авторах
Амит Гросс возглавляет исследовательский отдел Logz.io, который отвечает за ИИ-решения для всех продуктов Logz.io, от этапа исследования до этапа интеграции. До Logz.io Амит руководил группами по науке о данных и исследованиям в области безопасности в компании Here inc. и Cellebrite Inc. Амит имеет степень магистра компьютерных наук Тель-Авивского университета.
Янив Вакнин является специалистом по машинному обучению в Amazon Web Services. До прихода в AWS Янив занимал руководящие должности в стартапах ИИ и Enterprise, в том числе был соучредителем и генеральным директором Dipsee.ai. Yaniv работает с клиентами AWS, чтобы использовать возможности машинного обучения для решения реальных задач и получения прибыли. В свободное время Янив любит играть в футбол со своими мальчиками.
Эйтан Села является специалистом по машинному обучению, архитектором решений в Amazon Web Services. Он работает с клиентами AWS, предоставляя рекомендации и техническую помощь, помогая им создавать и использовать решения для машинного обучения на AWS. В свободное время Эйтан любит бегать и читать последние статьи по машинному обучению.
- '
- &
- 100
- 84
- ускорять
- доступ
- управление доступом
- По
- через
- Действие
- действия
- Передовые технологии
- плюс
- филиалы
- AI
- Все
- Amazon
- Создатель мудреца Амазонки
- Amazon Web Services
- среди
- аналитика
- обнаружение аномалии
- апаш
- Приложения
- архитектура
- статьи
- в среднем
- AWS
- основа
- ЛУЧШЕЕ
- Big Data
- нарушения
- Ошибка
- строить
- случаев
- Вызывать
- вызванный
- Генеральный директор
- вызов
- изменение
- клиентов
- Соучредитель
- код
- Общий
- Компания
- Соответствие закону
- Вычисление
- Информатика
- вычисление
- состояние
- Конфигурация
- связь
- Container
- содержит
- продолжать
- авторское право
- Расходы
- может
- Клиенты
- данным
- доступ к данным
- Нарушения данных
- обработка данных
- наука о данных
- день
- Спрос
- развертывание
- обнаружение
- Развитие
- DevOps
- различный
- распределенный
- Docker
- Докер Контейнер
- вниз
- в течение
- легко
- EBS
- эхо
- поощрять
- Конечная точка
- Проект и
- Предприятие
- Окружающая среда
- оборудованный
- оценка
- пример
- выполнение
- расширяющийся
- опыт
- эксперимент
- экспорт
- быстрее
- Особенности
- в заключение
- First
- соответствовать
- Трансформируемость
- следовать
- форма
- найденный
- Рамки
- полный
- Функции
- идти
- GitHub
- большой
- имеющий
- Медицина
- помощь
- помогает
- здесь
- High
- хостинг
- Как
- HTTPS
- определения
- изображение
- осуществлять
- улучшение
- Инк
- В том числе
- информация
- интеграции.
- интерактивный
- Интернет
- исследовать
- ходе расследования,
- вопросы
- IT
- работа
- Джобс
- присоединиться
- Основные
- Kubernetes
- язык
- большой
- последний
- вести
- Наша команда
- ведущий
- изучение
- Лицензия
- Лицензирована
- линия
- LINK
- загрузка
- локальным
- Длинное
- искать
- обучение с помощью машины
- Продукция
- управление
- проводить измерение
- средний
- Метрика
- ML
- модель
- моделирование
- Модели
- Мониторинг
- месяцев
- БОЛЕЕ
- самых
- необходимый
- сеть
- ноутбуки
- Предложения
- открытый
- Опция
- заказ
- Другое
- партнер
- партнерская сеть
- производительность
- фаза
- Платформа
- Платформы
- PoC
- мощностью
- Проблема
- процесс
- Производство
- Продукция
- FitPartner™
- Проект
- доказательство
- доказательство концепции
- обеспечивать
- тянущий
- Питон
- Reading
- реальный мир
- реального времени
- уменьшить
- Требования
- исследованиям
- Полезные ресурсы
- ответ
- обзоре
- Run
- Бег
- SaaS
- sagemaker
- Масштабируемость
- Шкала
- масштабирование
- Наука
- Ученые
- безопасность
- семантика
- Serverless
- Услуги
- выступающей
- набор
- установка
- Поделиться
- общие
- просто
- навыки
- небольшой
- So
- Футбольный
- Software
- Решения
- РЕШАТЬ
- SQL
- Этап
- и политические лидеры
- Стартапы
- Статус:
- диск
- магазины
- успех
- Судо
- поддержка
- Поддержка
- системы
- Технический
- Технологии
- тестXNUMX
- Тестирование
- тестов
- время
- вместе
- трафик
- Обучение
- ui
- Университет
- us
- пользователей
- ценностное
- версия
- Вид
- объем
- Web
- веб-сервисы
- КТО
- в
- без
- Работа
- работает
- Мир