マイクロソフト研究所

クライアントの“AI化”を進めるWindows 10

Microsoftの開発者イベント「Windows Developer Day」の発表を振り返る

 3月7日にMicrosoftが行った開発者向けのイベント「Windows Developer Day」では、次のWindows 10(Version 1803)の新機能よりも、内部の進化にフォーカスをあてて紹介されている。

 本稿では、その内容をお届けしよう。

Windows Developer Dayは、Webで生中継が行われた。Windows Developer PlatformのCorporate VP、Kevin Gallo氏が各種の発表を行った

Windows 10のアップデートサイクル

 まずは、Windows 10のアップデートサイクルをおさらいしてみよう。

 Windows 10はWindows as a Service(WaaS)というコンセプトのもと、春と秋の年2回アップデートを行っている。

 次のメジャーリリースについては、RS4(RedStone4)のコード名で開発が進んでおり、3月中には開発を終了し、最新機能をいち早く試したいユーザー向けのSACT(Semi-Annual Channel Target:半期チャネル指定、以前のCurrent Branch)が、4月中に提供される。
 またSACTの3カ月後に、SAC(Semi-Annual Channel:半期チャネル、以前のCurrent Branch for Business)として企業に提供される。

 そのRedStone4(Windows 10 Version 1803、名称はSpring Creators Updateになるのではと予想されている)には、2017年のMicrosoftの開発者向けカンファレンス「Build 2017」で紹介されたTimeline(タイムライン)機能が搭載される予定だ。

 これ以外にも、ブラウザのMicrosoft Edgeをコンテナ化して、Windowsシステムとは完全に隔離されたサンドボックスでEdgeを動かし、不正なWebサイトなどからの攻撃をシャットダウンする「Windows Defender Application Guard(WDAG)」が、Windows 10 Proに搭載される。

 WDAGは、2017年10月に提供されたWindows 10 Fall Creators Update(Version 1709)で、Windows 10 Enterpriseに搭載された。ただし、英語環境がベースとなっていたため、日本語環境で動かすには英語環境をインストールするなど、いくつかの問題点があった。

 次のVersion 1803では、Windows 10 ProにもWDAGの機能が搭載されるとともに、日本語環境でも動作するようになるため、幅広いユーザーがWDAGを利用可能になる。

 なお余談だが、UWPアプリしか動作しない主に学校向けのWindows 10 Sは、Version 1803から各エディション(Home、Pro、Enterprise)のモードとして提供されることが、Windows Developer Dayと同じタイミングで発表された。

 つまり、Windows 10 Sというエディションはなくなり、Home、Pro、Enterpriseでは、UWPアプリしか動作しないSモードが用意される。昨年のIT管理者向けイベントMicrosoft Igniteでは、Windows 10 EnterpriseにSモードを用意すると発表されているが、Microsoftでは、すべてのエディションでSモードを提供することにしたようだ(ARM版Windows 10に関しては、最初の出荷PCではWindows 10 Sがインストールされているようだ。Windows 10 Proなどへアップグレードできるのか、といったことは現状ではわからない)。

Windows 10 SはFirstline Worker向けのOS
Ignite 2017では、Windows 10 EnterpriseにSモードが用意されると発表していたが、3月7日のWindows Blogで、Joe Belfiore氏(Corporate VP)がHome、ProでもSモードを用意すると発表。これによりWindows 10 Sはエディションではなくなり、各エディションの1動作モードになった

3つの分野での発表があったWindows Developer Day

 さて、ここからはWindows Developer Dayの発表を見ていく。

 今回のWindows Developer Dayでは、

・「Modern applications for a modern workplace」
・「Artificial Intelligence for Modern Experiences」
・「Windows IoT in the Intelligent Cloud and Intelligent Edge」

の3つのポイントに絞って発表があった。

Developer Dayは、3つのポイントが紹介された

 1つ目の「Modern applications for a modern workplace」では、WebViewとMSIX、Adaptive Cardsに関しての発表があった。

 WebViewは、さまざまなアプリ内部にWebブラウザの機能を埋め込んで、Webページを表示したりナビゲーションしたりすることができる機能だ。

 ただし、Windows 10のWebView機能は、IE11のレンダリングエンジンTridentをベースにしていたため、最新のWebテクノロジーへの対応ができなかった。そこでVersion 1803では、WebViewで使用するレンダリングエンジンを、Edgeが使用しているEdgeHTMLに変更した。

 これにより、GridやFlexbox、リアルタイムコミュニケーションのWebRTCといった最新のWebテクノロジーが、Win32/WPF、Windows Formsなどのデスクトップアプリケーションで利用できるようになった。

