LoginSignup
2
0

More than 1 year has passed since last update.

Logic Apps で始めるちょい足し MLOps

Last updated at Posted at 2022-12-23

はじめに

Azure で MLOps を実現するためには、DevOps の要素として Azure DevOps や GitHub 、ML の要素として Azure Machine Learning (以下、AzureML) のサービスが必要になります。
image.png

基本的にはこれらのサービス組み合わせれば、Azure で MLOps を実現できますが、たまに処理をちょい足ししたいユースケースが出てきます。
例えば、

  • Blob Storage に再学習データがアップロードされたら、自動で再学習のパイプラインを回したい
  • Azure DevOps でリリース承認後、モデルレジストリにリリース用のモデルが登録されたら、自動でデプロイパイプラインを回したい

といった、〇〇のイベントが発生したら、〇〇のパイプラインを回したいといったケースです。

これらは当然、 Azure Functions に代表されるサーバレスの関数サービスを活用してゴリゴリコード書いて実現することができますが、もっと非エンジニア以外も気軽にちょい足しできるソリューションが求められることが実業務では多々あります。
そういった課題を解決するサービスとして、今回はノーコード/ローコード開発サービスである Azure Logic Apps を使って MLOps にちょい足ししてみたいと思います。

今回は、Blob Storage に再学習データがアップロードされたら、自動で再学習のパイプライン回す処理を Logic Apps でクイックに試してみたいと思います。

Azure Logic Apps とはみたいな話は公式 Docs にお任せします。
https://learn.microsoft.com/ja-jp/azure/logic-apps/logic-apps-overview

手順

Azure Logic Apps 作成

それでは早速、Azure portal のロジック アプリで、+追加をクリックします。
image.png

リソースグループ、ロジックアプリ名を指定し、プランはお試しなので、従量課金の消費を選択し、作成します。
image.png

Azure Logic Apps にマネージドID 割り当て

Azure Logic Apps から Blob Storage にアクセスするため、作成した Azure Logic Apps にマネージド ID の割り当てを行い、Blob Storage に対し Azure Logic Apps のマネージドID からのアクセスできるよう権限を付与していきます。

まずは対象のロジック アプリの ID からシステム割り当て済みの状態をオンにし、保存します。
image.png

Blob Storage の IAM に Azure Logic Apps のマネージドID 割り当て

対象の Blob Storage の IAM でロールの割り当て追加をクリックします。
image.png

ストレージ BLOB データ共同作成者 のロールで ロジックアップのマネージド ID を割り当てます。
image.png

Azure DevOps 個人用アクセストークン (PAT) を作成

Azure DevOps にログインし、新しい Persinal access tokens を Build の Read & execute 権限のみ付与して作成し、生成されたトークンをコピーし、控えておきます。(後で Azure Logic Apps から Azure DevOps のパイプラインキックする時に使います)
image.png

なお、本来ならこちらもマネージド ID で権限指定したかったのですがまだ対応していません。Azure DevOps のロードマップには対応予定と記載があるので座して待ちたいと思います。
https://learn.microsoft.com/ja-jp/azure/devops/release-notes/features-timeline#initiatives

ロジックアプリ新規作成

空のロジック アプリを新規作成します。
image.png

トリガー設定 (Blob Storage へのファイルアップロードをトリガー指定)

Azure Logic Apps は、トリガー→アクションの流れで処理をフロー化していきます。
BLOB が追加または変更されたとき(プロパティのみ)(V2)をトリガーとして選択し、学習データをアップロードするストレージアカウントとコンテナを指定します。
image.png

アクション設定 (Azure DevOps のパイプライン実行)

HTTP のアクションを選択し、Azure DevOps のパイプラインを実行します。
image.png

リクエストの内容は以下の通り。

{  ​
  "resources": {  ​
    "repositories": { "self": { "refName": "refs/heads/{パイプラインを回すのに使うブランチ名}" } }  ​
  },  ​
  "templateParameters": {パイプラインに渡すパラメーター(Json)}}  ​
}​

トリガーを実行

トリガーを実行します。
image.png

Blob Storage にファイルアップロード

トリガーを仕掛けているフォルダにファイルアップロードします。
image.png

Azure DevOps のパイプラインが実行されていることを確認

ロジックアプリの状態が成功になっていることを確認します。
image.png
image.png

Azure DevOps パイプラインの実行も正常終了していること確認します。
image.png

まとめ

HTTPでリクエスト投げるところ以外は、GUI でサクサク簡単に設定できたかなと思います。
Microsoft クラウドでは、Azure の AI サービスで機械学習モデルを開発するだけでなく、Azure Logic Apps で開発を効率化したり、開発した機械学習モデルをビジネスユーザや市民開発者が即時利用可能なサービス群も提供したりしていますので、合わせてご利用頂けると、より AI 活用が推進できると思います。
image.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0