An experiment tracking server focused on speed and scalability
Project description
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/.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file FastTrackML-0.7.0a1-py3-none-win_amd64.whl
.
File metadata
- Download URL: FastTrackML-0.7.0a1-py3-none-win_amd64.whl
- Upload date:
- Size: 24.1 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9655eb05958b5baf22ed75b86e9a9532dff8bb2ee8d7fcf05cf8feb31fd21f4c |
|
MD5 | 1253e710208403807477fdb43a6b593c |
|
BLAKE2b-256 | 342a9eae68972e3b769b40363c9ec15148912d0a5ebd6e30e925b33570b79fa3 |
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
- Download URL: FastTrackML-0.7.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl
- Upload date:
- Size: 24.4 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56596194e3db3e52c7528be9a44fddc9811a424146607e5b007051846960636d |
|
MD5 | 6a8931fbd765e1df9b86ac3a8a0667dd |
|
BLAKE2b-256 | 431bcc0b25ad2a9e9e129f441222de5a9ecff4d6946c351ff4d34272462fac2d |
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
- Download URL: FastTrackML-0.7.0a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
- Upload date:
- Size: 23.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64, musllinux: musl 1.1+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e41703f85ace1b426951e98609ec452d0f40d6890caccef51536fb26b1d90f47 |
|
MD5 | e2dc091b443b0dfd1f8ac818c5b475d2 |
|
BLAKE2b-256 | 3a1f40ecedd83a3dc5b791d802d1bb3a385efb6a2036d2f04eed381959c3063e |
File details
Details for the file FastTrackML-0.7.0a1-py3-none-macosx_11_0_arm64.whl
.
File metadata
- Download URL: FastTrackML-0.7.0a1-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 23.9 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1a0092878306cf79b7a3be0823e9c4e4ad8bacdf9baae761376a319133ee104 |
|
MD5 | 2a19be321c4ffc8327ecb8ed3c3897b1 |
|
BLAKE2b-256 | ac541c1d6b390aa4ccb8b3d0d08dac01b9947c0fda26ba3f6ff4d628269cef76 |
File details
Details for the file FastTrackML-0.7.0a1-py3-none-macosx_10_13_x86_64.whl
.
File metadata
- Download URL: FastTrackML-0.7.0a1-py3-none-macosx_10_13_x86_64.whl
- Upload date:
- Size: 24.5 MB
- Tags: Python 3, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae09865d846ffde072f5e6005c664dd209f37d6c1f0b48a767ce6b1594e87253 |
|
MD5 | edc350a1f2c1da29b52c9818fe7e57ff |
|
BLAKE2b-256 | 3712ec34d180c4e96219ae0fb577d420756f23dfb49409c49b1b865a007c5bf0 |