Без управления инфраструктурой — развертывайте, управляйте и масштабируйте рабочие процессы Data Science & Machine Learning на надежной и простой в реализации платформе.

Мы выпустили Aero! Наша бесплатная пробная версия уже доступна. Пожалуйста, перейдите по ссылке здесь, чтобы следить за новостями.

Создавать программное обеспечение сложно. Создать масштабируемое, удобное в сопровождении и надежное программное обеспечение еще сложнее. Подсчитано, что 41 цент каждого доллара, потраченного на программное обеспечение, тратится впустую [1]. Это огромная сумма, и даже со всей работой, затраченной на улучшение программных проектов, они по-прежнему неэффективны в достижении результатов. Почему это? Программное обеспечение сложное, ошибки 10-летней давности могут проявиться при малейшем изменении, нанося ущерб работающим системам. Всего несколько месяцев назад появился отличный пример, когда в Microsoft Outlook была ошибка, возникшая из-за перехода года на 2022 [2], ошибка, которая годами оставалась незамеченной в одном из наиболее часто используемых элементов корпоративного программного обеспечения.

Итак, представьте, что вы берете всю сложность обычной разработки программного обеспечения, а затем пытаетесь создать совершенно новые рабочие процессы Data Science и Machine Learning поверх этой сложной среды. Это кошмар.

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

Война за ресурсы

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

Разработчики, работающие по нескольким направлениям

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

AWS + Azure выше SQL! Как это вообще возможно?! Это связано с тем, что от инженеров требуется развертывание, управление и создание собственных сред. Это требует, чтобы они выполняли не только свою работу, но и работу, для которой они могут не иметь квалификации, подготовки или желания выполнять.

Медленный цикл разработки

Нужно ли говорить больше здесь? Компьютеры быстрые, пусть они делают тяжелую работу. Если развертывание вашего рабочего процесса занимает 10 минут каждый раз, когда вы хотите его протестировать, отлов каждой из этих мелких ошибок займет гораздо больше времени. Решение этой проблемы заключается в использовании вашей локальной машины! Разработчикам нужна среда, которую можно быстро запустить локально для тестирования, а затем воспроизвести в производственной среде. Эта быстрая итерация может позволить разработчикам оставаться в потоке и максимизировать производительность.

Раздел прототип/производство

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

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

Исправление

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

Он построен на основе открытых стандартов Metaflow [4], что позволяет разработчикам запускать рабочие процессы локально или с помощью проприетарной вычислительной платформы Aero. Эти рабочие процессы Python могут быть любыми, от крупномасштабных систем ETL до скрипта для проверки скорости ветра снаружи, мы не делаем различий. Независимо от ваших знаний об облачных технологиях, вы можете использовать их возможности с помощью платформы Aero.

Так как же Aero решает вышеуказанные проблемы?

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

Мы выпустили Aero! Наша бесплатная пробная версия уже доступна. Пожалуйста, перейдите по ссылке здесь, чтобы следить за новостями.

Отказ от ответственности: я являюсь директором Aero Technology, и, хотя я, возможно, предвзят, это потрясающий инструмент, который, я думаю, может революционизировать наш доступ к вычислениям!

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

[1] — https://www.projectsmart.co.uk/risk-management/is-software-development-risk-costing-you-money.php

[2] — https://www.engadget.com/microsoft-exchange-year-2022-bug-fix-215225070.html

[3] — https://xkcd.com/303/

[4] — https://metaflow.org/