Open aguschin opened 3 years ago
For the reference, there is Airflow extension that adds support for DVC operations: https://github.com/covid-genomics/airflow-dvc
UPD: we can take a look at other orchestration tools (dagster, prefect, etc.)
Posting here a short discussion with @mike0sv:
mlem apply model hdfs://…
should work already thanks to fsspec - need to check this thoughReader
in MLEM that will receive many artifacts, will merge them in a single dataframe before apply
(or will output each file as a batch)apply
the models in spark, we can create a UDF for MLEM modelssparkml
in MLEMspark
and run the data through it when you do mlem apply spark-udf-model …
(could have a wow-effect)Reader
s as well, that will start spark
and read data in batchesTo my mind, we need to get the working demo as simple as possible first. If we can work with mlem apply model hdfs://…
- nice, this can be used. If not, downloading data as csv and using mlem apply model data.csv
can work as well. @mnrozhkov mentioned they have a project with batch scoring in GitLab, we can start with using MLEM there.
One issue I found: when you want to build a docker image for Batch Scoring scenario, you absolutely need to specify --server
option. Why? Let's either specify fastapi
as default so people won't need to confuse themselves about this, or allow to build without any server to skip installing extra dependencies like FastAPI people may not need.
UPD: it was an issue with my local MLEM installation. We don't need to specify --server
. By default it's FASTAPI. Maybe good to give an option to skip installing it anyway, but this is not a priority now.
For reference, a product similar to MLEM that does export to Airflow Pipelines. Need to take a deeper look at it https://docs.lineapy.org/en/latest/guide/build_pipelines/pipeline_basics.html
For now we are building docker images only for serving, so server option is required and run command is mlem serve
.
That can be changed, but for that we first need to understand what it means to build docker for batch scoring
As discussed with @mnrozhkov and @tapadipti, it would be great if MLEM would somehow simplify model application within Airflow DAGs. Two questions to start with:
Other notes:
DAGs example https://gitlab.com/iterative.ai/cse/use_cases/home_credit_default/-/blob/airflow-dags/dags/scoring.py Showcase of different options: https://gitlab.com/iterative.ai/cse/rnd/deploy-to-airflow
Summary from Mikhail https://iterativeai.slack.com/archives/C0249LW0HAQ/p1631885782026400