われわれの生活やあらゆる仕事において、AIを活用したシステムの存在はもはや欠かせないものとなった。しかし、こうしたAI領域の開発は決して容易なものではない。そこで、AI ソリューションの開発における効率化やスケーラビリティを実現し、AI開発をより促進しうるのが、インテルが開発・提供する、「インテル® OpenVINO™ツールキット」だ。

本記事では、OpenVINO™ ツールキットによるAIソリューションの開発を、さらに効果的かつ効率的なものへと飛躍させる、OpenVINO™ ツールキットの関連ツールと活用法について紹介する。

多様なアーキテクチャをサポートする「インテル®OpenVINO™ ツールキット」

6月6日に開催された「インテル AI Summit Japan」は、インテルとAIハードウェア、ソフトウェア開発者との連携を強化し、AI領域におけるエコシステムを擁立することを目的としたイベントだ。そのなかで、インテル テクニカルセールス ソリューション サービスグループ エッジソフトウェアソリューションスペシャリストの志村泰規氏より、エッジAIソリューション:OpenVINO™ ツールキットの活用の幅を広げる関連ツールと活用法」というテーマで、OpenVINO™ ツールキットの関連ツールが紹介された。

【OpenVINO™ ツールキットの最新動向については、こちらから】

「インテル® OpenVINO™ツールキット」の魅力とは

OpenVINO™ ツールキットは、インテルが開発・提供する、高速・高効率・最適化されたディープラーニングの推論ソフトウェアライブラリだ。

あくまで推論を高速化するためのライブラリーであり、学習のための機能は提供されていないが、逆に言えば、「PyTorch」や「TensorFlow」「PaddlePaddle」といった好みのフレームワークを利用できるということでもある。出来上がったAIモデルをOpenVINO™ ツールキットに持ってくれば、インテルのハードウェア上でAIの推論が高速に実行される。

そして、インテルの提供するCPUでもGPUでも、インテル® Core™ Ultraプロセッサーに内蔵されたNPUでも、さらにarmやFPGAでも、同じように推論をさせることが可能だ。一度書いたプログラムが、サーバー、クラウド、Windows、Linux、macOSといったクライアントなど、どんな所でも動くようになる。

  • 資料

ディープラーニング・フレームワークへの統合

OpenVINO™ ツールキットは通常、ユーザーが作るプログラムから呼び出して使用するが、その他にも関連ツールでさまざまな拡張を行っている。

ひとつ目は、フレームワークへの統合だ。例えば「PyTorch」を使っている人が新たにOpenVINO™ ツールキットのAPIを使うには別途学習コストがかかるが、推論プログラムはPyTorch APIのままでも、OpenVINO™ ツールキットのパフォーマンスを享受することが可能となる。また、「ONNX Runtime OpenVINO™ エグゼキューション・プロバイダー」の提供も行っている。これも同じようにONNX Runtimeを使って推論をしている人に有効だ。

もちろん、極限までチューニングしたいのであればOpenVINO™ ネイティブのほうがパフォーマンスは上がる。しかし最低限のプログラムの変更で手軽にOpenVINO™ ツールキットのパフォーマンスを活用したいときには非常に便利だろう。

パフォーマンス・チューニングのためのツール

ふたつ目は、パフォーマンス・チューニングのツールだ。OpenVINO™ ツールキットに付属する「Benchmark_app」は、基本的にどんなAIモデルでも実行できるOpenVINO™ ツールキットのパフォーマンス測定ツールだ。ベンチマークによってそのプラットフォームで達成し得るほぼ最大限のパフォーマンスを知ることもできる。

加えて、現在実行しているプラットフォームとハードウェアに合わせて自動的に実行パラメータを調整する機能も備えている。もちろんその結果が常に最適とは限らないが、アプリケーションを作る際のひとつの目安となるだろう。

それから、モデル最適化ツール「Neural Network Compression Framework」だ。モデルを最適化することでコンパクトにし、計算量を減らすことでAIの性能を上げることができる。これはOpenVINO™ ツールキットとは別パッケージだが、ファミリーツール的な位置づけで提供されている。

その特徴は、学習時最適化(QAT:Quantize Aware Training)、学習後最適化(PTQ:Post Training Quantization)の両方に対応すること。量子化以外にもプルーニング、スパース化、重み圧縮などさまざまな最適化をサポートしている。

インテル® oneAPI ベース・ツールキットに同梱される「インテル VTune プロファイラー」という、ユーザーコードのパフォーマンスを分析するツールもある。インテルのCPU、GPU、FPGAなどをサポートしており、ソフトウェアベースのプロファイリングツールでは取れないような詳細な情報を取得できるので、AIプログラムのパフォーマンス向上に役立てられるだろう。

また、同じくインテル® oneAPI ベース・ツールキットに同梱される「インテル Advisor」も、プログラムの並列性を上げる手助けをしてくれ、パフォーマンスを測るのに有効なツールだ。インテルのプラットフォームにどのくらい余力があるか、プラットフォームに対してアプリケーションはどの位置にいるか、どれだけ性能向上の余地があるかを視覚化できる。

インテルハードウェア以外のクライアントデバイスもサポートできる推論サービスサーバー

OpenVINO™ ツールキットを使った推論サービスを提供するサーバー「OpenVINO™ モデル・サーバー(OVMS)」も提供されている。

これはネットワーク経由で推論のリクエストを受け付け、推論を実行し、その結果を返してくれるというもの。インテルプロセッサーを搭載していないデバイスでもクライアントになることができる。

例えば、オンプレミスのOVMSを1台設置し、ARM系のプロセッサーを使ったIoTデバイス複数台から推論リクエストを受け付け、サービス提供するといったことも可能。そして単純に推論するだけではなく、推論パイプラインもサポートしており、複数の推論処理をサーバー側でまとめて実行することもできる。Docker イメージが提供されており、Pullすれば数分でセットアップが完了。またクライアント・ライブラリーも提供されている。

このOVMSには、「OpenVINO™ セキュリティ・アドオン(OVSA)」も用意されている。これはOVMSの裏で動いているためユーザーが意識することなく活用できるもので、OpenVINO™ ツールキットのAIモデルファイルを暗号化し、悪用から守るツールだ。OVSAはライセンスサーバーとの通信を行い、モデルのライセンス管理をすることもできる。

モデル学習を支援する関連ツールも用意

OpenVINO™ ツールキットはあくまで推論を高速化するためのライブラリーだが、インテルとして学習の機能を一切提供していないわけではなく、関連ツールとしていくつかの機能が提供されている。

そのひとつが、AIモデルを学習、最適化するためのツール、スクリプトのキット「OpenVINO™ トレーニング・エクステンション(OTE)」。画像分類、物体検出、セマンティック・セグメンテーションなどのモデルの学習ができるツールで、これを使うことでハイパーパラメーターの最適化や分散学習といったちょっと便利な学習が行える。ただしコマンドラインツールベースであるため、使用には慣れも必要だ。

もうひとつは、データセットを構築、変換、分析するためのツール「Dataset Management Framework (Datsumaro)」。手持ちのデータセットを別フォーマットに変換したり、一部を抽出したり、あるいは統合したりするときに使えるツールとなっている。

また有償とはなるが「インテル Geti ™プラットフォーム」という、便利な学習ツールが用意されている。その特徴はWebUIベースという点にあり、AIに関する知識がなくともAIモデルの作成が可能。出来上がったモデルはOpenVINO™ ツールキット形式のモデルとして出力される。難しい、あるいは面倒なハイパーパラメーターの設定などをせずとも少ない枚数の画像で簡単にモデルを作ることができるため、現場でのAI活用にうってつけだろう。

  • 実際の画面

さらに、産業用途に向けた異常検出ライブラリーも提供されている。「Anomalib」は、OpenVINO™ツールキットを使用したアノマリ検知のためのライブラリーで、再学習などを行うためのスクリプトも付属する。

生成系AI関連ツールと実験的実装モジュール

生成AI関連のツールとしては、GitHubに生成系AI関連のパイプラインやツール、サンプルを提供するレポジトリー「openvino.genai」がある。C++を使ったパイプラインコードのサンプルや、LLMモデルのパフォーマンスを計測するベンチマークツールなどが提供されている。

また、レポジトリー「contrib」には実験的実装モジュールも公開されており、多くの方が期待しているであろう「nvidia_plugin」「java_api」「rust_api」などが並んでいる。リリース前の段階なので、安定しない、機能が足りないといった部分もあるが、興味のある方はぜひ目を通してみてほしい。

さまざまな周辺ツールが用意されたOpenVINO™ ツールキット

無償かつオープンソースで提供されているOpenVINO™ ツールキットは、特殊なハードウェアを追加することなく、インテルのプロセッサーを搭載したPC上でエッジAIワークロードを実行することができる。

これを支えてくれるのがOpenVINO™ ツールキットの関連ツールである。このようにインテルはAI PCの普及に向けて多くの機能、拡張、互換性向上、利便性向上のためのツールを数多く用意している。こういったOpenVINO™ ツールキットのエコシステムを使うことで、効率的・効果的なエッジAIシステムの開発が行えるだろう。

関連リンク

[PR]提供:インテル