Введение

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

Что такое новая реликвия

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

Какие проблемы он решает?

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

  1. Улучшенная производительность модели. Отслеживая и оптимизируя производительность приложений машинного обучения, компании могут гарантировать, что их модели работают эффективно и дают точные результаты.
  2. Управление ресурсами. Приложения машинного обучения часто требуют значительных вычислительных ресурсов, таких как ЦП, ГП, память и хранилище. Эффективный мониторинг и оптимизация помогают свести к минимуму использование ресурсов и связанные с этим затраты, тем самым обеспечивая рентабельное развертывание и масштабирование решений машинного обучения.
  3. Быстрое решение проблем.Приложения машинного обучения могут быть сложными, с несколькими взаимосвязанными компонентами, конвейерами данных и зависимостями. Мониторинг и устранение неполадок позволяют компаниям машинного обучения быстро выявлять и устранять проблемы, сводя к минимуму время простоя и обеспечивая надежность и стабильность своих приложений.
  4. Постоянное совершенствование: модели и приложения машинного обучения необходимо регулярно обновлять, чтобы не отставать от меняющихся данных и требований. Мониторинг и оптимизация предоставляют ценную информацию, которую можно использовать для уточнения моделей, улучшения алгоритмов и оптимизации рабочих процессов, что со временем приводит к повышению производительности и результатов.

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

Ценность, предоставляемая клиентам

Используя New Relic, компании ML/AI могут получить ценную информацию о своих приложениях и инфраструктуре, что позволит им оптимизировать производительность, заблаговременно решать проблемы и обеспечивать предоставление надежных и эффективных решений ML/AI и, следовательно, решать вышеуказанные проблемы.

Как использовать New Relic в производственной среде?

Случай использования: рекомендация фильма

New Relic может быть очень полезен в производственной среде, такой как платформа для потоковой передачи фильмов и рекомендаций, такая как Netflix, следующим образом:

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

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

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

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

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

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

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

Мониторинг производительности API.Платформы потоковой передачи фильмов часто полагаются на API для обмена данными между различными службами, такими как доставка контента, аутентификация пользователей и выставление счетов. APM от New Relic можно использовать для мониторинга производительности API, гарантируя, что эти сервисы работают эффективно и надежно.

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

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

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

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

Сильные стороны средства:

  1. Всеобъемлющий мониторинг. New Relic обеспечивает комплексный мониторинг всего программного стека, включая приложения, инфраструктуру и взаимодействие с пользователем.
  2. Поиск информации в режиме реального времени. Платформа обеспечивает мониторинг производительности и аналитику в режиме реального времени, позволяя командам обнаруживать и устранять проблемы по мере их возникновения, сводя к минимуму влияние на конечных пользователей.
  3. Широкая поддержка языков и фреймворков.New Relic поддерживает широкий спектр языков программирования, фреймворков и платформ, что делает его совместимым с разнообразными технологическими стеками и подходящими для различных типов приложений и отраслей.
  4. Настраиваемость. New Relic позволяет пользователям создавать собственные показатели, информационные панели и оповещения с учетом их конкретных потребностей, предоставляя персонализированное представление о производительности системы и помогая командам сосредоточиться на наиболее важных показателях.
  5. Простота интеграции. New Relic предлагает многочисленные возможности интеграции с популярными облачными провайдерами, такими как инструменты AWS, GCP, Azure и DevOps, а также с другими сервисами, что позволяет легко интегрировать платформу в существующие рабочие процессы и среды.
  6. Совместная работа в межфункциональных группах. Платформа обеспечивает единое представление о производительности приложений и инфраструктуры, облегчая сотрудничество между межфункциональными командами и позволяя им эффективно работать вместе над решением проблем и повышением производительности системы.

