nimblebox logo

Glossary Page

Definitions of all the terms.

This page contains all the definitions of how we treat all the objects in the NimbleBox system. The easiest way we would recommend is to cmd/ctrl+f.

Project / nbox.Project

NimbleBox Project is a single workbench for your ML Pipelines and it's the first thing you need to create. It's a container for all the other objects like Jobs, Deploy, Relics, Experiment and Live Tracker. You can use projects as follows


Build / nbox.Instance

Build Instances are development ready VMs with GPUs. You can run any application and develop on them. Here's some quick API reference:


Model (Deploy-Model) / nbox.Serve

A single model is a single API endpoint that can be controlled as well. This class exposes those methods.


Link to full documentation of nbox.Serve.

Jobs / nbox.Job

Jobs has a defined start and a defined end unlike Deploy, which has no end and this is the only difference between the two. A Job consists of two components the logic of the program which is an artibtrary nbox.Operator tree and the nbox.Resource to run it.


Link to full documentation of nbox.Job.

Experiment Tracking / nbox.Lmao

LMAO is an experiment tracking system build on top of NBX-Jobs/Deploy/Relics to provide a single dashboard for training.


Operators / nbox.Operator, nbox.operator

In the NimbleBox way of MLOps, Operator is the unit piece of computation that you want to run. The reasoning behind Operator is too long to properly summarize and has a page of its own. You can define an Operator in 4 different ways:

  • @operator on a function
  • @operator on a class
  • Operator.from_job which will latch itself to a job and calling it will run a job
  • Operator.from_serving which will latch itself to a serving group and calling it will call the API

These are the two recommended ways of creating Operator objects. The first is a function that returns a dict and other is a OOps way of defining a counter. But the real magic is something is "Compute Fabric", where we can jsut deploy these functions as a Job or a Serving API.


And then it all comes full circle when you can use these deployed Jobs and Serving as an operator.


Link to full documentation of nbox.Operator.

Relics / nbox.RelicsNBX

Relics is a store front for object stores like AWS S3, GCP Bucket and Azure Blob Storage. Relics generates the download / upload links, tracks using logs and provides a simple UI to manage and lookup files. Here's how you can use Relics:


Link to full documentation of nbox.Relics.

Resource / nbox.Resource

This object is used to define kubernetes style hardware resource on which you want to run any computation. It can take in the following arguments:

  • cpu: a string like "100m"
  • memory: a string like "100Mi"
  • gpu: a string like "nvidia-tesla-k80"
  • gpu_count: a string like "1"
  • disk_size: a string like "4Gi"
  • timeout: an integer like 3600
  • max_retries: an integer like 3

Schedule / nbox.Schedule

Define the schedule at which you want to run any Job. NimbleBox system will honour the schedule but not guarantee that exact time of run, ie. it will try to run it at the closest time after the defined schedule.

nbox SDKnbox provides built in access to all the APIs and packages them in the most user friendly manner.Star 0