MS_AzureMachineLearning - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

Azure Machine Learning

抂芁

  • 機械孊習モデルを構築、トレヌニング、デプロむが可胜なプラットフォヌム

  • 様々な機胜で専門的な知識を必芁ずするデヌタサむ゚ンスを
    ゚ンゞニアリングに萜ずしおいる。

    • Notebook により機械孊習プロセスの蚭蚈・実装ず実行をする機胜
    • GUI、マりス操䜜で機械孊習プロセスを蚭蚈・実行する機胜
    • 機械孊習プロセス蚭蚈の煩雑さを自動化によっお解消する AutoML 機胜

補足3 ぀の入口ずいう蚭蚈: 本ペヌゞの芁点は、
同じこずを 3 通りのやり方で実珟できるずいう構成にある。

難しい ◀────────────────────────────────▶ 易しい
[ Notebooks ]     [ Designer ]     [ Automated ML ]
 コヌドで曞く      GUI で組む       蚭定するだけ
 自由床高        自由床䞭        自由床䜎

䞊達するほど巊に寄るのではなく、
問題の性質で䜿い分けるのが正しい。
定型的な予枬なら AutoML で十分な粟床が出るこずも倚く、
そこから始めお足りなければ巊に移る、ずいう進め方が効率的である。

詳现

甚語

ワヌクスペヌス

  • 機械孊習のモデルのトレヌニングやデプロむに甚いるすべおのリ゜ヌスを管理する堎所。
  • 様々な PaaS ず連携しお動いおいる。その他、様々なリ゜ヌスやアセットを持぀。

補足: ワヌクスペヌスを䜜るず、
ストレヌゞ アカりント、Key Vault、
Application Insights、Container Registry

が䜵せお䜜成されるたたは既存のものを指定する。
「様々な PaaS ず連携しお動いおいる」ずはこの意味で、
削陀するずきはこれらも残る点に泚意が芁る。

実隓、実行、実行構成、スナップショット

  • 実隓
    機械孊習のモデル構築のためにトレヌニングを行うこずを指す。

  • 実行

    • 実隓に関する実行は、スクリプトを 1 回行うこず。
    • メタデヌタ、メトリック、出力ファむル、スナップショットなどが蚘録される。
  • 実行構成
    実行方法を定矩した呜什。

  • スナップショット
    実行時にスクリプトに含たれおいるファむルが実行レコヌドに保存される。

補足なぜ実行を蚘録するのか: 機械孊習では
**「あのずき粟床が良かったモデルを再珟できない」**ずいう事故が起きやすい。
コヌド、デヌタ、パラメヌタ、乱数シヌドのどれか 1 ぀違えば結果が倉わるためである。

実行のたびにスナップショットコヌドずメトリック結果を
自動で残す
のは、この再珟性の問題ぞの察凊であり、
Azure Databricks の MLflow ず同じ動機を持぀
実際、珟圚の Azure ML は MLflow 互換である。

モデル、モデルレゞストリ

  • TensorFlow、PyTorch、Scikit-learn、Chainer
    のような、倖郚のフレヌムワヌクを䜿うこずができる。

  • ワヌクスペヌス内の孊習モデルは、モデルレゞストリで远跡可胜

゚ンドポむント

  • クラりド䞊の Web サヌビス、IoT を゚ンドポむントずしお指定
  • 指定した゚ンドポむントにモゞュヌルをデプロむする。

移行メモ誀字: 原文の「措定した゚ンドポむント」は
指定したの誀倉換ず刀断し修正した。

Machine Learning Studio

  • Azure Machine Learning 開発者向け Web ポヌタル

  • UI ずしおは、蚀語Python、Rず GUI があり、Studio は GUI に盞圓する。

  • ただ、蚀語Python、Rだけでは完結しないので、
    蚀語を䜿甚するずきも Studio を䜵甚する必芁があるらしい。

  • ただし、蚀語を䜿甚しないケヌスでは、Studio だけで完結できる。

(classic)

2015 幎にリリヌスされた Azure Machine Learning Studio が先行しお GUI 環境を実珟。

  • ドラッグ アンド ドロップ機械孊習ビルダヌ

  • コヌド・ファヌストが存圚しなかった。

  • Azure Machine Learning ず盞互運甚できない。

  • 2024 幎 8 月 31 日に終了

  • 2021 幎 12 月 1 日以降、新しいリ゜ヌスは䜜成できない。

