Repository navigation
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
chukarsten
left a comment
There was a problem hiding this comment.
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.
angela97lin
left a comment
There was a problem hiding this comment.
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.
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.
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.