TOPSoftware > 機械学習ライフサイクル管理のプラットフォーム(上)

Software

機械学習ライフサイクル管理のプラットフォーム(上)

2020/10/12

Martin Heller InfoWorld

 プロフェッショナルのソフトウエア開発者にとっては、ALM(アプリケーションライフサイクルマネジメント)の利用は当たり前のことだ。一方、ソフトウエア開発のバックグラウンドを必ずしも持たないデータサイエンティストは、機械学習モデルにライフサイクルマネジメントを適用していない場合も多い。だがこの問題は、機械学習のライフサイクルマネジメントに対応したMLOpsの環境やフレームワークの登場に伴って、数年前に比べればかなり対処しやすくなった。

Credit: Art24h / Getty Images

 機械学習ライフサイクルマネジメントは、ALMに似ているとも言えるし、そうではないとも言える。機械学習モデルのライフサイクルは、ソフトウエア開発とはいくつかの点で違いがある。

 ソフトウエア開発者の場合は、コードを書く前の段階で、何を作ればよいかは大なり小なり分かっている。仕様全体を事前に固めるやり方(ウォーターフォール)もあれば、そうでないやり方(アジャイル)もあるが、ソフトウエア開発者が開発、テスト、デバッグに取り組む対象は、その時点で規定することができる機能だ。また、ソフトウエア開発者は、対象の機能が設計どおり動くことを確認するためのテストを作成することもできる。

 一方、データサイエンティストがモデルを作成する時には実験が付き物だ。モデルにはさまざまな種類があり、最善のモデルを判断するには、今のところはすべて試すしか方法がない。加えて、モデルの「良さ」の基準はいくつもあり得るし、ソフトウエアテストに相当するものはない。

 ディープニューラルネットワークなどの優秀なモデルの中には、トレーニングに長い時間がかかるものもある。したがって、データサイエンスでは、GPU、TPU、FPGAなどを活用した高速化が重要な意味を持つ。さらに、モデルの質を高めるために、データのクリーニングや、観測した最善の機能セットのエンジニアリングに、多大な労力が費やされることも多い。

 データセットが固定的だったとしても、数百回に及ぶ試行錯誤や、数十に及ぶ機能セットをきちんと把握しておくことは簡単ではない。そのうえ、現実にはデータが流動的に変わることも多く、モデルを定期的に調整する必要がある。

 機械学習ライフサイクルにはいくつかの捉え方の枠組みがある。多くの場合、まず構想から始まり、データ収集や探索的データ分析へと続く。さらにそこから、多数の実験を伴う研究開発と検証に進み、デプロイとモニタリングに至る。時には、モニタリングから振り出しに戻って、別のモデルや機能を試したり、トレーニングデータセットを新しくしたりすることもある。実のところ、ライフサイクルの中で前のステップに戻ることは、どのステップからでも起こり得る。

 機械学習ライフサイクルマネジメントシステムは、実験の経緯の管理やトラッキングに対応できる機能を備えている。さらに、デプロイやモニタリングにも対応している場合がある。

↑ページ先頭へ