Въведение

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

Какво е New Relic

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

Какви проблеми решава?

Мониторингът, отстраняването на проблеми и оптимизирането на производителността, надеждността и потребителското изживяване на софтуерните приложения са от съществено значение за компаниите за ML/AI поради няколко причини:

  1. Подобрена производителност на модела:Чрез наблюдение и оптимизиране на производителността на ML приложения, компаниите могат да гарантират, че техните модели работят ефективно и дават точни резултати.
  2. Управление на ресурсите: ML приложенията често изискват значителни изчислителни ресурси, като CPU, GPU, памет и съхранение. Ефективното наблюдение и оптимизация помагат за минимизиране на използването на ресурси и свързаните с това разходи, като по този начин се гарантира рентабилно внедряване и мащабиране на ML решения.
  3. По-бързо разрешаване на проблеми:ML приложенията могат да бъдат сложни, с няколко взаимосвързани компонента, канали за данни и зависимости. Мониторингът и отстраняването на неизправности позволяват на компаниите за машинно обучение бързо да идентифицират и адресират проблемите, минимизирайки времето за престой и гарантирайки надеждността и стабилността на своите приложения.
  4. Непрекъснато подобрение: ML моделите и приложенията трябва да се актуализират редовно, за да бъдат в крак с променящите се данни и изисквания. Мониторингът и оптимизацията осигуряват ценна информация, която може да се използва за усъвършенстване на модели, подобряване на алгоритми и рационализиране на работните процеси, което води до по-добра производителност и резултати с течение на времето.

Като предлага тези услуги, 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 може да помогне за идентифицирането на проблема, като позволи на екипа да го реши и да поддържа безпроблемно изживяване при поточно предаване на съдържание за потребителите.

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

Пример: Ако има неочакван спад в точността на препоръките за филми, Log Management може да помогне за корелиране на регистрационни данни от механизма за препоръки, канали за данни и инфраструктурни компоненти, за да идентифицира основната причина и да насочи екипа към разрешаването на проблема.

Чрез използването на New Relic в производствена ML система като стрийминг на филми и платформи за препоръки, екипите могат да получат изчерпателна представа за производителността на приложението и инфраструктурата, което им позволява проактивно да адресират проблеми и да поддържат висококачествено потребителско изживяване.

Силни страни на инструмента:

  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 VM се уверете, че имате инсталирани 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 във вашата VM

След инсталирането ще видите следното във вашия терминал-

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.

Можете също така да настроите вашето табло за управление на заявки и да правите заявки за данни в реално време. В този пример той отчита всички инфраструктурни събития.

Надявам се да ви е харесало да прочетете това!

Препратки: