DNIKit Architecture Overview#

This page contains an overview of the DNIKit architecture and how pieces work together. Please see the following three pages for more detailed information:

  1. Load a model

  2. Load data

  3. Introspect

Architecture#

An animated diagram illustrating the DNIKit pipeline. A single batch at a time is fed through the entire pipeline, from Producer to Introspector.

DNIKit begins with a Producer that is in charge of generating Batches of data for the rest of DNIKit to process or consume.

DNIKit only loads, processes and consumes data when it needs to. This is known as lazy evaluation. Using lazy evaluation avoids processing, running inference and analyzing the full dataset in one fell swoop, as these operations can easily require more than the system’s available memory.

Instead, a Producer generates small Batches of data, which can be processed and analyzed with the available memory as part of a DNIKit pipeline. A pipeline is a composition of Batch transformations that we call PipelineStages.

Example PipelineStages could be various pre- or post- Processors, or Model inference. These all apply transformations to a Batch and output a new Batch (typically model responses).

Finally, DNIKit’s Introspectors will analyze input Batches (usually Batches of model responses) to provide insights about the dataset and/or model.

Below shows a generic and example DNIKit pipeline setup.

GENERIC

A picture of a generic DNIKit pipeline. Starting with a Producer that yields batches (one batch at a time). The Batch then goes through various optional Pipeline Stages, including two Processors (pre and post) and one Model inference. The transformed Batch is then fed into the Introspector.

EXAMPLE

A picture of a specific sample DNIKit pipeline. Starting with an Image Producer yields batches of images (one batch at a time). The Batch then goes through various Pipeline Stages: First an Image Resizer, then a Mean / Std Normalizer, ResNet Model inference, and a Pooler. At this point, the Batches contain pooled model responses, and they are (one at a time) fed into the IUA introspector.

See the next sections in these How To Guides for information about each of DNIKit’s components.