Creating custom logic¶
All components of ZenML are split into two categories: The Standard
components, i.e., the code shipped with the
package, and the User-defined
components, the code written by users to inject their own custom logic into the framework.
Types of ZenML components¶
Custom logic can be added to ZenML by extending the following standard components:
Each component has its own section in the docs and its own rules of precisely how to add your own. The above links will guide you through these rules.
Rules of custom logic¶
While each component has its own rules, there are some rules that are general when adding your own custom logic:
All components have
Base
classes, e.g.,BaseDatasource
,BasePipeline
,BaseStep
etc that need to be inherited from in order create your own custom logic.All custom classes must exist within its own
module
(directory) in a ZenML repo.All components follow the same Git-pinning methodology outlined here
Environment and custom dependencies¶
ZenML comes pre-installed with some common ML libraries. These include:
tfx
>= 0.25.0tensorflow
>= 2.3.0apache-beam
>= 2.26.0plotly
>= 4.0.0numpy
>= 1.18.0
The full list can be found here.
You can install any other dependencies alongisde of ZenML and use them in your code as long as they do not
conflict with the dependencies listed above. E.g torch
, scikit-learn
, pandas
etc are perfectly fine. However,
using tensoflow
< 2.3.0 currently is not supported.