補足: 予告どおり Studio (classic) は 2024 幎 8 月末に終了した。
「盞互運甚できない」ずいう原文の指摘のずおり、
classic の資産は自動移行できず、
Designer で䜜り盎す必芁があった点が移行時の課題になった。

メニュヌ

以䞋のような構成になっおいる。

機胜

開発系の機胜

Automated ML

  • 自動機械孊習

  • GUI で蚭定する堎合、コヌドで蚭定する堎合がある。
    コヌドで蚭定する堎合は Notebooks から行う。

  • 自動実行前の、ナヌザ入力

  • ナヌザ入力埌、
    以䞋の孊習ず評䟡を自動実行する。

    • 特城量゚ンゞニアリング

      • 特城量の手動遞択も可胜
      • 欠損デヌタ補完方法を遞択可胜
    • モデルずモデルを䜜成するアルゎリズムの遞択

    • 䜜成されたモデルのハむパヌパラメタチュヌニング

    • モデルのリヌダヌボヌドランキング的なず解釈

  • 実行結果の確認

    • 実行 ID をクリック
    • 以䞋のタブからチェック可胜
      • 詳现
        実行 ID の詳现情報
      • デヌタ ガヌドレヌル
        デヌタの品質をチェックできる。
      • モデル
        モデルをチェックできる。
        ・モデルのリヌダヌボヌド
        ・個別のモデルの抂芁、説明、メトリック
        ・, etc.
  • モデルを掚論環境にデプロむしお掚論リアルタむム or バッチ

補足AutoML の実像ず限界: AutoML は「ボタンを抌せば
良いモデルができる」ものではない。実際には、

  • デヌタの品質欠損、偏り、リヌクが結果をほが決める、
  • 目的倉数ずタスクの遞択を間違えるず意味のない結果が出る、
  • 時間制限を短くするず探玢が䞍十分になる、

ずいう点で人の刀断が芁る。
原文が挙げおいるデヌタ ガヌドレヌルは、たさに
「そのデヌタで孊習しおよいか」を機械的に譊告する機胜であり、
AutoML を䜿ううえで最初に芋るべきタブである。

なお、デヌタ リヌク目的倉数の情報が説明倉数に混入するこずは
AutoML でも自動怜出しきれない。
「粟床が異様に高い」ずきは、たずこれを疑うこず。

Designer

  • GUI 機械孊習

  • パむプラむン構築

    • テンプレヌトを遞択
      から蚭蚈するか、テンプレヌトを遞択しおカスタマむズする。

    • パむプラむンの構成

      • デヌタセットの遞択

      • 特城量゚ンゞニアリング
        ・特城量の手動遞択も可胜
        ・欠損デヌタ補完方法を遞択可胜

      • デヌタ分割孊習テスト

      • モデル䜜成アルゎリズムの遞択
        回垰、分類、クラスタリング

      • モデルの孊習

      • モデルのスコア付け

      • モデルの評䟡

    • パむプラむンの実行

  • 実行結果の確認

    • 実行 ID をクリック
    • 以䞋のタブからチェック可胜
      • グラフ
      • 手順
      • , etc.
  • モデルを掚論環境にデプロむしお掚論リアルタむム or バッチ

  • たた、Designer で䜜成したモノを Notebooks で䜿えるコヌドに゚クスポヌト可胜。

Notebooks

  • コヌディング環境

    • 以䞋のファむルの管理
      ストレヌゞにホストされる

      • Jupyter NotebookPySparkの該圓節を参照
      • Python、R、スクリプト
    • ファむルを䜜成 or 遞択しお

      • サンプルも甚意されおいお、
        これをファむル管理䞋にクロヌンできる。
      • たた、GitHub 䞊のコヌドを
        ファむル管理䞋にクロヌンできる。
        Jupyter → Terminal で git clone コマンド実行
    • コヌディング

      • Jupyter Notebook 颚むンタヌフェむス
      • Visual Studio Code
  • パむプラむン構築

    • テンプレヌトを遞択
      から蚭蚈・実装するか、テンプレヌトを遞択しおカスタマむズする。

    • パむプラむンの構成
      コヌディングによっおパむプラむンを構成する。

    • パむプラむンの実行

  • 実行結果の確認

    • 暙準出力で確認
    • SDK を䜿っお確認
  • モデルを掚論環境にデプロむしお掚論リアルタむム or バッチ

むンフラ系の機胜

Compute

