dashboard.

Warning! Usage in remote orchestratorsThe current ZenML version has a limitation in its base Docker image that requires a workaround for all pipelines using Deepchecks with a remote orchestrator (e.g. Kubeflow , Vertex). The limitation being that the base Docker image needs to be extended to include binaries that are required by opencv2, which is a package that Deepchecks requires.

While these binaries might be available on most operating systems out of the box (and therefore not a problem with the default local orchestrator), we need to tell ZenML to add them to the containerization step when running in remote settings. Here is how:

First, create a file called deepchecks-zenml.Dockerfile and place it on the same level as your runner script (commonly called run.py). The contents of the Dockerfile are as follows:

ARG ZENML_VERSION=0.20.0

FROM zenmldocker/zenml:${ZENML_VERSION} AS base

RUN apt-get update

RUN apt-get install ffmpeg libsm6 libxext6  -y

Then, place the following snippet above your pipeline definition. Note that the path of the dockerfile are relative to where the pipeline definition file is. Read the containerization guide for more details:

import zenml

from zenml import pipeline

from zenml.config import DockerSettings

from pathlib import Path

import sys

docker_settings = DockerSettings(

dockerfile="deepchecks-zenml.Dockerfile",

build_options={

"buildargs": {

"ZENML_VERSION": f"{zenml.__version__}"

},

},

@pipeline(settings={"docker": docker_settings})

def my_pipeline(...):

# same code as always

...

From here on, you can continue to use the deepchecks integration as is explained below.

The Deepchecks standard steps

ZenML wraps the Deepchecks functionality for tabular data in the form of four standard steps:

DeepchecksDataIntegrityCheckStep: use it in your pipelines to run data integrity tests on a single dataset

DeepchecksDataDriftCheckStep: use it in your pipelines to run data drift tests on two datasets as input: target and reference.