New Pipeline Generation Merged into Main Codebase #763
yoonspark
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Overview
We are happy to share that our work on new pipeline generation has been finalized and merged into the
main
codebase! It is yet to be included in our next release, but you can give it a quick try now if you want:A major change in the new pipeline generation is that the pipeline's artifact code is now modularized into "non-overlapping" functions, where duplicate code blocks are factored out to reduce redundant computations (which might be expensive to run). For instance, consider the following development code:
Now, say we are building a pipeline with the above artifacts, like so:
With the old version of pipeline generation, we would have gotten the artifact code modularized as the following:
This modularization is not ideal because
iris_petal_length_pred()
is repeating the same computation as iniris_model()
; if this repeated computation were an expensive one, this pipeline would have been extremely inefficient to run.With the new pipeline generation, we now get the code modularized as the following instead:
As shown, the modularized code now contains "non-overlapping" functions, e.g.,
get_iris_petal_length_pred()
no longer repeats the same computation as that inget_iris_model()
(the former instead takes the output from the latter to carry on its own processing). Note also that LineaPy has smartly identified the "common" computation betweeniris_model
andiris_petal_length_pred
artifacts, which has been automatically factored out into its own function, i.e.,get_url1_for_artifact_iris_model_and_downstream()
; if this were a step involving a heavy computation, the current modularization would have saved much time and resource.In sum, the new pipeline generation modularizes user code to form more efficient pipeline components.
Reference
Related PRs include (listing the latest first):
ArtifactCollection
intoPipeline
class #750Beta Was this translation helpful? Give feedback.
All reactions