Skip to main content

An experiment tracking server focused on speed and scalability

Project description

FastTrackML banner

FastTrackML

An experiment tracking server focused on speed and scalability, fully compatible with MLFlow.

Quickstart

Run the tracking server

For the full guide, see docs/quickstart.md.

FastTrackML can be run using the following command:

docker run --rm -p 5000:5000 -ti gresearch/fasttrackml

Verify that you can see the UI by navigating to http://localhost:5000/.

FastTrackML UI

For more info, --help is your friend!

Track your experiments

Install the MLFlow Python package:

pip install mlflow-skinny

Here is an elementary example Python script:

import mlflow
import random

# Set the tracking URI to the FastTrackML server
mlflow.set_tracking_uri("http://localhost:5000")
# Set the experiment name
mlflow.set_experiment("my-first-experiment")

# Log a parameter
mlflow.log_param("param1", random.randint(0, 100))

# Log a metric
mlflow.log_metric("foo", random.random())
# metrics can be updated throughout the run
mlflow.log_metric("foo", random.random() + 1)
mlflow.log_metric("foo", random.random() + 2)

Encryption at rest

To use an encrypted SQLite database, use the query parameter _key in the DSN:

docker run --rm -p 5000:5000 -ti gresearch/fasttrackml server --database-uri 'sqlite:///data/fasttrackml.db?_key=passphrase'

Developer

Using the project's devcontainer is recommended for development. VSCode should detect the .devcontainer folder and offer to restart the IDE in that context. For other users, the underlying docker container can be used. The Makefile offers some basic targets.

cd .devcontainer
docker-compose up -d
docker-compose exec -w /workspaces/fasttrackml app bash

root ➜ /workspaces/fastrackml $ make build
root ➜ /workspaces/fastrackml $ make run
root ➜ /workspaces/fastrackml $ make test
root ➜ /workspaces/fastrackml $ emacs .

Note that on MacOS, port 5000 is already occupied, so some adjustments are necessary.

License

Copyright 2022-2023 G-Research

Copyright 2019-2022 Aimhub, Inc.

Copyright 2018 Databricks, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use these files except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

FastTrackML-0.3.0-py3-none-win_amd64.whl (20.0 MB view hashes)

Uploaded Python 3 Windows x86-64

FastTrackML-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl (20.3 MB view hashes)

Uploaded Python 3 manylinux: glibc 2.17+ x86-64 musllinux: musl 1.1+ x86-64

FastTrackML-0.3.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (19.2 MB view hashes)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64 musllinux: musl 1.1+ ARM64

FastTrackML-0.3.0-py3-none-macosx_11_0_arm64.whl (19.9 MB view hashes)

Uploaded Python 3 macOS 11.0+ ARM64

FastTrackML-0.3.0-py3-none-macosx_10_13_x86_64.whl (20.4 MB view hashes)

Uploaded Python 3 macOS 10.13+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page