DRIVE CHART で 実験管理ツール としてClearMLを採用しました

この記事はMobility Technologies Advent Calendar 2022の22日目です。

スマートドライビング事業部システム開発部AI基盤グループの石井です。

この記事ではDRIVE CHARTの機械学習チームで採用している実験管理ツールであるClearMLについて紹介します。

ClearMLとは

ClearMLはAllegro AI社が開発している機械学習のための実験管理ツールです。

https://clear.ml/

聞き慣れない人が多いかと思いますが、Weights & BiasesやMLflowといったメジャーな実験管理ツール同様、少量のソースコードの追加で簡単にメトリクスやロスの記録といった実験管理を行うことができるほか、SaaS版が用意されているため、簡単に利用を開始することができます。

一般的な実験管理ツールに備わっているような実験同士のメトリクスやハイパーパラメータの比較といった基本的な機能は網羅されていますし、後述しますがClearMLには多彩な機能が実装されています。

メトリクスやロスの比較画面

メトリクスやロスの比較画面

ハイパーパラメータの比較画面

ハイパーパラメータの比較画面

採用に至った背景

これまでDRIVE CHARTでは特定の実験管理ツールを採用しておらず何を使用するかについては各メンバーに委ねていましたが、見直しを行い、チーム全体で使用するツールを導入することになりました。

まずデータサイエンティストやCVエンジニア達とブレストを行い、新しい実験管理ツールへの要求を洗い出しました。その中から選定に当たって重視したものをいくつか紹介します。

コストの観点なども盛り込みつついくつかのツールが候補として上がりましたが、最終的に上げられた要求を最も満たすことができるClearMLを選択しました。

ClearMLの機能

ClearMLには痒いところに手が届くような機能が数多くあります。ここではそれらの機能の中から特に便利であると感じたものを紹介します。

未コミットのソースコードの記録

ClearMLでは以下のようにコミットされていないソースコードが実験結果とともに記録されます。過去の実験を再現しようとした時、コミットしていないソースコードが紛れてしまい再現できないということがあるかと思いますが、この問題をツール側で解決してくれるのはありがたいです。

未コミットのソースコードの表示画面

未コミットのソースコードの表示画面

パッケージやPythonのバージョンの記録

ClearMLではさらに使用したパッケージやPythonのバージョンも自動で記録してくれます。

使用したパッケージのバージョンの表示画面

使用したパッケージのバージョンの表示画面

コンソール画面のトラッキング

コンソールに表示されたログ等を記録してくれます。これがあるとエラーが発生した時に原因を特定しやすくなったり、ブラウザから実験の進捗を確認できたりと様々な恩恵があるかと思います。

コンソールに表示されたログの表示画面

コンソールに表示されたログの表示画面

これから

ClearMLには実験管理機能以外にもClearML側で用意している計算リソースを使用して実験を行うClearML Agentと呼ばれる機能や、Oputunaなどを使用してハイパーパラメータチューニングを行う機能なども存在します。

現時点ではDRIVE CHARTでは実験管理機能のみ導入していますが、今後これらの機能についても検討・導入を進めていこうと考えています。