Feb 15, 2023

Aim v3.16 — Run messages in UI, TensorBoard real-time sync, integration with Hugging Face Datasets

Author:Gor Arakelyan
Aim v3.16 — Run messages in UI, TensorBoard real-time sync, integration with Hugging Face Datasets

Hey community, excited to announce Aim v3.16 is out! 🚀 It is packed with new integrations and key enhancements.

We are on a mission to democratize AI dev tools and are incredibly lucky to have the support of the community. Every question and every issue makes Aim better!

Congratulations to timokau, dsblank and grigoryan-davit for their first contributions. 🙌

Key highlights

Run messages tab in UI

Starting from version 3.15, Aim has enabled an ability to log training messages and even send notifications to Slack or Workplace.

With the version 3.16, you’ll be able to view all your run messages right in the UI. All the information you need is just a click away! 💫

blog image

Real-time sync with TensorBoard logs

Aim smoothly integrates with experiment tracking tools. If you’re part of a team that’s already deeply integrated TensorBoard into your projects and pipelines, you will love this enhancement.

With just one simple line of code, you can integrate Aim with your existing TensorBoard projects. This means that all your logs will be automatically converted to Aim format in real-time. 🔥🔥🔥

from aim.ext.tensorboard_tracker import Run

aim_run = Run(
    sync_tensorboard_log_dir='TB_LOG_DIR_TO_SYNC_RUNS'
)

Support for Python 3.11

The Python community has received fantastic news towards the end of 2022. The stable Python 3.11 has been officially released!

With Aim 3.16 release, you can install and use Aim in your python 3.11 projects. 🎉

pip3.11 install aim

Dropped support for Python 3.6

Time to say goodbye: Python 3.6 has reached the end-of-life. 💀

blog image

This change allows us to take advantage of the latest advancements in the Python language and provide you with a more robust and reliable library.

Please note that if you have been using Aim in your Python 3.6 projects, you will need to upgrade to newer Python versions in order to continue using Aim.

We apologize for any inconvenience this may cause, but rest assured that the improved stability of Aim will make it worth the transition.

New integrations

Aim 3.16 is packed with new integrations with favorite ML tools!

Aim + Hugging Face Datasets = ❤

Happy to share now you can easily track and store dataset metadata in Aim run and explore it on the UI.

from datasets import load_dataset

from aim import Run
from aim.hf_dataset import HFDataset

# Load the dataset
dataset = load_dataset('rotten_tomatoes')

# Store the dataset metadata
run = Run()
run['datasets_info'] = HFDataset(dataset)

See the docs here.

Aim + Acme = ❤

Aim’s been added a built-in support for tracking Acme trainings. It takes few simple steps to integrate Aim into your training script.

  1. Explicitly import the AimCallback and AimWriter for tracking training metadata:
from aim.sdk.acme import AimCallback, AimWriter
  1. Initialize an Aim Run via AimCallback, and create a log factory:
aim_run = AimCallback(repo=".", experiment_name="acme_test")

def logger_factory(
    name: str,
    steps_key: Optional[str] = None,
    task_id: Optional[int] = None,
) -> loggers.Logger:
    return AimWriter(aim_run, name, steps_key, task_id)
  1. Pass the logger factory to logger_factory upon initiating your training:
experiment_config = experiments.ExperimentConfig(
    builder=d4pg_builder,
    environment_factory=make_environment,
    network_factory=network_factory,
    logger_factory=logger_factory,
    seed=0,
    max_num_actor_steps=5000)

See the docs here.

Aim + Stable-Baselines3 = ❤

Now you can easily track Stable-Baselines3 trainings with Aim. It takes two steps to integrate Aim into your training script.

  1. Explicitly import the AimCallback for tracking training metadata

    from aim.sb3 import AimCallback
    1. Pass the callback to callback upon initiating your training:
    model.learn(total_timesteps=10_000, callback=AimCallback(repo='.', experiment_name='sb3_test'))

    See the docs here.

    Learn more

    Aim is on a mission to democratize AI dev tools. 🙌

    Try out Aim, join the Aim community, share your feedback, open issues for new features, bugs.

    Don’t forget to leave us a star on GitHub if you think Aim is useful. ⭐️