Feb 15, 2023
Aim 3.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! 💫
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. 💀
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.
- Explicitly import the
AimCallback
andAimWriter
for tracking training metadata:
from aim.sdk.acme import AimCallback, AimWriter
- 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)
- 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.
Explicitly import the
AimCallback
for tracking training metadatafrom aim.sb3 import AimCallback
- 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. ⭐️
- Pass the callback to