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

[!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.6.0-py3-none-win_amd64.whl (24.1 MB view details)

Uploaded Python 3 Windows x86-64

FastTrackML-0.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl (24.3 MB view details)

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

FastTrackML-0.6.0-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.6.0-py3-none-macosx_11_0_arm64.whl (23.8 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

FastTrackML-0.6.0-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.6.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for FastTrackML-0.6.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b9b93763dda2a416088029975c73f98bb7e2bda34c3f745f4f099cede0493c0a
MD5 e292d1a4718c657e2eef9c01fb2e45d1
BLAKE2b-256 4263b43b12f286d27283e74c8107b93a6d6778d98eee3ca6de65e6bd656c2d09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for FastTrackML-0.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5811dfab5ea52ccb40f263c5949362393eb2b1647a4281352cb94add35213c88
MD5 098c1d826d8054dcd6d9afb8f5d37593
BLAKE2b-256 8191b19f38ee3ba5f87ff1896305e1bb7881fb2103f48c5fdc33e4450fff64ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for FastTrackML-0.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 5e32cc4a5221a8dc7518f0bdc5c5eb44a82daee313a7e540bfb56ef0a8ed1025
MD5 98b963734aeaffae0ae23b86d6af68fe
BLAKE2b-256 9b4c00cd7b6efd7defa72fcb1d4c121a489f18f78660672037b8ccab0cce7bf7

See more details on using hashes here.

File details

Details for the file FastTrackML-0.6.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for FastTrackML-0.6.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe97cd8318da82dfc94423d93e100773a00f18ba47b64cd15e6e8fe22a172ea5
MD5 f4f08487635bcf786404cc757ec59018
BLAKE2b-256 5f061f88adc277f0362e7cd028cc0c28671fc0f94f6c1b58cfcc8e8a7777065b

See more details on using hashes here.

File details

Details for the file FastTrackML-0.6.0-py3-none-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for FastTrackML-0.6.0-py3-none-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 8fcde438ee3e9222649c54ad0f9d94ba74aaf285a9e2b0abfbb0e237f7c4d4a9
MD5 6026b46f29f0bc762d837338bbf6374b
BLAKE2b-256 d788fd7b021aa40bb39e86e59d5bc5e1bae2a3286e8f3ccc099f1a06c06c6f2b

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