Skip to main content

A super-easy way to record, search and compare AI experiments.

Project description

An easy-to-use & supercharged open-source experiment tracker

Aim logs your training runs, enables a beautiful UI to compare them and an API to query them programmatically.

AboutFeaturesDemosExamplesQuick StartDocumentationRoadmapSlack CommunityTwitter

Platform Support PyPI - Python Version PyPI Package License PyPI Downloads Issues

Integrates seamlessly with your favorite tools



About Aim

Track and version ML runs Visualize runs via beautiful UI Query runs metadata via SDK

Aim is an open-source, self-hosted ML experiment tracking tool. It's good at tracking lots (1000s) of training runs and it allows you to compare them with a performant and beautiful UI.

You can use not only the great Aim UI but also its SDK to query your runs' metadata programmatically. That's especially useful for automations and additional analysis on a Jupyter Notebook.

Aim's mission is to democratize AI dev tools.

Why use Aim?

Compare 100s of runs in a few clicks - build models faster

  • Compare, group and aggregate 100s of metrics thanks to effective visualizations.
  • Analyze, learn correlations and patterns between hparams and metrics.
  • Easy pythonic search to query the runs you want to explore.

Deep dive into details of each run for easy debugging

  • Hyperparameters, metrics, images, distributions, audio, text - all available at hand on an intuitive UI to understand the performance of your model.
  • Easily track plots built via your favourite visualisation tools, like plotly and matplotlib.
  • Analyze system resource usage to effectively utilize computational resources.

Have all relevant information organised and accessible for easy governance

  • Centralized dashboard to holistically view all your runs, their hparams and results.
  • Use SDK to query/access all your runs and tracked metadata.
  • You own your data - Aim is open source and self hosted.

Demos

Machine translation lightweight-GAN
Training logs of a neural translation model(from WMT'19 competition). Training logs of 'lightweight' GAN, proposed in ICLR 2021.
FastSpeech 2 Simple MNIST
Training logs of Microsoft's "FastSpeech 2: Fast and High-Quality End-to-End Text to Speech". Simple MNIST training logs.

Quick Start

Follow the steps below to get started with Aim.

1. Install Aim on your training environment

pip3 install aim

2. Integrate Aim with your code

from aim import Run

# Initialize a new run
run = Run()

# Log run parameters
run["hparams"] = {
    "learning_rate": 0.001,
    "batch_size": 32,
}

# Log metrics
for i in range(10):
    run.track(i, name='loss', step=i, context={ "subset":"train" })
    run.track(i, name='acc', step=i, context={ "subset":"train" })

See the full list of supported trackable objects(e.g. images, text, etc) here.

3. Run the training as usual and start Aim UI

aim up

4. Or query runs programmatically via SDK

from aim import Repo

my_repo = Repo('/path/to/aim/repo')

query = "metric.name == 'loss'" # Example query

# Get collection of metrics
for run_metrics_collection in my_repo.query_metrics(query).iter_runs():
    for metric in run_metrics_collection:
        # Get run params
        params = metric.run[...]
        # Get metric values
        steps, metric_values = metric.values.sparse_numpy()

Integrations

Integrate PyTorch Lightning
from aim.pytorch_lightning import AimLogger

# ...
trainer = pl.Trainer(logger=AimLogger(experiment='experiment_name'))
# ...

See documentation here.

Integrate Hugging Face
from aim.hugging_face import AimCallback

# ...
aim_callback = AimCallback(repo='/path/to/logs/dir', experiment='mnli')
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset if training_args.do_train else None,
    eval_dataset=eval_dataset if training_args.do_eval else None,
    callbacks=[aim_callback],
    # ...
)
# ...

See documentation here.

Integrate Keras & tf.keras
import aim

# ...
model.fit(x_train, y_train, epochs=epochs, callbacks=[
    aim.keras.AimCallback(repo='/path/to/logs/dir', experiment='experiment_name')
    
    # Use aim.tensorflow.AimCallback in case of tf.keras
    aim.tensorflow.AimCallback(repo='/path/to/logs/dir', experiment='experiment_name')
])
# ...

