連載
» 2018年03月27日 14時00分 公開

鈴木淳也の「Windowsフロントライン」:Windows 10で機械学習ライブラリを実行するための「Windows ML」とは何か

クラウドだけでなく、PCやスマートフォンなどを含むエッジデバイスの世界においても、機械学習ライブラリを使った処理高速化の活用が進みつつある。そんな中、Microsoftが発表した学習済みの機械学習ライブラリをWindows上で動作させるための仕組み「Windows ML(Machine Learning)」の情報を整理する。

[鈴木淳也(Junya Suzuki),ITmedia]

 Microsoftを含む多くのITベンダーは、クラウド上での機械学習や、学習済みの機械学習ライブラリを用いた高速大容量処理の仕組みを推進している。

 一方で、PCやスマートフォンなどを含む“エッジ”デバイスの世界においても、機械学習ライブラリを使った処理高速化の活用が進みつつある状況だ。これは、主に小型エッジデバイス向けSoC(System on a Chip)の性能向上を受けたものだが、専用のコプロセッサや処理ブロックを備えたSoCも登場しており、差異化ポイントの1つとして最近のトレンドとなりつつある。

 そんな中、米Microsoftは3月7日(現地時間)に、学習済みの機械学習ライブラリをWindows上でローカルに動作させるためのAPI「Windows ML(Machine Learning)」を発表した。今回はこのWindows MLを巡る最新情報を整理する。

Windows ML Windows MLのデモ動画より。左が元の映像、右が学習済みライブラリを実行した出力結果。動画が即座に絵画調へ変換されている

機械学習ライブラリをエッジデバイスで実行するメリット

 クラウド上ではなく、エッジデバイス上で機械学習ライブラリを動作させるメリットは幾つかある。

 まずクラウドに接続する必要がないため、ネットワーク環境のないオフライン状態でも利用できることが挙げられる。またネットワークを介さないことで、膨大なデータが行き来することによるネットワークへの負荷を低減し、秒程度のラグが発生する可能性のあるクラウドアクセス時におけるレスポンスの問題も回避できる。

 機械学習ライブラリをエッジデバイス上で動作させることは、特に高速な応答を求められる監視カメラや認証カメラなどのセキュリティ用途、また今後爆発的な普及が見込まれる自動運転車で非常に重要となる。場所によってはネットワークが安定しない可能性があることに加えて、秒単位の遅延が致命的となるからだ。

 こうした機械学習によって認識力の強化されたエッジデバイスは「インテリジェントエッジ」のようなキーワードで表現されることが多いが、インテリジェントエッジはインフラや産業向けデバイスだけの話ではない。

 最近ではスマートフォンの機能が大幅に向上したことで、“遊び”の部分でも活用されるケースが増えてきている。一般の目にはむしろ、こちらの方がなじみがあるかもしれない。Facebookの顔認識や、SNOWようなAR型コミュニケーションアプリ、ビューティーモードの付加された中国系スマートフォンのカメラ機能など、画像認識の仕組みだけでも身近に広く浸透している。

 QualcommはSnapdragon SoCの世代ごとにどのようなAI機能が実現可能かをデモストレーションしているが、現在はクラウド頼りの音声認識と構文解析も、待ち時間なしで手元のデバイスだけで完結できるようになるなど、より自然なコンピュータとの対話が行える世界が近づきつつある。

 では、Windows上にこうした仕組みを取り込むことで、どのようなことが実現できるのだろうか。

 Windows 10デバイスは世界中で6億台(2017年末にMicrosoftが発表した台数)が稼働しており、既にさまざまな用途で使われている。

 インテリジェントエッジ化するWindows 10デバイスは、フィルターを使った単純な画像加工をはじめ、カメラを組み合わせたリアルタイム監視、リアルタイム翻訳など、できることは非常に多い。全てはアプリの作り方次第だが、ホビーからプロフェッショナル、そして企業や産業向けまで、幅広い用途で活躍することだろう。

Windows 10次期大型アップデートで利用可能に

 MicrosoftはWindows MLのリリースに合わせて「Windows Machine Learning」と「ONNX Models to be Runnable Natively on 100s of Millions of Windows Devices」という2種類の文書を公開した。

 Windows MLの仕組みを簡単にいえば、「機械学習ライブラリの共通フォーマットであるONNX(Open Neural Network eXchange)を介して、学習済みの機械学習ライブラリをWindows 10で動作するUWP(Universal Windows Platform)アプリに直接組み込める」というものだ。

Windows ML Windows MLの仕組み
Windows ML Windows MLを用いたアプリ開発の手順

 ONNXとはMicrosoft、Amazon Web Services(AWS)、Facebookが主導で開発した、異なるAIフレームワーク間で機械学習ライブラリを交換するための仕組みだ。このオープンソースのプロジェクトはGitHubで公開されており、AMD、Arm、Huawei、IBM、Intel、Qualcommといった主要なプロセッサベンダーが対応を表明し、2017年12月には「ONNX 1.0」が正式リリースされた。

Windows ML Windows MLがサポートするONNX

 Windows MLの使い方はシンプルで、用意するものは「Spring Creators Update(1803)」の名称がうわさされるWindows 10次期大型アップデート「Redstone 4(RS4)」相当ビルドのWindows 10 Insider Preview、「Windows SDK - Build 17110」以降、そしてONNXの学習済み機械学習ライブラリ(Microsoft Azureなどであらかじめ学習させたもの)だ。

 Caffe 2、PyTorch、CNTK(Microsoft Cognitive Toolkit)、ChainerといったONNXが標準でサポートする形式からの出力に加えて、WinMLToolsを使ったCore ML、Scikit-Learn、XGBoost、LibSVMといった既存ライブラリからのコンバートも可能になっている。

 Visual Studio version 15.7 Preview 1以降の環境では、こうしたライブラリをUWPプロジェクトに組み込むことでWindows ML APIを呼び出すラッパークラスを自動生成する仕組みが用意されており、学習済みライブラリの仕組みを比較的容易にUWPアプリから利用することが可能だ。YouTubeにもWindows MLの簡単な紹介動画がある。

 Windows MLの利用により、CPUとGPUの併用によるハードウェアアクセラレーションに加えて、動作の最適化が可能となる。Intelによれば、Windows MLは汎用(はんよう)のGPUだけでなく「Intel Movidius Myriad X VPU」のようなAIプロセッサにも対応しているとのことで、この辺りは対応デバイスの多いWindowsならではのメリットかもしれない。

 またMicrosoft動向に詳しい米ZDNetのメアリー・ジョー・フォリー氏によれば、Win32とWinRTのいずれのAPIからもアクセス可能とのことだ。これは、いわゆるUWPでパッケージ化されたデスクトップ型アプリケーションだけでなく、Windows PC以外のプラットフォームからの利用も可能なことを意味している。

 Windows MLはまだまだ走り始めたばかりだが、この辺りの仕組みは今後も継続的にMicrosoft自身がフォローアップしていくと思われるので、引き続きウォッチしていきたい。

 同社はどちらかといえばAzureクラウドや自社データセンター上で動作する「BrainWave」のような大規模な仕組みに注力している印象があるが、Windowsを搭載したエッジデバイスにおいてもこの最新の仕組みを積極的に導入していくことで、AIの世界でもWindowsの存在感をアピールしていくようだ。

Copyright © ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia PC USER に「いいね!」しよう