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
Added ability to utilize instantiated components when creating a pipeline #2643
Conversation
697ba7c
to
61d57c0
Compare
Codecov Report
@@ Coverage Diff @@
## main #2643 +/- ##
=======================================
+ Coverage 99.9% 99.9% +0.1%
=======================================
Files 298 298
Lines 27086 27098 +12
=======================================
+ Hits 27042 27054 +12
Misses 44 44
Continue to review full report at Codecov.
|
b0ed3b1
to
5133635
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me! Should be a pretty solid upgrade to performance. Do you have perf tests to see what the time to fit consequences are for ensembling pipelines? This would be an AMAZING demo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks really good! Left one testing suggestion, to make sure that on the CG/pipeline level, all of the parameters are as we expect but 🚢
} | ||
cg = ComponentGraph(graph) | ||
cg.instantiate({"Imputer": {}}) | ||
assert graph["Imputer"][0] == cg.get_component("Imputer") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have a test that the component instance's set parameters are still kept in the component graph / pipeline?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated test to make sure that existing parameters are not changed during instantiation.
2a12f5e
to
2d7c67c
Compare
2d7c67c
to
d37afd9
Compare
As part of #2587, we will need to be able to create new pipelines using already trained components. When creating new pipelines ensemble pipelines, the AutoML algorithm will be choosing from the best previously trained pipelines to create one large ensembling pipeline. Rather than creating an entirely new ensembling pipeline with the best parameters and retraining the entire pipeline, we can just utilize the pre-trained components and train only the final estimator.
This PR adds support for using already instantiated components when creating a new pipeline. When an instantiated component is passed through a dictionary, the existing object is used rather than the current behavior of raising an error.