See documentation here.

Integrate XGBoost
from aim.xgboost import AimCallback

# ...
aim_callback = AimCallback(repo='/path/to/logs/dir', experiment='experiment_name')
bst = xgb.train(param, xg_train, num_round, watchlist, callbacks=[aim_callback])
# ...

See documentation here.

Comparisons to familiar tools

Tensorboard

Training run comparison

Order of magnitude faster training run comparison with Aim

  • The tracked params are first class citizens at Aim. You can search, group, aggregate via params - deeply explore all the tracked data (metrics, params, images) on the UI.
  • With tensorboard the users are forced to record those parameters in the training run name to be able to search and compare. This causes a super-tedius comparison experience and usability issues on the UI when there are many experiments and params. TensorBoard doesn't have features to group, aggregate the metrics

Scalability

  • Aim is built to handle 1000s of training runs - both on the backend and on the UI.
  • TensorBoard becomes really slow and hard to use when a few hundred training runs are queried / compared.

Beloved TB visualizations to be added on Aim

  • Embedding projector.
  • Neural network visualization.

MLFlow

MLFlow is an end-to-end ML Lifecycle tool. Aim is focused on training tracking. The main differences of Aim and MLflow are around the UI scalability and run comparison features.

Run comparison

  • Aim treats tracked parameters as first-class citizens. Users can query runs, metrics, images and filter using the params.
  • MLFlow does have a search by tracked config, but there are no grouping, aggregation, subplotting by hyparparams and other comparison features available.

UI Scalability

  • Aim UI can handle several thousands of metrics at the same time smoothly with 1000s of steps. It may get shaky when you explore 1000s of metrics with 10000s of steps each. But we are constantly optimizing!
  • MLflow UI becomes slow to use when there are a few hundreds of runs.

Weights and Biases

Hosted vs self-hosted

  • Weights and Biases is a hosted closed-source MLOps platform.
  • Aim is self-hosted, free and open-source experiment tracking tool.

Roadmap

Detailed Sprints

:sparkle: The Aim product roadmap

  • The Backlog contains the issues we are going to choose from and prioritize weekly
  • The issues are mainly prioritized by the highly-requested features

High-level roadmap

The high-level features we are going to work on the next few months

Done

  • Live updates (Shipped: Oct 18 2021)
  • Images tracking and visualization (Start: Oct 18 2021, Shipped: Nov 19 2021)
  • Distributions tracking and visualization (Start: Nov 10 2021, Shipped: Dec 3 2021)
  • Jupyter integration (Start: Nov 18 2021, Shipped: Dec 3 2021)
  • Audio tracking and visualization (Start: Dec 6 2021, Shipped: Dec 17 2021)
  • Transcripts tracking and visualization (Start: Dec 6 2021, Shipped: Dec 17 2021)
  • Plotly integration (Start: Dec 1 2021, Shipped: Dec 17 2021)
  • Colab integration (Start: Nov 18 2021, Shipped: Dec 17 2021)
  • Centralized tracking server (Start: Oct 18 2021, Shipped: Jan 22 2022)
  • Tensorboard adaptor - visualize TensorBoard logs with Aim (Start: Dec 17 2021, Shipped: Feb 3 2022)
  • Track git info, env vars, CLI arguments, dependencies (Start: Jan 17 2022, Shipped: Feb 3 2022)
  • MLFlow adaptor (visualize MLflow logs with Aim) (Start: Feb 14 2022, Shipped: Feb 22 2022)
  • Activeloop Hub integration (Start: Feb 14 2022, Shipped: Feb 22 2022)
  • PyTorch-Ignite integration (Start: Feb 14 2022, Shipped: Feb 22 2022)
  • Run summary and overview info(system params, CLI args, git info, ...) (Start: Feb 14 2022, Shipped: Mar 9 2022)
  • Add DVC related metadata into aim run (Start: Mar 7 2022, Shipped: Mar 26 2022)
  • Ability to attach notes to Run from UI (Start: Mar 7 2022, Shipped: Apr 29 2022)
  • Fairseq integration (Start: Mar 27 2022, Shipped: Mar 29 2022)
  • LightGBM integration (Start: Apr 14 2022, Shipped: May 17 2022)
  • CatBoost integration (Start: Apr 20 2022, Shipped: May 17 2022)
  • Run execution details(display stdout/stderr logs) (Start: Apr 25 2022, Shipped: May 17 2022)

