Introduction to tracking
Tracking is crucial to make sure that insights from model development and experimentation can be captured, utilized and reproduced. The aim of experiment tracking is to uncover relationships between, for instance, parameter choices and output metrics. Through tracking, it becomes possible to reproduce results from produced in the past or by others. Tracking is also useful in a production deployment context as it allows monitor performance and debug protential modeling errors or pipeline issues. Using Rebase Tracking it is possible to track several different object types, including:- Scalar numbers such as parameters or metrics
- Energy assets represented as
EnergyDataModelobjects - Links such as pointers to specific code commits (e.g. Rebase Pipelines)
- Artifacts such as datasets and model objects
Tables that
acts as containers to organise tracked objects.
Tracking scalar parameters or metrics
To track metrics, parameters and other scalar values you use therb.track() by
passing a dictionary with the data to be logged and the table it should be logged to as:
The
table argument to rb.track() is a unique table identifier.Tracking energy assets
Tracking of energy asset objects is done by providing the asset to therb.tack() method through the data argument:
Tracking artifacts
Some objects are easier to track as artifacts (in an object store) rather than in a table. Tracking artifacts is, for instance, useful when tracking files (such as .csv, .pickle, .h5, .netcdf, etc). In order to track an object as an artifact simply use therb.track_artifact() instead of the rb.track() method as: