Azure Machine Learningで選択部分のみの実行が可能に
Azure Machine Learningの開発チームは新機能として、エクスペリメントで選択部分の一部実行ができるようにしたことを発表しました。以下は発表内容を和訳したものです。
はじめに
Azure MLは、ユーザーが機械学習システムをクリック&ドラッグで実装できるツールです。実験は通常、モジュールを組み合わせ、パラメーターをチューニングし、その結果を評価します。従来は変更を実装する度に実験を再実行させる必要があり、これは面倒臭く、時間の無駄でした。
本日より、ユーザーが一部分を選択しが範囲のみを実行できるようにしました。どのモジュール実行したいか選択し、「Run selected」ボタンをクリックすることで選択された部分と選択部分が依存するモジュールのみが実行されます。
どういうときに「Run selected」を使用すれば良いか
実験を構築するには実験全体を実行するか、「Run Selected」を選択し、一部分を実行することで出来ます。全て実行することで最初から最後まで正しく実行されることが確実にわかりますが、場合によっては全て実行すると、非常に時間がかかってしまうことがあります。大きく、複雑な実験では特にそうです。もし一部パラメーターのみを修正した場合に、全実行するよりも一部実行するだけの方が便利かもしれません。これなら素早く変更を適用できます。
部分的に実行する
部分的に実行するには単一のモジュールを実行するか、複数のモジュールを実行することができます。選択するには、クリックで範囲選択するか、Ctrlキーを押しながらクリックしていく方法があります。範囲選択したら、キャンバスを右クリックし、「Run selected」をクリックするか、画面下側のコマンドバーサブメニューから. 「Run」ボタンへカーソルを持っていき、 「Run selected」をクリックします。
「Run selected」をクリックせずにカーソルをボタンの上に持っていくと、実行対象の範囲がプレビュー表示され、実行されるモジュールが青色になります。
選択したモジュールよりも多く実行されるのはなぜ?
実験を一部実行する場合、以前に実行され、再実行される必要のないモジュールは実行されません。新しい実行により影響を受けるモジュールはキャッシュされた結果が無くなってしまいます。これにより実験の実行スピードが(特に小さな修正では)より早くなります。前回実行した結果で再利用可能なデータはそのままデータが維持されます。そのため、全てを再実行する必要がなくなったのです。
ただし、選択したモジュールに依存するモジュールが以前実行されたことがない場合は、そのモジュールも実行する必要があります。
既に実行されたモジュールでも、都度変更があるモジュール(例として「Import Data」など)では再度実行されます。ただし、キャッシュされた結果を使用することで、再実行を回避することも可能です。その方法は、モジュールを選択した際に表示される右側の画面での「Use cached results」を選択すればできます。
以下の例では「Convert to CSV」 (CSVへ変換)が選択され、実行されようとしています。まだ実行されていない「Split Data」モジュールも合わせて実行されることが確認できます。そのため、「Split Data」も実行対象として青色になっています。これは「Split Data」が「Import Data」の依存するモジュールのためです。更に下の例では「Use cached results」を有効にしているため、実行されません。
違いをご覧頂くため、次の図をご覧下さい。「Use cached results」にチェックが入っていないため、「Import Data」と「Add Columns」モジュールは既に実行されたにも関わらず、再度実行する対象となっています。更に、左側に配置されている「Summarize Data」モジュールも「Import Data」モジュールのデータに依存するため、再度実行されます。
使用例: エラーで止められないようにする
実験を作成しているときに一部エラーが発生した時、全実行を選択すると、途中で実験が止まってしまいます。エラーとなっているモジュールを無視し、「Run selected」を選択することでエラーを回避し、実験の一部分に集中することができます。例えば以下の図では左上の部分で実行が失敗しています。一部実行することでエラーが起きていても、「Execute R Script」が実行できることが確認できます。
使用例:関連しないモジュールを実行させない
一部モジュールでは、実行したくないものもあるかと思います。例えば、時間がかかり過ぎているモジュールや、データをストレージへ書き込むモジュール等。一部のモジュールは、すべての設定が完了してから実行したい場合時があるかと思います。そういう場合には、選択したモジュールのみ実行することで、より早く進捗を進めれられます。
上記の内容をまとめると、今回の機能が追加され、一部のみ実行が可能になったことで、Azure Machine Learningのユーザーの生産性はより良いものへとなったかと思います。
フィールドバックや、新しい提案、この機能についての意見がありましたら、ぜひ、共有してください。
Mickaël
コメントを残す