Skip to main content

An experiment tracking server focused on speed and scalability

Project description

FastTrackML banner

FastTrackML

FastTrackML is an API for logging parameters and metrics when running machine learning code, and it is a UI for visualizing the result. The API is a drop-in replacement for MLflow's tracking server, and it ships with the visualization UI of both MLflow and Aim.

As the name implies, the emphasis is on speed -- fast logging, fast retrieval.

Quickstart

Run the tracking server

[!NOTE] For the full guide, see our quickstart guide.

FastTrackML can be installed and run with pip:

pip install fasttrackml
fml server

Alternatively, you can run it within a container with Docker:

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")

# Start a new run
with mlflow.start_run():
    # 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)

Developer

FastTrackML can be built and tested within a dev container. This is the recommended way as the whole environment comes preconfigured with all the dependencies (Go SDK, Postgres, Minio, etc.) and settings (formatting, linting, extensions, etc.) to get started instantly.

GitHub Codespaces

If you have a GitHub account, you can simply open FastTrackML in a new GitHub Codespace by clicking on the green "Code" button at the top of this page.

You can build, run, and attach the debugger by simply pressing F5. The unit tests can be run from the Test Explorer on the left. There are also many targets within the Makefile that can be used (e.g. build, run, test-go-unit).

Visual Studio Code

If you want to work locally in Visual Studio Code, all you need is to have Docker and the Dev Containers extension installed.

Simply open up your copy of FastTrackML in VS Code and click "Reopen in container" when prompted. Once the project has been opened, you can follow the GitHub Codespaces instructions above.

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

CLI

If the CLI is how you roll, then you can install the Dev Container CLI tool and follow the instruction below.

CLI instructions

[!WARNING] This setup is not recommended or supported. Here be dragons!

You will need to edit the .devcontainer/docker-compose.yml file and uncomment the services.db.ports section to expose the ports to the host. You will also need to add FML_LISTEN_ADDRESS=:5000 to .devcontainer/.env.

You can then issue the following command in your copy of FastTrackML to get up and running:

devcontainer up

Assuming you cloned the repo into a directory named fasttrackml and did not fiddle with the dev container config, you can enter the dev container with:

docker compose --project-name fasttrackml_devcontainer exec --user vscode --workdir /workspaces/fasttrackml app zsh

If any of these is not true, here is how to render a command tailored to your setup (it requires jq to be installed):

devcontainer up | tail -n1 | jq -r '"docker compose --project-name \(.composeProjectName) exec --user \(.remoteUser) --workdir \(.remoteWorkspaceFolder) app zsh"'

Once in the dev container, use your favorite text editor and Makefile targets:

vscode  /workspaces/fasttrackml (main) $ vi main.go
vscode  /workspaces/fasttrackml (main) $ emacs .
vscode  /workspaces/fasttrackml (main) $ make run

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.7.0a1-py3-none-win_amd64.whl (24.1 MB view details)

Uploaded Python 3 Windows x86-64

FastTrackML-0.7.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl (24.4 MB view details)

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

FastTrackML-0.7.0a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (23.0 MB view details)

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

FastTrackML-0.7.0a1-py3-none-macosx_11_0_arm64.whl (23.9 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

FastTrackML-0.7.0a1-py3-none-macosx_10_13_x86_64.whl (24.5 MB view details)

Uploaded Python 3 macOS 10.13+ x86-64

File details

Details for the file FastTrackML-0.7.0a1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for FastTrackML-0.7.0a1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9655eb05958b5baf22ed75b86e9a9532dff8bb2ee8d7fcf05cf8feb31fd21f4c
MD5 1253e710208403807477fdb43a6b593c
BLAKE2b-256 342a9eae68972e3b769b40363c9ec15148912d0a5ebd6e30e925b33570b79fa3

See more details on using hashes here.

File details

Details for the file FastTrackML-0.7.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for FastTrackML-0.7.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 56596194e3db3e52c7528be9a44fddc9811a424146607e5b007051846960636d
MD5 6a8931fbd765e1df9b86ac3a8a0667dd
BLAKE2b-256 431bcc0b25ad2a9e9e129f441222de5a9ecff4d6946c351ff4d34272462fac2d

See more details on using hashes here.

File details

Details for the file FastTrackML-0.7.0a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for FastTrackML-0.7.0a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 e41703f85ace1b426951e98609ec452d0f40d6890caccef51536fb26b1d90f47
MD5 e2dc091b443b0dfd1f8ac818c5b475d2
BLAKE2b-256 3a1f40ecedd83a3dc5b791d802d1bb3a385efb6a2036d2f04eed381959c3063e

See more details on using hashes here.

File details

Details for the file FastTrackML-0.7.0a1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for FastTrackML-0.7.0a1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a1a0092878306cf79b7a3be0823e9c4e4ad8bacdf9baae761376a319133ee104
MD5 2a19be321c4ffc8327ecb8ed3c3897b1
BLAKE2b-256 ac541c1d6b390aa4ccb8b3d0d08dac01b9947c0fda26ba3f6ff4d628269cef76

See more details on using hashes here.

File details

Details for the file FastTrackML-0.7.0a1-py3-none-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for FastTrackML-0.7.0a1-py3-none-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ae09865d846ffde072f5e6005c664dd209f37d6c1f0b48a767ce6b1594e87253
MD5 edc350a1f2c1da29b52c9818fe7e57ff
BLAKE2b-256 3712ec34d180c4e96219ae0fb577d420756f23dfb49409c49b1b865a007c5bf0

See more details on using hashes here.

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