Отчет по заданию Feature Store

Развернут локальный инстанс FeatureForm из коробочной сборки Docker, которая включает провайдеров Postgres и Redis. FeatureForm используется здесь для препроцессинга датасета и сохранения его для последующего использования в задаче машинного обучения.

Подготовка среды

Документация рекомендует устанавливать FeatureForm через pip:

cd featureform
pip install featureform
pip install googleapis-common-protos
pip install pandas sqlalchemy psycopg2-binary python-dotenv

Также можно дополнительно установить пакет ipywidgets для отображения сообщений FeatureForm в Jupyter Notebooks.

Установка Docker-сборки

featureform deploy docker --quickstart

Опция “quickstart” создаст файлы базовой настройки конфигурации и демо-примеры в папке /quickstart. Рекомендуется это сделать, хотя использовать их необязательно. Далее обязательно установите переменную среды, иначе возникнут ошибки:

export FEATUREFORM_HOST=localhost:7878 (linux)
$Env:FEATUREFORM_HOST="localhost:7878" (PowerShell)

Примените настройки для демо-примеров, если собираетесь использовать демо:

featureform apply --insecure quickstart/definitions.py

Альтернативно, все необходимые настройки для проекта можно выполнить, запустив собственный файл конфигурации или ноутбук.

Описание задачи

Для демонстрации использования FeatureForm выбран датасет ny-2015-street-tree-census-tree-data. Скрипты размещены в папке /featureform.

Скрипт dataset_to_postgres.py запускается единожды и загружает csv-файл с датасетом в отдельную таблицу Postgres. В данном примере Postgres используется в качестве data lake, хотя в промышленных решениях целесообразно использовать более подходящих провайдеров для хранения сырых данных.

Основная реализация Feature Store выполнена в ноутбуке workflow.ipynb.