Я был очень впечатлен, когда впервые использовал некоторые платформы машинного обучения с открытым исходным кодом, такие как H2O, Dataiku и Datarobot. Хотя эти платформы с открытым исходным кодом превосходны, я все же хочу создать свою собственную платформу машинного обучения по причинам, указанным ниже.

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

Это мой результат после 3 недель применения.

Репозиторий: https://github.com/easyautoml/easyml

В этой серии статей я подробно объясню систему, от архитектуры проекта до реализации.

Хорошо, приступим.

1. Разработка функций

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

Следующие функции являются обязательными в процессе построения моделей ML:

  • Загрузить данные
  • Создание моделей
  • оценки
  • Прогноз

Хорошие функции:

  • Объяснения

2. Архитектура дизайна

Система состоит из трех основных компонентов.

  • Бэкенд – внешний интерфейс: пользователь взаимодействует с системой для загрузки данных, разработки модели, подтверждения производительности и прогнозов.
  • Worker: здесь будет выполняться процесс создания модели. Обычно процесс построения модели может занимать от нескольких минут до часов, в зависимости от размера обучающих данных, поэтому асинхронная архитектура необходима.
  • Хранилище: метаданные сохраняются с помощью PostgreSQL, а сообщения, полученные от серверной части, сохраняются с помощью Redis.

В основном модель будет построена с помощью следующих шагов:

  • Пользователь разрабатывает модель во внешнем интерфейсе (например, выбирает цель, функции и оценку). После отправки информации о модели серверная часть сохраняет информацию о модели в БД и отправляет задачу в очередь.
  • Рабочий получает задачу из очереди и обрабатывает ее для построения модели.
  • После успешного построения модели рабочий процесс отправляет информацию о модели, такую ​​как имя модели, результат теста и результат проверки, обратно в серверную часть через API, а пользователь может подтвердить результат через интерфейс.

3. Подготовьте среду кодирования

Как показано на рис. 1, систему можно разделить на 2 части:

  • Хранилище
  • Бэкэнд — Фронтенд и Воркер

Для хранилища вы можете установить PostgreSQL и Redis непосредственно в свою ОС, но я настоятельно рекомендую установить их в виртуальную ОС, выполнив следующие действия.

Для серверной части, клиентской части и Worker я использовал Miniconda для создания среды непосредственно в ОС Windows. https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

Если вы хотите узнать больше подробностей, пожалуйста, проверьте парк 2 в здесь

Не стесняйтесь обращаться ко мне в LinkedIn, если вы хотите продолжить обсуждение, это будет приятно (честно).