Задача
Как я могу выгрузить объект pickle с его собственными зависимостями?
Объект рассола, как правило, генерируется из ноутбука.
Я попытался создать virtualenv
для ноутбука, чтобы отслеживать зависимости, однако таким образом я получаю не только импорт объекта pickle, но и многие другие, которые используются в других местах приложения, что достаточно хорошо, но не лучшее решение.
Фон
Чего я пытаюсь достичь
Я пытаюсь создать поток MLOps. Краткое объяснение: MLOps - это модное слово, которое является синонимом DevOps для машинного обучения . Существуют различные решения для PaaS / SaaS, предлагаемые разными компаниями, и они обычно решают следующие проблемы:
- Автоматизация создания веб-API из моделей
- Требования к обработке / зависимости
- Хранение и запуск сценариев, используемых для генерации моделей, двоичных файлов моделей и наборов данных.
Я пропущу часть памяти и сосредоточусь на первых двух.
Как я пытаюсь достичь
В моем случае я пытаюсь настроить это, используя старый добрый TeamCity, где модели представляют собой объект pickle, сгенерированный sk-learn. Требования:
Затем конфигурация сборки в team city анализирует файл и выполняет следующее:
- Разобрать файл определения.
- Найдите код предсказателя
- Скопируйте модель выбора как модель.pickle в корневую папку приложений предиктора
- Слияние
requirements.txt
предсказателя с requirements.txt
модели рассола
- Создайте virtualenv, установите зависимости, вставьте его как колесо
В качестве вывода потока у меня есть пакет, включающий REST API, который использует модель рассола и предоставляет доступ к определенному порту.