In Progress

  • Cloud storage support – store runs blob(e.g. images) data on the cloud (Start: Mar 21 2022)
  • Artifact storage – store files, model checkpoints, and beyond (Start: Mar 21 2022)
  • Long sequences(up to 5M of steps) support (Start: Apr 25 2022)

To Do

Aim UI

  • Runs management
    • Runs explorer – query and visualize runs data(images, audio, distributions, ...) in a central dashboard
  • Explorers
    • Audio Explorer
    • Text Explorer
    • Figures Explorer
    • Distributions Explorer
  • Dashboards – customizable layouts with embedded explorers

SDK and Storage

  • Scalability
    • Smooth UI and SDK experience with over 10.000 runs
  • Runs management
    • SDK interfaces
      • Reporting – query and compare runs, explore data with familiar tools such as matlpotlib and pandas
      • Manipulations – copy, move, delete runs, params and sequences
    • CLI interfaces
      • Reporting - runs summary and run details in a CLI compatible format
      • Manipulations – copy, move, delete runs, params and sequences

Integrations

  • ML Frameworks:
    • Shortlist: MONAI, SpaCy, AllenNLP, Raytune, fast.ai, KerasTuner
  • Datasets versioning tools
    • Shortlist: HuggingFace Datasets
  • Resource management tools
    • Shortlist: Kubeflow, Slurm
  • Workflow orchestration tools
  • Others: Hydra, Google MLMD, Streamlit, ...

On hold

  • scikit-learn integration

Community

If you have questions

  1. Read the docs
  2. Open a feature request or report a bug
  3. Join our slack

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 Distribution

aim-3.11.0.dev4.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

aim-3.11.0.dev4-cp310-cp310-manylinux_2_24_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.24+ x86-64

aim-3.11.0.dev4-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

aim-3.11.0.dev4-cp310-cp310-macosx_10_14_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

aim-3.11.0.dev4-cp39-cp39-manylinux_2_24_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.24+ x86-64

aim-3.11.0.dev4-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

aim-3.11.0.dev4-cp39-cp39-macosx_10_14_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

aim-3.11.0.dev4-cp38-cp38-manylinux_2_24_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.24+ x86-64

aim-3.11.0.dev4-cp38-cp38-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

aim-3.11.0.dev4-cp38-cp38-macosx_10_14_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

aim-3.11.0.dev4-cp37-cp37m-manylinux_2_24_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.24+ x86-64

aim-3.11.0.dev4-cp37-cp37m-macosx_10_14_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

aim-3.11.0.dev4-cp36-cp36m-manylinux_2_24_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.24+ x86-64

aim-3.11.0.dev4-cp36-cp36m-macosx_10_14_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.6m macOS 10.14+ x86-64

File details

Details for the file aim-3.11.0.dev4.tar.gz.

File metadata

  • Download URL: aim-3.11.0.dev4.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for aim-3.11.0.dev4.tar.gz
