Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KedroPipelineModel requires unnecessary pipeline input dependencies to be executed #273

Closed
Debbby57 opened this issue Dec 20, 2021 · 2 comments · Fixed by #288
Closed

KedroPipelineModel requires unnecessary pipeline input dependencies to be executed #273

Debbby57 opened this issue Dec 20, 2021 · 2 comments · Fixed by #288
Assignees
Labels
bug Something isn't working

Comments

@Debbby57
Copy link

Hi @Galileo-Galilei

Description

the KedroPipelineModel has a initial_catalog property which causes some problems. This initial_catalog can contain some Kedro Datasets but it's not necessary to log them when you train your model. because of this property I can't load my model anymore. I have to train it again.

I explain : when I trained my model I used a kedro home-made plugin to load a specific dataset (which has no impact for my model). After that, I updated this plugin independently of my ML project. Today, I want to load my model but I can't because the load function uses the old Kedro Catalog with my old plugin version which is not in my environnement anymore.

Context

It would be great if we can update the kedro-catalog (only dataset and not the artifacts for the model of course !) without having to retrain our models.

Possible Implementation

Log in Mlflow what is only necessary.

I hope my issue is clear.

thank you

@Galileo-Galilei Galileo-Galilei self-assigned this Jan 3, 2022
@Galileo-Galilei Galileo-Galilei added the bug Something isn't working label Jan 3, 2022
@Galileo-Galilei
Copy link
Owner

Hi, I can reproduce the issue, thank you very much for the feedback. To clarify, what happens here is the following:

  • the input of your inference pipeline is persisted in Kedro because you load it from the disk (e.g., pandas.ExcelDataSet)
  • after you log it in mlflow, it will be converted to a MemoryDataSet, and you directly pass a pandas Dataframe when you want to reuse it. Mlflow complains that you need to have openpyxl installed, while you never use it in your pipeline, and you don't need it to predict.

This extra dependency is not useful as you mention. I will remove it in a patch release soon.

@Galileo-Galilei Galileo-Galilei changed the title problem with the initial_catalog property of KedroPipelineModel KedroPipelineModel requires unnecessary pipeline input dependencies to be executed Feb 9, 2022
@Galileo-Galilei
Copy link
Owner

For anyone having the same issue, notice that you can now export a pipeline as a mlflow model with the kedro mlflow modelify command.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants