生成AIが世の中に登場し、社会へ急速に普及していった一連の流れは記憶に新しいだろう。AI元年と呼ばれる現代において、さまざまなIT企業が多様なAI戦略を打ち出しており、いまや多くのアプリケーションで当たり前のようにAIが利用されている。
その中でも、世界最大手の半導体メーカーであるインテルが進めるAI戦略は「AI Everywhere」というキーワードを基に、“すべてのAIプラットフォームに特殊なハードウェアの追加無しでAIを実行できる環境の実現”、つまり「どこでもAIが走る環境」を目指している。
本稿では、そのようなAI戦略を進めるインテルが提供する、インテル製のハードウェア性能を高効率で最大限に引き出すことを可能にした、インテル® OpenVINO™ ツールキットについて、最新動向を紹介したい。
多様なアーキテクチャーをサポートする「インテル® OpenVINO™ ツールキット」
2024年6月6日、インテルはAIハードウェア、ソフトウェア開発者との連携を強化し、AI領域におけるエコシステムを擁立することを目的とした「インテル AI Summit Japan」を開催。
同イベントの中で、インテル テクニカルセールス ソリューション サービスグループエッジソフトウェアソリューション スペシャリストの志村泰規氏は、「エッジ推論ソリューション:OpenVINO™ツールキットの最新動向とエッジLLMソリューション」と題した講演を行い、ここ1~2年におけるOpenVINO™の進化ポイントと、その活用方法をまとめてくれた。
現在、インテルが進めているAI戦略において、インテルが提供していることは大きく分けて下記の3つの通りだ。
- パフォーマンス:
幅広いアプリケーションで使われるAIプラットフォームのAIパフォーマンスを向上 - スケーラビリティー:
さまざまなAI ワークロードに対応する多様なプロセッサーを提供
(architecture/performance) - ソフトウェア:
ハードウェアの性能を最大限引き出す高効率で最適なソフトウェアを提供
インテルのAIシリコン・ポートフォリオを見ると、CPUとして「Intel Atom® プロセッサー・ファミリー」「インテル® Core™ プロセッサー・ファミリー」「インテル® Core™ Ultra プロセッサー」「インテル® Xeon® プロセッサー」など、GPUとして「インテル® ARC™ グラフィックス」「インテル® Iris® Xe グラフィックス」。さらにNPUとしてインテル® Core™ Ultraプロセッサーに搭載された「NPU」と、求められる処理能力に応じたラインナップが網羅されている。
つまり、いまやエッジ側においても、十分にAIが実行できる環境が整っているということだ。これらのハードウェアを統一された言語・ツールでサポートするためにインテルが無償提供するソフトウェアが「OpenVINO™ ツールキット」となる。
エッジ領域におけるAIとインテル
インテルはエッジAIに向けてどのような取り組みを行っているのだろうか。そのひとつはアーキテクチャーの改善だ。
インテルはAIを加速するための命令とアクセラレーターの追加を進めている。具体的にはCPUにおける「VNNI」や、GPUにおける「dp4a」などの命令、CPUに搭載されたアクセラレーター「AMX-TMUL」、GPUに搭載されたマトリクスエンジン「XMX」、NPUコアに内蔵されたアクセラレーター「NCE」の増大などがそれにあたる。またあまり知られていないが、FPGA向けにディープラーニング向けのアクセラレーションソフトIPコアも提供している。
インテルはこういったプロセッサー等を総称して「xPU」と呼んでおり、これらを統一的にカバーするソフトウェアとしてOpenVINO™ ツールキットを提供し、ハードウェアの違いをあまり意識することなくAIを活用、再利用することを目指しているわけだ。
「OpenVINO™」によってさまざまなデバイスを同じように扱えるため、ハードウェアの調達が容易になり、特定のハードウェアが利用できなくなってもすぐに代替を調達できる。また、最初はCPUと内蔵GPUで構築し、後からAIのワークロードが増えてもっとロードパフォーマンスが欲しいといった場合には、GPUカードを追加することでパフォーマンスを上げることも可能だ。
わずか数行でAI推論を実行可能にするOpenVINO™ ツールキット
OpenVINO™は、インテルがラインナップしている幅広いアーキテクチャーをサポートし、ディープラーニングの推論を高速に扱えるソフトウェアライブラリだ。OpenVINO™ ツールキットは、AIアプリケーション開発者向けのツールであって、単体で動作するAIアプリケーションやソリューションではない。
モデルの学習に関する機能は基本的に提供されていないが、これは逆に言えば学習のソリューションに縛りがないということでもある。つまり「PyTorch」「TensorFlow」「PaddilePaddile」「ONNX」など、さまざまなソリューションをそのまま活用できるということであり、デプロイ先としてはWindows、Linux、MacOSがサポートされている。
その最大の特徴は“汎用”のディープラーニング推論エンジン・ライブラリーであることだ。“VINO”は「Vision Inference Neural network Optimization」を略したものなので、Vision AI=画像認識しか実行できないと思われがちだが、画像のみならず音声、言語、生成、時系列までさまざまなデータを取り扱うことが可能となっている。
これに関しては、さまざまなサンプルやチュートリアル、デモが「OpenVINO™ ノートブック」というWebサイトで提供されている。
OpenVINO™ ノートブックとは
- 80を超える、試せるサンプル、デモ、チュートリアルが満載
- Jupyter Notebook形式で提供。コード+ドキュメント
- インストール不要、オンラインで試せるものもある!
→OpenVINO™ ツールキットのAPIサンプル
→学習から変換、モデル最適化
→高度なデモ、最先端モデルを使った楽しいデモ
(LLM Chatbot、Stable Diffusion、Yolo …)
ではOpenVINO™ ツールキットはなにを実現するのか。それは、開発したAIモデルをデプロイ・製品化するときに、一般的なPCや産業用PCでAIのアップロードが実行できることだ。これによってさまざまなコストを抑え、効率よくAIのワークロードを実現できるようになる。
使い方がとてもシンプルな点もOpenVINO™ ツールキットの特色といえるだろう。推論を実行するだけであれば数行のコードで実施可能だ。モデルファイルとCPU、GPU、NPUなどのデバイスを指定してコンパイルし、あとは推論入力用データを与えるだけで推論結果が返ってくる。
インテル® OpenVINO™ ツールキットの進化
OpenVINO™ は日々アップデートが行われており、ここ1年でもさまざまな進化があった。
1つ目は、AIモデル変換が簡単になったことである。もともとは「Model Optimizer(MO)」というツールでモデル変換を行っていたが、これは非常に高性能な反面、専門的な知識やスキルを求められる難しいオプションが多数存在した。だがOpenVINO™の進化によって、現在はより簡単に多くのAIモデルを変換できる「OpenVINO™ converter tool(OVC)」が提供されている。
2つ目は、AIモデルを直接読み込めるようになったこと。OpenVINO™ ツールキットのモデル読み込みフロントエンドが強化され、OpenVINO™ ツールキットのライブラリが、MOにあったような機能を内包。「PyTorch」「TensorFlow」「ONNX」などのフレームワークのモデルファイルを直接ロード可能となった。
3つ目は、モデルオブジェクトの直接変換。フレームワーク形式のオブジェクトを直接変換するAPIが提供され、オブジェクトの直接変換が実現。
4つ目は、モデル最適化ツールの変更だ。従来、OpenVINO™ ツールキットではモデルの最適化のために2つのツールを提供してきたが、そのうちのひとつ「Post-training Quantization(POT)」を廃止。もうひとつの「Neural Network Compression Framework (NNCF)」に機能を集約し、学習後の最適化も担当できるようになった。
この他、新デバイスのサポートも行われている。例えばインテル® Xeon® プロセッサーが持つ「AMX-TMUL」による積和行列演算の高速実行、外付けGPUが持つ「XMX」による積和演算の高速実行、インテル® Core™ Ultraプロセッサーが持つ「NPU」のサポートなどだ。こういった最新デバイスのサポートは年3~4回のペースでリリースされている。
新バインディングのサポートも進められており、「C++」と「Python」に加え、新たに「C」が追加された。これは、Cベースの資産が多い組み込み系の開発者をサポートするのが目的だ。また、「Node.js」「JavaScript」「TypeScript」といったECMA Script系もサポートされ、OpenVINO™ ツールキットを利用できるようになった。
エッジ(ローカル)LLMに向けた取り組み
エッジ領域におけるローカル動作のLLMについては、AI PCの登場によってかなりトレンドとなっているだろう。インターネット通信やクラウドを利用しないセキュアなLLMというのは、さまざまな業界で需要があり、注目を集めている。
インテルにおいても、ローカルLLMには力を入れており、LLMモデルのサポート数も増やしている。現時点で「Llama3」「Phi3」「Mistral」「Mixtral」「MoE」といった多くのLLMモデルをサポート。同時にパフォーマンスチューニングも進められており、現在、メモリー使用量の削減やオペレーターの最適化等の取り組みが行われている。また、LLMでよく使われるLangChainとも連携し、RAGなどの応用LLMパイプラインをOpenVINO™に実装することも用意になった。
Huggingfaceの「transformers」互換のAPIも提供しており、簡単な変更でOpenVINO™へ移行し、パフォーマンスアップを図れるようになった。加えて、TokenizerをOpenVINO™ ツールキットのIRモデルに変換できる機能、OpenVINO TokenizersとLLMモデルを接続する機能を提供。これによってHuggingfaceに依存することのない環境、合成モデルを使った推論を実現している。
モデル最適化ツール「NNCF」を使ったLLMモデルのINT4重み圧縮も可能となった。LLMモデルはサイズがとても大きく、搭載メモリーも少なかったためにクライアントPCでは荷が重いと言われてきたが、今後はサイズを削減できることによりクライアントPCでも実行しやすくなるだろう。
どこでもAIが走る環境を目指すインテル
ここまで、インテル® OpenVINO™ ツールキットがインテルのAI戦略をどのように支えるソフトウェアであるかを紹介してきた。インテル製CPUやNPUの登場とOpenVINO™ ツールキットの活用により、ローカルのLLM動作が可能になるなど、よりAIが身近となる世界がやってきている。
さらに、OpenVINO™ ツールキットは、無償かつオープンソースで提供されている為、一般向け、産業向け問わずさまざまなPC上で、追加ハードウェア無しにAI推論が行える。これはAIの活用の幅を広げさらに加速させて行くことだろう。
「どこでもAIが走る環境」に向けて、最新機能、最新ハードウェア、最新モデルをいち早くOpenVINO™ ツールキットに対応させているインテル。その熱量からも、“AI Everywhere”という世界の実現にかける思いが伝わってくる。
[PR]提供:インテル