Description
Tracel is a new way of using Burn. It aims at providing a central platform for experiment tracking, model sharing, and deployment for all Burn users!
This repository contains the SDK associated with the project. It provides a Rust API to register your training and inference routines as jobs and dispatch them from a CLI or an HTTP server, sending training data to our application as they run. To use this project you must first create an account on the application.
You'll also want the tracel-cli to log in and store your credentials locally.
Installation
Add Tracel to your Cargo.toml:
[]
= "0.6.0"
Quick Start
Currently, we only support training. Here's how to integrate Tracel into your training workflow:
1. Register your training function
Wrap your training function into a job with ExperimentModule::create, then register it with a
Cli (to run it from the command line) or a Server (to dispatch it over HTTP):
use Cli;
use JsonMapper;
use ExperimentRun;
use ;
Swap Cli for tracel::app::server::Server (with the optional server feature) to dispatch the
same job over HTTP instead of the command line. See examples/mnist
for complete, runnable versions of both.
2. Integrate with your Learner
To enable experiment tracking, add the training integrations to your LearnerBuilder and install
the tracing subscriber:
use ;
use try_init_tracing_subscriber;
use ;
let _ = try_init_tracing_subscriber;
let learner = new
.metric_train_numeric
.metric_valid_numeric
.metric_train_numeric
.metric_valid_numeric
// Experiment metric logging
.with_metric_logger
// Experiment checkpoint saving
.with_file_checkpointer
// Experiment interruption handling
.with_interrupter
.num_epochs
.summary
.build;
3. Run your training
Once integrated, run your training by running your binary (cargo run) to automatically track metrics, checkpoints, and logs on Burn Central.
Requirements
- Rust 1.87.0 or higher
- A Burn Central account (create one at central.burn.dev)
- The tracel-cli, to log in and store your credentials locally
Contribution
Contributions to this repository are welcome. You can also submit issues for features you would like to see in the near future.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.