Algorithm Hash digest
SHA256 5313b7135ee671a8eab57b0097f300843e0c07c94e40478ac05316d82bd0f5fe
MD5 f4d287a60c7b8fa565ded8ba62abf82e
BLAKE2b-256 9920cad0802e14dfa8ae5f546fbd80e32ffed320ba1db70b3f6313dcf30a8d3d

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp310-cp310-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp310-cp310-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 3cf690ca2032354b02959bfe231ffd35bf9276cea6c2106fe912a0449ec4aa4b
MD5 85bd96efb217032cf86165a658e395b2
BLAKE2b-256 e1e89107089efc848fd172c7f8f09abc3b308a9848e13e7d1c2d4b41b1bdd01c

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d84741567c8c9170562739cbeddda427b1e10686e73bf15a002ac642bb2c5363
MD5 da9de0132bff824fa72884d40e292616
BLAKE2b-256 153ae1f03fb342170ea5e1e8b2eb30612971c3119ac14d415813264aa1f8b666

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 9d0c8a9129777b6a13466669d84c3d0aeb6442ba7714e3935d787f0cd08d46bc
MD5 83c9b3acfb41c600950d2363f9c164cd
BLAKE2b-256 3fd3697b7bb86da9b6b94c119b06d9d358794bb2000ea6431c5c3b82ba2471e5

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp39-cp39-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp39-cp39-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 f3fc388c11e6ca42da74a5a8b70055494dc99c67c715e639a1d1efc82d2e97ca
MD5 fa1e7c689e87b0f62ecec6053161a756
BLAKE2b-256 862dea6fe7be3e80331f07b5f95c5f9615726ca56aecdc8ea905ef0162ac6ba1

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd5cec0a7a69ce4a8319eba34e253d27852da74916797ae53d533d5ed0c7474e
MD5 bcf0618f5ac6e3e54afcae08dd51dfa8
BLAKE2b-256 f55d9ba28776891dc0d6cce243e579a3b9a6a2ae374a73613d2ba893631ed53f

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 88210ff86f6906f934f94b38074c6791604f8ab9e8ed70cb4eb7403d993425b9
MD5 342f614d553a7ae404e97bd6bf357f08
BLAKE2b-256 6d28409a864c53d6fc05651fe52b6062a7ec167f9899b06fe73c69d8e8f762e0

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp38-cp38-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp38-cp38-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 070724f979154fbce604ae15e1e2d6170c87cb44561575eacc3794eff3385f15
MD5 3706f444d5929ed0f428cb95854ebc74
BLAKE2b-256 90306a700935d13d7506c68ae2fb36b9266a1d4f9fa789cc15c272f8c5120bd3

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b38fcf25f366bc9e52b347d1a9ebddf0d69071bea6bc71bacf049c80af39ca74
MD5 5885adb8caeb987872bf9116cc218d22
BLAKE2b-256 18dc0921d57c165ddfa881576439b97711f26886b14c845bd006e003e50c235d

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 68310db5ab59f3744673e4b03d50451da9da90f1328ec8e85224c2aa3bb951c4
MD5 63b1e73badc69c141b5c79e0bb7006b2
BLAKE2b-256 4d6b785af94d4367feb3c7019e97dce9d9cf9bf7f2292cf3b6b3bf4cb40eb8d9

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp37-cp37m-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp37-cp37m-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 b0a7d13cc8886bc631f25f29d271b8b067b6dd329bfb8e4026f35e7323a1e4ed
MD5 7cb2b5f10a8cf0d506000da49d23d691
BLAKE2b-256 97e9f7a2bca7d49f28efba167a01e5d583c57047ac7fcde6211ed2e21b62e2e6

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 04c069ff0205688a415d85e93c99085f8b9413318939614735fb6d4ce13e62a0
MD5 a02397ed4bbe7563e18d6a5f055b8aa4
BLAKE2b-256 facb41592aeefbeadbae2d760a2e982285eed3346e8ba8565ceff3bf020820d7

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp36-cp36m-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for aim-3.11.0.dev4-cp36-cp36m-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 3f5aafc832675a2137d8112492992f151326a401aaac932520e55a5f75c7e9ad
MD5 c24de34f1408e8be7b922199d6c98868
BLAKE2b-256 17d5a6cb496c81fcc5d887729d875a18159bc6f534b1a6bb35d378944717d312

See more details on using hashes here.

File details

Details for the file aim-3.11.0.dev4-cp36-cp36m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: aim-3.11.0.dev4-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.13

File hashes

Hashes for aim-3.11.0.dev4-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 4833758056f6ec852fe7a2d6a9dcdb63d5ea6b67d65e01ef5d9768a607dd1585
MD5 0e096742cffb098b52f92362c4de5556
BLAKE2b-256 e130b4ab0d2acdd57bc8d812f70ed002208067d3edfe523e5d8eda9282693a2b

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