EdgeHTMLをレンダリングエンジンとしたWebViewを発表
IE11のTridentエンジンに比べると、EdgeHTMLエンジンは数多くのWeb標準テクノロジーにマッチしている

 MSIXは、アプリケーションのインストールパッケージの新しいフォーマットだ。現在、Win32などのデスクトップアプリケーションはMSI形式を使用し、UWP(Universal Windows Platform)ではAPPX形式が使用されている。

 MSIXは、既存のWin32/WPF/Windows Formsアプリケーションなどを、APPX形式のメリット(コンテナ化)を生かすようにパッケージ化するものだ。

 このイベントでは明確にはされなかったが、MSIXを作成した理由としては、Win32/WPF/Windows Formsアプリケーションに、UWPアプリのメリットを追加しようとしているようだ。

 将来的には、MSIX形式のアプリケーションを直接Microsoft Storeから配信できるようにしようと考えているのだろう。

 現在、Win32アプリケーションをStoreから配信できるようにするには、UWPでカプセル化するDesktop App Converterを使用して、APPX形式に変換する必要がある。新しいMSIX形式でパッケージ化することで、MSI形式の手軽さを生かしつつ、Storeから配信できるようにしたいのだろう。

 MSIXに関しては、GitHubにオープンソースとして掲載されており、開発が進められている。なおパック/アンパックは、LinuxやAndroid、macOSなどのマルチプラットフォームとなっている。将来的には、マルチプラットフォームにおける統一されたインストールパッケージ方式にするつもりかもしれない。

MSIXは、APPXとMSIを融合した新しいインストールパッケージだ。
既存のWin32などのアプリケーションをAPPX(UWPアプリ)のメリットといえるサンドボックスなどをサポート

 Adaptive Cardsは、Skype、Bot Framework、Cortanaなどで表示されるカード型の情報ウィンドウ(カード)を、簡単に作成できるようにするフレームワークだ。

 Adaptive Cardでは、JSONを使って非常に簡単にCardsを作成できる。また開発ツールを利用すれば、設定した情報をBot Framework WebChat/Other Channels、Cortana Skills、Windows Timeline、Skype、Outlook Actionable Message、Microsoft Teams、Windows Notificationsなどに簡単に変換できる。

 Adaptive Cardsは、オープンフレームワークとして開発されているため、1つのソースが、UWP(Windows)、iOS、Android、HTMLなどに変換されて表示することができる。

Adaptive Cardsは、さまざまなアプリで使われているカード表示をJSONで簡単に構成できる
オープンフレームワークで開発されている
インタラクティブにカードを構成する
UWPだけでなく、iOS、Android、HTMLなどのマルチプラットフォーム化されている
Adaptive CardsのデモWebサイトでは、同じコードで出力するカードを変更するだけで、各種のカードを構成できる

AIを取り込むWindows 10

 Windows Developer Dayで最も重要な発表と思われたのが、「Artificial Intelligence for Modern Experiences」として発表されたWindows ML(Machine Learning)フレームワークだ。

 Windows MLは、GoogleのTensorFlowやMicrosoftのCNTKといったニューラルネットワークの機械学習フレームワークを動かし、大量のデータを使って機械学習を行うのではなく、クラウドなどであらかじめ学習された機械学習モデルをWindows 10にダウンロードし、特定のAI機能を自分のアプリに組み込んで実行できるようにするものだ。

WindowsにAI機能を追加するWindows AI Platform。AzureのCognitiveサービスと連携している。
現在の機械学習は、学習フェーズとアプリケーションが切り離されている。
Windows MLでは、クラウドなどで機械学習したモデルをクライアントへダウンロードし、アプリケーションに組み込んで利用することができる

 機械学習などで学習モデルを作成するためには、大量のデータを高速に処理するためにパフォーマンスの高いCPUや大量のメモリが必要になるが、できた学習モデル自体はコンパクトだった。しかし、その学習モデルをコンパクトに動かせるフレームワークがWindowsにはなく、クライアント側で生かすことができなかった。

 今回発表されたWindows MLにより、こうした状況は改善され、アプリケーション側でAI機能を簡単に利用できるようになるだろう。さらに、クラウドに接続したオンライン環境ではなく、オフライン環境でも機械学習が利用できる。

 イベントのデモでは、電子基板にLSIをハンダ付けした後で、その作業がきちんとされているかをチェックするカメラシステムに応用していた。また別のデモでは、写真を特定のタッチの絵に変換するフィルタに機械学習が利用され、クラウドで作成された学習モデルをクライアントPCで高速に処理させていた。