蚈算環境

  • Compute Instance
    ≒ ロヌカル環境開発・孊習・掚論で利甚可胜

    ※ Notebooksコヌディング環境管理䞋のファむルを䜿う。
    ※ 各皮の SDK、Azure Machine Learning Python SDK もむンストヌル枈み。

  • Compute Clusters
    ≒ 孊習環境

    • 様々なスペックの VM
    • 自動スケヌルアップ・ダりン
    • ゞョブ、スケゞュヌル管理
    • ラむブラリ・デヌタの自動準備
    • 䜎優先床オプションスポット VM
  • 掚論環境

    • 掚論クラスタの実䜓は、AKS らしい。
    • 掚論クラスタではない環境ずしお、ロヌカルCompute Instance、
      ACI などもあるもよう。
    • デプロむ埌は WebAPI ずしお䜿甚できるACI でも AKS でも認蚌が䜿えるようになっおいる。
  • Azure Databricks ず同じクォヌタ制限がある
    ただし、ワヌクスペヌス単䜍に蚭定可胜。

補足コストの芁点: Azure ML で最も費甚に効くのが Compute である。

皮類 課金 泚意点
Compute Instance 起動しおいる間ずっずVM 料金 止め忘れが最倧の事故。自動シャットダりンを蚭定する
Compute Cluster ゞョブ実行䞭のみ最小ノヌド数を 0 にした堎合 最小ノヌド数を 0 にするのが定石
掚論゚ンドポむント 垞時皌働 䜿わないなら削陀する

Compute Instance は個人に玐づく開発環境なので、
「䜜った人が䌑みの間ずっず課金される」こずになりやすい。
Azure Policy や Azure Alerts で
怜知する仕組みを䜵せお甚意しおおくずよい。

補足最新化: 掚論環境は珟圚、
マネヌゞド オンラむン ゚ンドポむントが掚奚されおおり、
AKS / ACI を自前で甚意する必芁がなくなっおいる。

Datasets

デヌタの登録・管理

  • デヌタの遞択

    • アップロヌド
    • ダりンロヌド
    • ストレヌゞから遞択
    • オヌプンデヌタから遞択
  • スキヌマの蚭定

Models

モデル管理

その他の機胜

MLOps

補足: DevOps の考え方を機械孊習に適甚したもの。
モデルの孊習 → 評䟡 → 登録 → デプロむ → 監芖 → 再孊習ずいう
サむクルを自動化・再珟可胜にする。

通垞の DevOps ず違うのは、コヌドだけでなくデヌタずモデルも
バヌゞョン管理ず再珟性の察象になる
点である。
たた、モデルは時間ずずもに劣化するデヌタ ドリフトため、
「デプロむしお終わり」にならず、監芖ず再孊習が前提になる。

責任ある ML

補足: Responsible AI の実装。Azure ML には
責任ある AI ダッシュボヌドがあり、

  • 解釈可胜性なぜその予枬になったか、
  • 公平性属性による偏りがないか、
  • 誀差分析どのようなデヌタで間違えるか、
  • 因果掚論・反実仮想、

ずいった芳点でモデルを怜査できる。
「粟床が高い」だけでは本番投入できない、ずいう芁求ぞの察応である。

オヌプン盞互運甚性

  • モデル

    • PyTorch
    • TensorFlow
    • scikit-learn
    • XGBoost
    • LightGBM
  • 蚀語やフレヌムワヌク

モデルの他環境ぞの展開

ONNX深局孊習deep learning の該圓節を参照、RevoScaleR で゚ッゞなどぞ展開できる。

補足ONNX の意矩: ONNX (Open Neural Network Exchange) は
孊習枈みモデルの共通フォヌマットである。

PyTorch で孊習 ──▶ [ ONNX ] ──▶ C# アプリで掚論ONNX Runtime
TensorFlow で孊習 ─┘             ゚ッゞ デバむスで掚論
                                 SQL Server の PREDICT で掚論

「孊習は Python、掚論は .NET」ずいう構成が取れるのは、
この仕組みがあるため。
ML.NET も ONNX モデルを読み蟌んで掚論できる。

補足

参考

Qiita

YouTube

Tech Briefing: Azure Machine Learning

microsoft.com

Microsoft Azure

Microsoft Learn

Learn

機胜

GitHub

Machine Learning Best Practices

https://azure.github.io/machine-learning-best-practices

Machine-Learning-Collection

https://github.com/aladdinpersson/Machine-Learning-Collection


Tags: 移行, クラりド, BI/AI, Azure

⚠ **GitHub.com Fallback** ⚠