
こんにちは、山本です。今回はAzureリレー記事のバトンを貰ったので書いていきます。
(バトンをもらうって昔、個人ブログとかで流行った100の質問みたいですね)
みなさん、機械学習してますか? 私はボチボチしています。
機械学習をしていると、作ったモデルを別のフレームワーク上に持っていきたいなって思うことがありませんか? ありますよね。そう、あるんです。
そこで、今回はAzure Machine Learningで、他のフレームワークで作られたモデルを管理したいと思います。
Azure Machine Learningでモデル管理すると、ML Opsを構築するときに考えることが減りますし、なによりあっちこっちでモデル管理をするってことがなくなるのでおすすめです。
使うサービスは「Azure Machine Learning」と「Custom Vision」です。Custom Visionで作ったモデルをAzure Machine Learningで管理したいと思います。
まずは「Custom Vision」で写真を識別するモデルを作ります。ポータルでCustom Visionの準備をします。

Custom Visionを作ったら、リソースに移動して、Custom Vision ポータルへのリンクをクリックします。

Custom Vision ポータルに移動したら、プロジェクトを新しく作ります。そのときに、Domainsだけは「(compact)」にしてください。(compact)にしてあると作成したモデルをエクスポートできるようになります。

今回は蕎麦の画像から蕎麦屋を判別するものをつくりますので、インターネットから富士そばの画像とゆで太郎の画像を10枚ずつかき集めてきました。インターネットって便利ですね。

トレーニングを行うと、蕎麦の画像から店名を予測するモデルができあがります。本来であれば作成したモデルの精度などを確認して、追加学習させたりするのですが、今回は予測精度に重きを置いていないのでしません。
そして、作成したモデルをエクスポートします。いくつかの形式でエクスポートできますが、今回はONNXという形式にしましょう。

選択するとzipファイルがダウンロードされます。解凍する必要はありません。
ONNXはモデルを様々なフレームワークで利用するための共通規格のようなもので、今回行うAzure Machine Learningはもちろん、TensorFlowやPyTorchにも対応しています。詳しくは知りたい場合は公式のGithubを読みましょう。
https://github.com/onnx/tutorials
つぎにAzure Machine Learningのリソースを作成し、管理画面に移動します。リソースの作成方法は過去の記事参考にしてください。
ONNXのモデルを登録していきます。「モデル」に移動します。

モデルの登録をしていきます。「モデル フレームワーク」でONNXを指定して、「ファイルのアップロード」で先ほどダウンロードしたzipファイルを指定します。

モデルの登録が完了すると、Azure Machine Learningで作成したモデルと同様に扱うことができます。「デプロイ」を押せばAKSやACIにデプロイすることもできます。

今回はここまでです。ぜひ皆さんも各フレームワークで作ったモデルをAzure Machine Learningで管理してみてください。