Ограничения:

  1. Стоимость. New Relic может быть дорогим, особенно для малого бизнеса и стартапов с ограниченным бюджетом. Модель ценообразования может стать дорогостоящей по мере увеличения количества отслеживаемых служб, пользователей и объема данных.
  2. Сложность. Платформа предлагает широкий спектр функций и возможностей, что может затруднить навигацию и эффективное использование некоторыми пользователями. Это может потребовать обучения для пользователей, которые плохо знакомы с мониторингом и наблюдаемостью производительности приложений.
  3. Ограниченная поддержка определенных технологий. Хотя New Relic поддерживает множество языков, фреймворков и платформ, она может не обеспечивать полную поддержку некоторых конкретных технологий или вариантов использования. Пользователи, работающие с менее распространенными технологиями, могут столкнуться с ограничениями в мониторинге и наблюдении.
  4. Накладные расходы и влияние на производительность. Хотя New Relic стремится свести к минимуму накладные расходы, связанные с мониторингом, некоторые пользователи сообщают о влиянии на производительность при использовании платформы. Это может быть проблемой, особенно в средах с ограниченными ресурсами или при мониторинге высокочувствительных приложений.

Как интегрировать New Relic в ваш текущий проект ML?

  1. Создайте учетную запись New Relic. Перейдите на страницу регистрации New Relic (https://newrelic.com/signup) и создайте учетную запись, используя свой адрес электронной почты или поддерживаемого поставщика услуг единого входа (SSO).
  2. Войдите в свою учетную запись New Relic и получите доступ к панели инструментов New Relic One.
  3. Установите агент New Relic Python:
  • На виртуальной машине Linux убедитесь, что у вас установлены Python и pip (менеджер пакетов Python).
  • Активируйте виртуальную среду, используя
source venv/bin/activate
  • Установите агент New Relic Python с помощью pip
pip install newrelic
  • Это установит агент и необходимые зависимости.

4. Создайте файл конфигурации New Relic:

  • Чтобы сгенерировать файл конфигурации New Relic, выполните следующую команду, заменив YOUR_LICENSE_KEY вашим фактическим лицензионным ключом New Relic, а YOUR_APP_NAME — желаемым именем вашего приложения для рекомендации фильмов:
newrelic-admin generate-config YOUR_LICENSE_KEY newrelic.ini
  • Отредактируйте файл newrelic.ini, если вы хотите настроить какие-либо параметры агента, такие как ведение журнала или сбор данных.
  • Скопируйте файл newrelic.ini на свою виртуальную машину.

После установки вы увидите следующее в своем терминале:

3. Интегрируйте New Relic с вашим приложением Flask:

  • Откройте основной файл Python вашего приложения Flask (например, app.py).
  • Импортируйте пакет newrelic.agent в начало файла:
  • Перед созданием экземпляра приложения Flask инициализируйте агент New Relic, добавив следующую строку, указав путь к вашему файлу конфигурации newrelic.ini:
  • newrelic.agent.initialize('newrelic.ini')
  • Чтобы отслеживать ваше приложение Flask, оберните экземпляр вашего приложения декоратором newrelic.agent.wsgi_application():
newrelic.agent.initialize('newrelic.ini')
app = newrelic.agent.wsgi_application()(app)

3. Интегрируйте журналы:

  • Используйте эту команду на своем хосте, чтобы включить показатели инфраструктуры и журналов.
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=NRAK-OFHUHP4SF5GF3F52KZ6UBKM5SR7 NEW_RELIC_ACCOUNT_ID=3882989 /usr/local/bin/newrelic install -n logs-integration

4. Запустите приложение Flask:

  • Запустите приложение Flask с агентом New Relic, выполнив следующую команду:
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program python app.py
  • При необходимости замените app.py именем основного файла Python вашего приложения Flask.
  • Эта команда запускает ваше приложение Flask с агентом New Relic Python, который начнет отслеживать производительность вашего приложения и отправлять данные в вашу учетную запись New Relic.
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program flask --app main run --host=0.0.0.0 --port=8082

5. Следите за своим приложением рекомендации фильмов в New Relic:

  • Войдите в свою учетную запись New Relic и получите доступ к панели инструментов New Relic One.
  • На вкладке «Обозреватель объектов» вы должны увидеть свое приложение для рекомендации фильмов в списке под именем, которое вы указали на шаге 3.

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

Теперь New Relic настроен для вашего проекта рекомендации фильмов, и вы можете отслеживать, устранять неполадки и оптимизировать свое веб-приложение Flask с помощью панели управления New Relic.

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

Надеюсь, вам понравилось это читать!

Использованная литература: