Роль инженера по машинному обучению может варьироваться в зависимости от различных факторов, таких как цель компании и зрелость проекта. Задача инженера по машинному обучению — решать проблемы с помощью ИИ. Когда я говорю ИИ, я не имею в виду самый модный трансформер. Линейная регрессия, которая решает проблему и создает ценность, может быть вариантом. Имейте в виду, чтобы начать с простого. Таким образом, вы окажетесь на многообещающем пути создания решений ИИ. Создание ИИ-решения для работы в облаке потребует контейнерных решений. Здесь вы узнаете, как начать с простого и создать свое решение ИИ с помощью Docker. Работа с контейнерами — это первый шаг к запуску ваших моделей машинного обучения в производство.
Данные
Решение построено с нуля и направлено на создание прогнозов, получающих числовые данные в качестве входных данных. Мы будем использовать набор данных о диабете от sklearn. Всего у нас 442 экземпляра. Данные имеют десять характеристик: возраст (в годах), пол, ИМТ (индекс массы тела), АД (среднее артериальное давление), S1 (tc, общий холестерин сыворотки), S2 (ЛПНП, липопротеины низкой плотности), S3 (ЛПВП). , липопротеины высокой плотности), S4 (tch, общий холестерин/ЛПВП), S5 (ltg, возможно, логарифм уровня триглицеридов в сыворотке), S6 (glu, уровень сахара в крови). Результат представляет собой числовое значение, связанное с количественной мерой прогрессирования заболевания через год после исходного уровня. Больше информации в Сборке данных о диабете. Теперь вы увидите разделы с подробным описанием некоторых аспектов.
Модель
Мы используем линейную регрессию для выполнения прогнозов. Разделим набор данных на две части: обучающую и тестовую. Мы не используем данные проверки для настройки гиперпараметров. Наша цель — показать, как создать программный продукт на базе ИИ с помощью Docker. Кроме того, линейная регрессия не представляет интереса, когда мы рассматриваем настройку гиперпараметров.
Вывод
Мы загрузим обученную модель и сделаем выводы. Все данные доступны онлайн в виде файлов .csv.
Обзор
Данные, доступные онлайн, загружаются в веб-приложение. Это приложение имеет интерфейс, который предлагает пользователю предоставить ссылку на данные. Как только данные доступны, выполняется обучение и создается модель. В нашем случае мы создаем том с помощью Docker Compose, чтобы сделать эту модель доступной в папке моделей. Эта папка используется совместно с контейнером вывода.
Предлагаемая архитектура имеет два контейнера, поскольку для логического вывода требуется меньше вычислительных ресурсов. Сохранение обучения и логического вывода в одном приложении может быть проблематичным. Если вам нужно обучить модель, система не сможет сделать вывод, пока обучение не будет завершено. Это простое начальное предложение, и в зависимости от ваших потребностей вам, вероятно, придется адаптироваться и внести улучшения.
Цель этой публикации — помочь профессионалам в области машинного обучения разрабатывать масштабируемые решения и извлекать реальную пользу из своих продуктов.
У нас есть два контейнера: обучение и вывод. Контейнер обучения — это веб-приложение, которое создает нашу модель машинного обучения. Контейнер Inference загружает модель машинного обучения, созданную контейнером Training, и выполняет прогнозирование после получения данных. Результатом является массив numpy, сохраненный в формате .npy и доступный в другом томе под названием «Результаты».
Учебный контейнер
Контейнер логических выводов
Докер
Когда мы используем докер, нам нужно создать образ, и с помощью этого образа мы можем запустить контейнер с нашим приложением. Мы используем Dockerfile для создания образа Docker и docker-compose.yml для создания и запуска контейнера.
веб приложение
Дом
Поместите URL-адрес
Сообщение о завершении вывода
Применение
Для создания тренировочного образа:
docker build -f Dockerfile .
Для создания образа вывода:
docker build -f Dockerfile_inference .
Для запуска док-контейнера Training:
docker-compose -f docker-compose.yml up
Для запуска док-контейнера Inference:
docker-compose -f docker-compose-inference.yml up
Код доступен в Docker_Machine_Learning. Если у вас есть трудности, поделитесь ими со мной, и я вам помогу. Кроме того, если вы заинтересованы в MLOps, я хотел бы поговорить с вами. Давайте построим новый мир!