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

MLOps: применение DevOps в машинном обучении

Если вы разработчик программного обеспечения, возможно, вы уже знакомы с жизненным циклом разработки программного обеспечения (также известным как SDLC). Одно из правил DevOps - автоматизация всех повторяющихся процессов, в том числе в процессе SDLC. Способ их автоматизации известен как конвейеры Непрерывная интеграция и Непрерывная доставка / развертывание (или просто конвейеры CI / CD). Эти конвейеры представляют собой просто цепочку автоматических задач, запускаемых событием, часто связанных с репозиторием исходного кода, например, запрос на вытягивание / слияние. Эти задачи включают в себя выполнение тестов, выполнение анализа качества и безопасности, создание артефактов, их доставку в репозиторий артефактов компании и их развертывание в потоке сред до начала производства.

Но что это должно быть с машинным обучением?

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

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

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

Это то, что олицетворяет MLOps, и работает как посол между специалистами по данным / инженерами машинного обучения и инженерами по эксплуатации / системам.

AIOps: применение машинного обучения в DevOps

AIOps, также известное как «Алгоритмические ИТ-операции», просто применяет машинное обучение к ИТ-операциям. Возможно, у вас уже есть система мониторинга и оповещения, поэтому вы можете использовать ее данные для обнаружения выбросов вместо ручного анализа и установки статических пороговых значений. В большинстве случаев, когда вы работаете с такими показателями таймсерий, как ЦП, ОЗУ, HTTP-запросы,… в определенный период времени, вы можете наблюдать колебания, и очень сложно вручную установить порог.

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

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

(Бонус) ChatOps

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

Люди недоступны 24/7, никогда. Кроме того, между событием и реакцией человека, например, уведомлением о его эскалации, могут отсутствовать пробелы. У ботов нет этих ограничений, но есть много других, поэтому работа с ботами вместе с людьми в вашем ИТ-отделе улучшит и ускорит ваши повседневные рабочие процессы.

Мне лично нравится библиотека Python Opsdroid для создания рабочих ботов, которая позволяет легко интегрировать вас с серверными модулями НЛП как услуга, такими как Wit.ai Facebook, и интерфейсами чата, такими как Telegram или Slack.