Это первая публикация из серии статей, посвященных разработке программного обеспечения с точки зрения систем машинного обучения.

С точки зрения разработки программного обеспечения системы машинного обучения (ML) воспринимаются как сложная комбинация инструментов и компонентов, а не просто набор алгоритмов, которые предсказывают результаты или классифицируют данные. Эти компоненты работают в унисон, чтобы создать функциональный и ценный инструмент для предприятий или организаций.

Думайте об этом, как о сборке головоломки! Мы начинаем с понимания конкретных бизнес-потребностей и целей, которые вызвали проект ML. Мы представляем идеальный пользовательский интерфейс, гарантируя, что он удобен для пользователя и прост в навигации.

Мы разрабатываем нашу систему с расчетом на масштабируемость, ремонтопригодность, производительность и безопасность.

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

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

Конвейеры данных

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

Модели машинного обучения

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

Техническое обслуживание

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

Заключение

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