Developer Dayでデモされた写真を絵に変換するアプリケーション。あらかじめクラウドで学習モデルを作成し、その学習モデルをクライアントPCにダウンロードして動作させている
あらかじめ学習したモデルを使っているため、ノートパソコンのカメラからの映像をリアルタイムに絵に変換できる

 Windows MLは、学習モデルとしてはONNX(Open Neural Network Exchange)を利用しているため、Facebookが開発したCaffe2、PyTorch、Microsoftが開発したCNTK(Cognitive Toolkit)、AWSのApache MXNet、Preferred NetworkのChainerなどがサポートされている。

 Googleが開発したTensoflowとAppleが開発したCoreML(iOS11に搭載)に関しては、ONNXを正式にサポートはしていないが、ONNXプロジェクトが提供したコンバーターツールがGitHubに公開されている。

ONNXのWebページ。GoogleやAppleは参加していないが、FacebookやMicrosoft、AWS、Preferred NetworkなどAI用のフレームワークを提供している企業がONNXに参加している

 なおWindows MLは、IntelのAVX512命令に最適化されている。また、AMDやNVIDIAのGPUをDirectX12経由(DirectML)で機械学習処理に利用することもできる。これにより、CPUに負荷を掛けずにAI機能が利用できるわけだ。

 将来的には、Intelが提供してるMovidius VPUなどのAIチップをサポートすることで、クライアントにおいてAI処理の負荷を小さくして、リアルタイムに利用できる環境を構築していく予定だ。

Windows MLアーキテクチャ。DX12にDirectMLというAPIが追加され、GPUやAI専用チップのハードウェアアクセラレータが利用できる
IntelのVPU(Movidius Myriad X VPUと見られる)を使って画像認識を高速に行う。今後は、GPUだけでなく、VPUがPCに取り入れられるようになるかもしれない

 またMicrosoftでは、Azure上に構築されている画像認識機能のCognitive Service Vision、検索機能のSearchに関して、ユーザー独自の画像や検索を使用して追加学習できるサービスのプレビューを開始している。

 このサービスでは、TensorFlowやCoreMLなどに学習モデルが出力できるため、AndroidやiOSにて、Azure上でトレーニングした機械学習モデルが利用できるようになる。将来的には、このようなサービスを利用して大量のデータをクラウド上で機械学習させ、その結果としての学習モデルをクライアントにダウンロードして使うようになるだろう。

AzureのAI機能Cognitive ServiceのCustom VisionのWebページ。ユーザーが独自の画像を用意することで、カスタム化した画像認識を構築できる

 クライアントOSにAI機能を実行するフレームワークが搭載されたことは、今後のコンピューティングにとって大きなターニングポイントになるかもしれない。現在は機械学習を行うために、大規模なコンピューティング環境と大量なデータが必要になる。しかし、学習済みのモデルをダウンロードして動かすだけなら、クライアント(Edgeコンピューティング)でも十分なパフォーマンスを持って動かすことができるだろう。

 今後は、画像認識や画像変換などだけでなく、さまざまな用途が考えられるだろう。今後は、どのようにAIをアプリで利用していくのかを考える時代になるかもしれない。

Windows IoTのメリットを訴求

 最後の「Windows IoT in the Intelligent Cloud and Intelligent Edge」では、Windows IoTのメリットを訴えかけた。

 AzureなどのIntelligent Cloudと組み合わせるには、Edgeに関してもインテリジェント化が必要になる。Windows IoTは、Windows 10の各機能がそのまま利用できるため、Intelligent Edgeの構築が非常に簡単になるとしている。

 あまり普及しているとはいえないWindows IoTをなんとか普及させていこうとして、開発者に訴えかけたというところだろうか。

 ただ、Windows MLがWindows IoTに入ってきて、ARMプロセッサなどのGPUで採用されたAI機能などを利用できるようになれば、組み込み機器でAI機能を積極的に利用できるようになるだろう。そうなれば、組み込み機器も高度なインテリジェントを持つものになっていく。

Windows IoTは、Windows 10と同じセキュリティを持っている。開発ツールもWindows 10用のモノがそのまま利用できる