AIをサポートする「Windows ML」APIと新しい「WebView」の登場で見えてくるもの特集:マイクロソフトテクノロジーの現在と未来(1/2 ページ)

機械学習モデルをアプリで活用するためのWindows ML、Edgeベースの新たなWebViewコントロールなど、次期Windows 10に搭載予定の新機能を見てみよう。

» 2018年03月13日 05時00分 公開
[かわさきしんじInsider.NET編集部]
「特集:マイクロソフトテクノロジーの現在と未来」のインデックス

「特集:マイクロソフトテクノロジーの現在と未来」

 2018年3月7日に「Windows Developer Day 2018 March」が開催された。このイベントでは、Edgeをベースとした新しいWebView、Windows 10を機械学習の実行プラットフォームとする「Windows ML」と呼ばれる新たなAPIなど、さまざまな発表があった。本稿ではそのキーノートスピーチから幾つかのトピックを見ていこう。

3つのポイント

 キーノートスピーチでは「Windows 10の新バージョンには数千もの新機能が搭載される」としながら、その中でも開発者に向けて次の3点が強調された。

  • デスクトップアプリのモダナイズ
  • WindowsへのAIの導入
  • Windows IoTによるインテリジェントエッジの拡張
3つのポイント 3つのポイント
なお、画像は基本的に「Windows Developer Day 2018 March」のキーノートスピーチのストリーミング映像から。

 デスクトップアプリのモダナイズ(モダン化)はこれまでもマイクロソフトが度々口にしていることだが、これをさらに推し進めるべく、次の3つが発表された。

  • Microsoft Edgeの描画エンジンを利用する新しいWebViewコントロール
  • MSIXと呼ばれる新たなアプリの「インストーラー/アップデーター」
  • さまざまなプラットフォームを通じて、カード形式でデータをやりとりできるAdaptive Card

 何より筆者を含めて、多くの人が驚いたのはWindowsへのAIの導入だろう。もちろん、これまでもWindowsにはAI機能(Cortanaなど)が搭載されていた。が、Windowsの次期アップデートでは、訓練済みの機械学習モデルをWindows上で動作する自分のアプリで使用できるようになる。そのために提供されるAPIが「Windows ML」だ。

Windows MLのデモ Windows MLのデモ
左側の画像が訓練済みモデルへの入力、右側の画像がその出力結果。

 最後の「Windows IoTによるインテリジェントエッジの拡張」とは、インテリジェントエッジ*1を駆動するOSとしてWindows IoTを搭載することで、エッジデバイスの開発や運用において、セキュリティやコンポーネントの更新などはWindows任せにして、開発者はあくまでもエッジデバイスを使って「どんな有用なことを実現するか」に注力できるようにしようという考えだ。Windows IoTを使うことで、Visual Studioという手慣れたツールを使って開発を行えるというのもそのメリットの1つだ。

 デモではXogo Miniという小サイズのデジタルサイネージとWindows IoTを使用して、自転車販売店のデジタルサイネージを客層に合わせてリアルタイムに変化させていた。

Xogo miniを使用したデモ Xogo miniを使用したデモ
子供のお客さんに合わせて、デジタルサイネージの内容を「初心者向け」のものに変化させている。

*1 センサーなどのエッジデバイスは瞬間的に大量のデータを生成する。生成されたデータを基にリアルタイムに何らかの対処を行う必要があるデバイスでは、クラウドにデータを送信するのではなく、ローカルにAI的な処理を行う必要がある。そこで、エッジデバイスにAI機能を持たせようというのがインテリジェントエッジの考え方。


 概要はここまでにして、以下では多くの方が注目しているであろう「WindowsへのAIの導入」と「デスクトップアプリのモダナイズ」についてもう少し深く見てみよう。

WindowsへのAIの導入

 WindowsへのAIの導入とは、機械学習によって得られたトレーニング済みのモデルをWindows 10上で実行できるようにしようというものだ。そのためのランタイムやアプリから使用するAPIを整備したものがWindows MLとなる。

