[Microsoft Build 2022 最新情報] Azure Machine Learningの新しい機能、Responsible AI Dashboardを試してみる

こんにちは、もっちゃんと申します。

先日行われた [Microsoft Build 2022](https://news.microsoft.com/build2022/)　は大盛況のうちに幕を閉じましたね。
（私も１つセッションで[登壇・参加](https://twitter.com/R_t_A_n_M/status/1529342692714774528?s=20&t=yJp7W0D_IUZkYptctugeoA)させていただき、とても多くの方にご参加いただきました、感謝の言葉もありません！）

非常に多くのアップデート情報がありましたが、Responsible AI関連についても[注目したいアップデート](https://techcommunity.microsoft.com/t5/ai-machine-learning-blog/responsible-ai-dashboard-and-scorecard-in-azure-machine-learning/ba-p/3391068)がありました、気になる人は気になっているはず！..

実はResponsible AI Dashboardを試せるサンプルコードが提供されていたりするのですが、動かし方がよく分からないという方のために、以前私が動かした時の手順を共有いたします！
ということで、さっそくResponsible AI Dashboardを試してみようじゃありませんか！！



:::note warn
ちなみに無料では試せませんので、そのあたりは自己責任で何卒よろしくお願いいたします！
:::

## Responsible AI Dashboardとは

https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-responsible-ai-scorecard

>Azure Machine Learning エコシステムを使用する最大の利点の 1 つは、Azure Machine Learning実行履歴でのモデルとデータの分析情報のアーカイブ (将来のクイック リファレンス用) にあります。 そのインフラストラクチャの一部として、また機械学習モデルとそれに対応する責任ある AI ダッシュボードに付随する、責任ある AI スコアカードを紹介します。これはカスタマイズ可能なレポートであり、簡単に構成、ダウンロードして、データとモデルの正常性とコンプライアンスについて教育し、信頼を構築するために、技術者および技術以外の利害関係者と共有できます。 このスコアカードは、監査レビューで使用して、モデルの特性について利害関係者に伝えることもできます。

>データ サイエンティストまたは機械学習の専門家として、モデルをトレーニングし、評価と意思決定のために対応する責任ある AI ダッシュボードを生成した後、データとモデルの正常性と倫理的な分析情報を技術以外の利害関係者と共有し、信頼を構築し、デプロイの承認を得ることができます。
モデルの技術的または非技術的な製品所有者として、データ サイエンス チームに最小精度、最大エラー率などの何らかのターゲット値を渡し、識別されたターゲット値とモデルがそれらを満たすかどうかに関してこのスコアカードを生成するように依頼できます。 これは、モデルをデプロイするか、さらに改善すべきかについてのガイダンスとなります。

Responsible AI、責任あるAIという言い方もしたりますが、機械学習のモデルをより信頼できるものとして構築するために今、様々な観点で議論が進んでいるんですね。
Microsoftはこの分野で業界を引っ張っていってます。そのため、Responsible AI関連で様々な機能のリリースや取り組みを実施しており、その１つの機能が`Responsible AI Dashboard`になります。

ちなみに過去にもResponsible AI関連の記事を書いていたりしますので、よろしければ参考までに見ていただければと思います！↓

* [Azure Machine Learning Studioで使って理解を深めるResponsible AI (Part 1)](https://zenn.dev/mochan_tk/articles/e7f97e1aebab3e)
* [Azure ML Studioで使って理解を深めるResponsible AI (Part 2) – Fairlearn<公平性>編 –](https://zenn.dev/mochan_tk/articles/ed7dff165f3875)
* [Azure ML Studioで使って理解を深めるResponsible AI (Part 3) – Error Analysis編](https://zenn.dev/mochan_tk/articles/1d402cf3d6bffc)

## Responsible AI Dashboardの作成手順

Responsible AI Dashboardを試してみるにあたっては、[公式の情報](https://github.com/Azure/RAI-vNext-Preview)にサンプルがアップされていますので、こちらを使用すると最速で試せるかと思います。

ここから先は私が試した時の流れを記載していきます。他にも色々やり方はあると思いますので、１つの参考ぐらいに思っていただければと！

ちなみに私は `Azure Machine Learning studio` 上で実施しました、なのでWEBブラウザだけで作業を完了させることができました。もはや機械学習および開発はWEBブラウザだけで実施できる時代です！（開発も最近はGitHub Codespacesなどブラウザ上で開発をすることを好みます笑）

それでは[こちらのサンプルコード](https://github.com/Azure/RAI-vNext-Preview/blob/main/examples/notebooks/responsibleaidashboard-housing-classification-model-debugging.ipynb)をベースに進めていきましょう！


### 事前準備

１. まずはサンプルで用意されているGitHubのリポジトリーをcloneします

Azure Machine Learning studioにあるTerminalで下記のコマンドを実行してコードを落とします。

```sh
git clone https://github.com/Azure/RAI-vNext-Preview.git 
```

２. 次にEnvironmentの登録を行います

モデルのトレーニングや各種コンポーネントを動かす実行環境を定義します。

使用する環境の設定は[こちらのDockerfile](https://github.com/mochan-tk/Azure-Machine-Learning-RAI-vNext-Preview-20220707/blob/main/src/responsibleai/docker_env/Dockerfile)になります。

<details><summary>Environmentの詳細な登録手順はこちらを展開してください</summary><div>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121860/301578b3-10b2-f1b5-29e2-d53b48afbae2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121860/0c3e78c3-b244-2114-46ae-d2523f47716d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121860/45fc7af5-3fbd-a9b1-79f3-17718e0a4fd1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121860/fefd71e1-83e7-c85b-b6ac-405ba17ae09d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121860/9ac32e26-ac16-0071-d3a5-90a272171ee6.png)

</div></details>

３. [requirements.txt](https://github.com/Azure/RAI-vNext-Preview/blob/main/requirements.txt) を  `RAI-vNext-Preview/src/responsibleai/` の下に移動させておく。

４. [サンプルコード](https://github.com/Azure/RAI-vNext-Preview/blob/main/examples/notebooks/responsibleaidashboard-housing-classification-model-debugging.ipynb)を `RAI-vNext-Preview/src/responsibleai/` の下に移動させておく。

５. 7つのyamlファイルの中身バージョン変更

`RAI-vNext-Preview/src/responsibleai/` の配下にある、下記ファイル内の`VERSION_REPLACEMENT_STRING `と記載されているところを具体的なバージョンの数字に置き換えます。（例えば `12` など）

```text
component_fetch_registered_model.yaml
component_rai_insights.yaml
component_explain.yaml
component_causal.yaml
component_counterfactual.yaml
component_error_analysis.yaml
component_gather_rai_insights.yaml
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121860/e49ffe35-a903-3d00-f0c2-9fe5ffc572a8.png)


### サンプルのNotebookを実行する

あとは `RAI-vNext-Preview/src/responsibleai/` 配下にある `responsibleaidashboard-housing-classification-model-debugging.ipynb` のNotebookを実行していきます。

実行前に下記のgistの内容で上記Notebookの内容を置き換えてください。（公式のサンプルコードを部分的に変更を加えています）

このNotebookでは機械学習モデルの作成〜Responsible AI Dashboardを作成するところまで実施する内容になっています。

https://gist.github.com/mochan-tk/650af81560b9d587fbc01c0254fcf84d

<details><summary>ちなみにタイタニック号のデータで実施したい場合はこちらのNotebookを参考にしてみてください</summary><div>
https://gist.github.com/mochan-tk/d034c798fb00d317e454f46d6c9764ec

</div></details>

:::note info
ちなみにプレビューリリースされて[最速で試した](https://twitter.com/kawamoto_LINER/status/1529138517292761088?s=20&t=vItjMiRtJGzeNp8Qj4No1g)時のコードからちょこちょこ変わっていたので、この記事の内容もすぐに古くなってしまうかもしれません..
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121860/f73cbf96-465f-8b24-74e7-2eccb3387db1.png)

しばらくするとResponsible AI Dashboardが作成されます！

### Responsible AI Dashboardを触ってみる

Responsible AI Dashboardが作られたかなと思いますので、さっそく触ってみましょう。
下記のようにたどるとダッシュボードが表示される画面に行き着くと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121860/e09c4961-0fd5-0e34-dda2-265db61c3ca7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121860/b953fe98-8905-7721-e609-8bfe182e3f52.png)

ダッシュボードの画面を開いてみると、、様々な角度で詳細なインサイトが得られそうな情報が表示されていますね！
この情報を見て、機械学習モデルがいまどういう状態なのかを把握していきます。

![aml-raiv1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121860/43f33248-ef40-d751-99ea-9f93202a3ec5.gif)

## まとめ


今回は、まずは動かしてみる体験していただくところにフォーカスしてみました！
次回はResponsible AI Dashboardに表示されている内容を紐解いていきたいと思います。

## 参考

* https://news.microsoft.com/build-2022-book-of-news/
* https://techcommunity.microsoft.com/t5/ai-machine-learning-blog/responsible-ai-dashboard-and-scorecard-in-azure-machine-learning/ba-p/3391068
* https://docs.microsoft.com/ja-jp/azure/cloud-adoption-framework/strategy/responsible-ai
* https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-responsible-ai-dashboard-sdk-cli?tabs=yaml
* https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-responsible-ai-dashboard-ui
* https://azure.microsoft.com/en-us/updates/public-preview-azure-machine-learning-updates/
* https://github.com/microsoft/responsible-ai-toolbox#introducing-responsible-ai-dashboard
* https://mybuild.microsoft.com/en-US/sessions/234142a2-bfee-42d2-b2f0-bcbe7aee09c0?source=sessions
* https://mybuild.microsoft.com/en-US/sessions/cb3775d8-b5eb-4d02-8975-c376d30fdd17?source=sessions
* https://mybuild.microsoft.com/en-US/sessions/36f45246-5974-48be-b487-fc0ae7177993?source=sessions
* https://twitter.com/kawamoto_LINER/status/1529138517292761088?s=20&t=vItjMiRtJGzeNp8Qj4No1g