機械学習の処理を自動化「Azure Machine Learning」
データ分析系システムの作業の大部分はデータの加工にあり、定義付けによってコーディング作業を減らして短時間で処理できる「Azure Data Factory」については前回解説した。この次の段階として、データ分析のサイクルを継続的に回せる環境を整備することが重要となる。これを踏まえ、機械学習を活用してデータ分析のライフサイクルを自動化するMLソリューション「Azure Machine Learning」を紹介する。
選べる動作環境&オープンな仕組み
膨大なデータが発生する製造業や小売業では、傾向や改善策を機械学習(Machine Learning:ML)によって効率的に打ち出してビジネスの発展につながるシステムを構築する必要がある。しかし、機械学習では事前準備となるデータの前処理、データやアルゴリズムが変わることによる再学習、それに伴うモデルの再展開など、運用に負荷がかかりがちだ。
具体的な課題の洗い出しに向けて、MLの運用フローを確認してみよう。MLの一般的なワークフローは、データの収集・前処理、モデルの学習、仮説検証を経て、本番環境へのデプロイ、監視、更新といった順で行う。しかし、MLの開発サイドと運用サイドの知見やスキルセットが異なることから開発側と運用側との連携が取れておらず、実運用に至らないケースも多い。そうしたプロセスが自動化されていないとモデル作成とデプロイを毎回一から行う手間が生じ、システム運用の大きなネックとなり得るのだ。
MLをビジネスに役立てるためには、DevOpsから派生した機械学習版のソフトウェア開発手法「MLOps」の活用が望ましい。MLOpsは、開発担当と運用担当が連携してモデルの開発から運用まで一連のライフサイクル管理を自動化する機能や仕組みを備え、より発展的なケースでは変化を検知して再学習やモデルの再配置も自動化、もしくは半自動化する。この構成によって、機械学習システムの構築、運用を迅速に進められるのだ。MLOpsの考え方を踏まえ、日本マイクロソフト クラウドソリューションアーキテクトの松崎 剛氏は「Azure Machine Learning」導入のメリットを次のように説明する。
「データ処理や分析にAI活用するとしても、いきなりクラウド環境で動かすケースは少ないでしょう。Azure Machine Learningの一番のメリットはクラウド以外のさまざまな環境であらかじめ構築されたコードをそのまま利用できる点があります。例えば、MacはUnixベースのOSですが、『Python SDK』や『CLI v2』といった開発者向けツールは、Mac環境やLinux環境にも対応しています。Azure Machine Learningを利用した開発では、まず使い慣れた動作環境やマシンに小さめのデータを入れて、最初に目的としている学習が確実に遂行されるか確認した後で、GPUリソース上での確認などクラウドが必要になった段階で、そのオンプレ上のコードを変えることなくそのままSDKやCLIコマンドを通してクラウドに持ち込んで自動化できます。また、Azure Machine Learningによる推論環境の展開では、SDKやYAMLを使ってDockerイメージを作成するなど、オープンな技術をベースとして動作しています。このため、例えば、Dockerイメージのみを作成してエッジデバイスに展開するなど、製造業向けのエッジコンピューティングなどにも横展開可能です」
複数マシンの同時スケールが可能
機械学習の作業に多くの時間を費やす処理の一つに、「学習」がある。Azure Machine Learningは、このスケール作業を効率化すると松崎氏は説明する。
「クラウド上でマシンをスケールすることで効果が期待できる機能として、『ハイパーパラメーターチューニング』があります。例えば、通常では学習させるときにモデルのパラメータを変更して一番精度が良い状態を探します。例えば、三つパラメータがあり、それぞれ3通りずつ値を変えて確認したい場合には3×3×3で合わせて27通り確認する必要があります。1パターンの学習に1時間かかるとして、27通りやっていると27時間となり、1日かけても終わりません。そうした場合に、Azure Machine Learningを使って実行する際にマシンを27台までスケールする設定しておくと、先ほどの説明で1日かかっていた作業が1時間程度で終えられます。処理が完了した後は、自動で0台に設定を戻せます」
特にユーザーから評価が高い機能として松崎氏は「自動機械学習」機能を紹介する。「自動機械学習はアルゴリズムを自動選定できる機能です。選定範囲は、分類・回帰・時系列分析の三つの工程をサポートしています。また、画像の分類と画像のセグメンテーション、物体検知もできるようになっています。予測するカラムを選択すれば自動でアルゴリズムが探索されます。アルゴリズムは基本的にグリッド検索で一通り確認するのですが、各アルゴリズムのパラメータ設定はベイズ最適化といって、ある意味答えに近そうな値のパラメータのみ集中的に調査できます。手動で行う場合に相当時間がかかる作業を、アルゴリズムの検索によって効率化し、先ほど述べたスケール化とベストマッチに活用できます」
高度なデータ活用の促進を目的としたMLツール
機械学習で負担の多い処理を自動化するAzure Machine Learningの有用性はどのような点にあるのか。松崎氏は、製品戦略や将来展望を次のように語る。「想定用途として、例えば製造業の場合、工場で起こっているデータを戦略的に集めて予防保全に役立てたり、工場の稼働状況からインサイトを得て次のビジネスにつなげたりといった、高度にデータを活用してもらうことを期待しており、これにより企業さまのビジネスのデータをMicrosoft Azureの上に集積してもらい、活用が進んでくれることを期待しています。Azure上のコンピュートやストレージを使って、Azure Machine Learningと全く同じ仕組みを自前で構築しても、実はAzure Machine Learningを使った場合と発生する費用は変わりません。つまり、Azure Machine Learningのサービス利用に伴う追加費用は0円となっています。こうした価格面についても、上述のような企業に対しての付加価値を提供したいという思いが込められています」