Writer:安藤 隼人
Azure Machine Learningとは?Azure環境で機械学習モデルを独自に構築・運用
「Azure Machine Learning」は、インフラ環境の運用や機械学習のITリソース準備などを気にせずに機械学習モデル構築・運用に集中したい人向けのサービスです。Azure Machine Learningを利用すれば、Azureの巨大なリソースを使って機械学習モデルを自由に構築、運用できます。Microsoftがサービスの運用まで提供するマネージド環境で、インフラ環境を意識せず機械学習に集中できることが魅力です。
関連資料
Azure Machine Learningのメリット
Azure Machine Learningは、機械学習の自動化や機械学習のオペレーション(MLOps)を円滑にする仕組み、巨大なリソースなどさまざまなメリットがあります。ここでは、主な3つのメリットをご紹介します。
GUIで機械学習を自動化
機械学習というと、モデルを1からプログラムするのが大変というイメージをお持ちの方も多いかもしれません。Azure Machine Learningでは、ドラッグ&ドロップに対応したGUIが用意されており、プログラム知識に不安のある方でもわかりやすく操作ができるようになっています。もちろんコードによるプログラミングもでき、Python、PyTorch、scikit-learn、TensorFlowなど、よく使われるオープンソースやフレームワークをサポートしています。
MLOpsを円滑にする仕組み
「MLOps」とは、機械学習(Machine Learning)実装と、運用(Operations)までのライフサイクルを円滑に進めるための管理体制を表す言葉です。開発チーム(Development)と運用チーム(Operations)がお互いに協調し合うことを意味するDevOpsから派生しています。機械学習モデルの作成やデプロイ、環境構築などを自動化し、開発スピードやリリースのサイクルを早めることや、モニタリングや監視を行い安定稼働を担保するなど、開発側と運用側が協調した取り組みに特徴があります。Azure Machine Learningでは、このMLOpsを円滑に実施する環境が実装されていて、機械学習モデルを作って終わりではなく、例えば、モニタリングの状況に応じて再学習を自動化するなどの仕組みを活用できます。
強力なリソースによるスケーリング
Azureの持つCPUとGPUによる自動のリソース調整(スケーリング)機能で、柔軟に機械学習モデルを展開でき、迅速なトレーニングが可能です。一般的に機械学習の環境を整える場合、必要なサーバーリソースを事前に用意する必要がありますが、Azureであれば必要なだけリソースを自動で調整できるため、インフラ環境の運用負荷を軽減できます。
Azure Machine Learningの3つの学習方法
次に、作成した機械学習モデルの精度を高めるために不可欠な「学習」について、みていきましょう。
Azure Machine Learningの学習方法は3つあります。各学習の特徴は以下の通りです。
ノートブックでの学習
ノートブックとは、「コード」と「実行結果」と「コードのメモ」をまとめられる仕組みです。通常はコードを書いて実行することにより実行結果が別画面で出力されますが、ノートブックを使用することによりコードやコードのメモと実行結果をまとめて保存しておけるため、自由にモデルを構築できます。
Azure Machine Learningでは、Jupyter NotebookやAzure Notebookをはじめとした開発環境を制限なく利用でき、Pythonライブラリの使用制限もありません。そのため、Pythonの機能を最大限活用して、ノートブックで自由に機械学習のモデルを構築したい方になどに向いています。
自動機械学習(AutoML)での学習
自動機械学習とは、前処理済みのデータから最適な機械学習モデルを生成する仕組みです。機械学習では、学習モデルを繰り返し学習させることで精度が上がることはよく知られていますが、その学習には時間を要するため、複数の機械学習モデルを構築し比較することは非常に手間のかかる作業でした。しかしAutoMLを利用すれば、事前に読み込ませたデータについて複数の学習モデル構築を自動で試行でき、さらに学習実行結果を管理画面から比較することで、効率よくモデル検証を進められるメリットがあります。既存の学習モデルで効率よく機械学習を進めたい方に向いています。
デザイナーでの学習
デザイナーとは、GUIベースで前処理や学習のモジュールをフローチャートのような形で配置し、視覚的でわかりやすい学習モデルの構築を実施できる仕組みです。AutoMLで学習を実行すると自動で学習モデルが選択されますが、デザイナー機能では使用するモデル選択や特徴量生成について調整可能というメリットがあります。必要に応じてコードも挿入できます。サンプルの学習フローが多数用意されているため、簡単な学習であれば大抵はカバーできるでしょう。機械学習やプログラミングなどの知見があまりなくても機械学習モデルの構築を進めることができます。
これらの学習を用途に応じて使い分ければスムーズに機械学習を進められ、学習が完了した機械学習モデルは、Azure IoT EdgeやAzure Kubernetes Serviceで管理するコンテナ(1つのシステムを区切ったリソース空間)内のOS環境などへ容易にデプロイすることができます。Azure IoT Edgeはクラウド上のシステムとIoTのエッジデバイス(センサーなど)を接続するサービスで、Azure Kubernetes Serviceは、コンテナの運用を自動化できるKubernetesをAzure上で提供するサービスです。
さらにMLOpsの仕組みを利用することで、モデル開発とモデル運用管理を密に連携させ、機械学習の開発と運用を効率的かつ自動的に実施できます。
Azure Machine Learningと他のAzure機械学習サービスとの違い
ここまでお伝えしてきた内容で、やはり機械学習はハードルが高いと感じられた方もいらっしゃるかもしれません。しかしAzureには、もっと簡単に機械学習を利用したい方向けにもサービスが用意されています。
ここでは、Azure Machine Learningと、他のAzure機械学習サービスとの違いをみていきましょう。
Azure Machine Learning
Azure Machine Learningは、機械学習の知識があり、独自の機械学習モデルを自由に構築、運用したい人向けのサービスです。上述した通り、インフラ環境の運用や機械学習に要するリソースを考慮する必要がなく、開発チームと運用チームをスムーズに連携できる仕組みを提供しています。一方で細かい設定が必要になる部分もあるため、初めて機械学習を使う方には後述する他のサービスがお勧めです。
Azure Cognitive Services
Azure Cognitive Servicesは、Azureが提供する機械学習モデルを活用し、ノンプログラミングで独自モデルを構築することができるサービスです。人間の認知(Cognitive)を模した機能をWebAPIとしてすぐ利用でき、画像認証や文字起こしのシステムに活用可能な「機械学習パーツ」を提供しています。より簡単に機械学習を活用したい方向けです。
Azure Bot Service
Azure Bot Serviceはボット開発向けに特化されたサービスです。Microsoftがインフラの運用まで実施するマネージド環境で、事業活動向けのボットを素早く開発できます。ボットの種類は、一般的なQ&A ボットから独自ブランドの仮想アシスタントまでさまざまです。
違いを表にまとめると以下の通りです。
サービス名 | 特徴 |
---|---|
Azure Machine Learning | 機械学習の知識があり、独自の機械学習モデルを自由に構築、運用したい人向けのサービス |
Azure Cognitive Services | 視覚、音声、言語、決定といった人間の認知(Cognitive)を模した機能をWebAPIとしてすぐ利用できる |
Azure Bot Service | ボット開発向けに特化されたサービス。Microsoftがインフラの運用まで実施するマネージド環境で、事業活動向けのボットを素早く開発 |
Azure Machine Learningの料金
Azure Machine Learningは、消費済みのAzureリソースに伴う費用だけで利用でき、Azure Machine Learning 自体の利用は無料です。2022年10月現在では5種類の価格体系があり、どの程度の性能のインスタンスを何時間使うかによって費用が決まります。例えば、汎用プランの「D2ds–D64ds v4 (最新世代)」で16vCPU、メモリ64GiBの比較的大規模の仮想マシンを1ヵ月間継続稼働すると、12万円程度の費用になります。
汎用
中小規模のデータベースなど、比較的負荷の小さい処理向けのプランです。
コンピューティングの最適化
汎用プランとメモリ最適化プランの中間程度の中規模処理に適したプランです。
メモリの最適化
キャッシュや大きいメモリサイズを要求する大きめの処理に適したプランです。
GPU
負荷の高いグラフィックのレンダリングやビデオ編集にGPUを併用することで、画像処理に特化したプランです。
ハイパフォーマンスコンピューティング
高スループットのネットワークインターフェイス (RDMA) のオプションを備えた、最も高速かつ強力な CPUを使用するプランです。
詳細は下記の公式ページをご覧ください。