Windows MLのアーキテクチャ Windows MLのアーキテクチャ

 ローカルのWindows上でAIを使用することのメリットは幾つかある。

  • ネットワークを介さないので、結果を即座に得られる
  • CPU、GPU、VPU(Vision Processing Unit。AIで画像処理を行うことに特化したマイクロプロセッサ)など、Windowsデバイスが持つリソースを直接使用できる

 以下はキーノートで紹介されたデモだ。これはカメラに映った映像をリアルタイムに変換するもの。

カメラに映った画像をリアルタイムに変換するデモ カメラに映った画像をリアルタイムに変換するデモ

 このような場合、クラウドにいったんデータを送ることを考えると、とてもリアルタイムでの変換処理は実現できないだろう。カメラに映ったものをそのままGPUへと流し込むことで、ネットワーク帯域を使用することなく、高速に処理を行えるようになる。これはWindowsでローカルに機械学習モデルを利用できるようにすることの大きなメリットとなる。

 ただし、現状ではトレーニングを行ってモデルを作成するのはあくまでもクラウド側で行うことになるだろう。Windows側ではあくまでもその結果として得られたモデルを活用して、なるべく高速に、そして豊富なハードウェア資源があればそれを活用して、モデルと入力から迅速に推論した結果を得ようというのが目的だ。

 実際にWindows上でモデルを利用してアプリを作成しようという場合には、次のような流れになる。

Windows MLを使用したアプリ開発の流れ Windows MLを使用したアプリ開発の流れ

 まずはAzureなどでトレーニングを行い、モデルを作成する。それをVisual Studioでアプリプロジェクトに追加する。アプリでは、モデルとそれに対する入力と出力を「バインド」し、さらに入力と出力をアプリのUI要素と結び付ける。アプリの実行時にはWindows MLによって、モデルが読み込まれ、それにユーザーが入力を与えるとモデルによって評価が行われ、出力が得られる。

 なお、Windows MLでは利用可能なハードウェア資源があれば、それを活用するようになっている。CPUしか使えないのであればCPUだけを、GPUやVPUを使用できるのであれば、それらを自動的に使ってくれる。開発者はモデルを得て、それに対する入力と、そこから得られる出力がどう扱うかを記述していくことに注力できるようになっているということだ。

 利用するモデルはONNX*2形式のデータであれば、Azureで作成しようが、他のプラットフォームで作成しようが構わない。以下はVisual StudioでONNX形式のデータを取り込んでいるところだ。

*2 Open Neural Network Exchange。AIのモデルを記述するオープンソースのフォーマット。


ONNX形式のモデルをVisual Studioでプロジェクトに追加しているところ ONNX形式のモデルをVisual Studioでプロジェクトに追加しているところ
分かりにくいかもしれないが、既存の項目を追加するダイアログで選択されているファイルの名前が「mnist.onnx」となっている点に注目。

 モデルをプロジェクトに追加すると、モデルの内容を反映したクラスが自動的に作成される。モデルそのものを表すクラスと、そのモデルに対する入力と出力を抽象化したクラスがそうだ。これらは「バインド」と呼ばれる機構を用いて関連付けられる。

 追加したモデルをアプリに読み込んで、それに対する入力と出力をアプリのUI上の適切な要素とつなぎ合わせることも必要だ。デモではそのためのコードも示された。

Visual Studioで手書き文字認識(数字)を行うアプリのコードを編集しているところ Visual Studioで手書き文字認識(数字)を行うアプリのコードを編集しているところ

 デモをご覧になると分かるが、これらのコードは非常にシンプルなものだ。

 マイクロソフトはこれまでにもCognitive ServicesとしてAI機能を開発者に提供してきた。これらは機能がある程度定まったものを(例えば、画像認識、音声認識など)、アプリから使いやすくしようというものだが、今回のWindows MLの発表はより包括的な形でAI機能を(トレーニングはクラウド上でするものとしても)Windows自体、そしてWindows上で動作するアプリに組み込もうという意欲的なアプローチだ。モデルの作成そのものはWindowsアプリ開発者には荷が重いことだが、既にあるモデルを使って(あるいは、機械学習エンジニアと協働して)何か有用な機能をアプリに組み込んでみようという開発者にとっては大いに興味を引かれる発表だ。

       1|2 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。