OpenVINO リリースノート

2024.3 - 2024 年 7 月 31 日#

システム要件 | リリースポリシー | インストール・ガイド

新機能#

  • コード変更を最小限に抑えるための、より多くの生成 AI カバレッジとフレームワークを統合しました。

    • OpenVINO の事前最適化モデルが Hugging Face で利用できるようになりました。これにより、開発者はこれらのモデルを簡単に使用できます。

  • より広範囲な大規模言語モデル (LLM) のサポートと、さらに多くのモデル圧縮技術。

    • Multi-Head Attention (MHA) と oneDNN の機能強化が追加されたことで、インテルのディスクリート GPU 上の LLM パフォーマンスが大幅に向上しました。

  • 移植性とパフォーマンスが向上し、エッジ、クラウド、またはローカルで AI を実行できます。

    • OpenVINO モデルサーバー (OVMS) に vLLM と連続バッチ処理が組み込まれたことで、LLM を提供する CPU パフォーマンスが向上しました。vLLM は、効率的な LLM 推論とモデル提供をサポートする使いやすいオープンソース・ライブラリーです。

    • Ubuntu* 24.04 が正式にサポートされました。

OpenVINO™ ランタイム#

共通

  • OpenVINO が vLLM のバックエンドとして使用できるようになりました。完全接続レイヤーの最適化、複数の完全接続レイヤー (MLP) の融合、U8 KV キャッシュ、動的分割融合により、CPU パフォーマンスが向上します。

  • Ubuntu* 24.04 が正式にサポートされるようになりました。つまり、OpenVINO がこのシステムで検証されました (プレビューサポート)。

  • 以下が改善化されました。

    • Squeeze レイヤーと Concat レイヤーを有効にすることで、YoloV10 や PixArt-XL-2 などのモデルのサポートが強化されました。

    • 精度変換 FP16/BF16 -> FP32 のパフォーマンス。

AUTO 推論モード#

  • 2 回目の実行でキャッシュされたモデルがターゲットデバイス用に準備されると CPU アクセラレーションがスキップされるため、cache_dir が設定されている場合でも、CPU アクセラレーションのモデルキャッシュは無効になります。

ヘテロジニアス推論モード#

  • PIPELINE_PARALLEL ポリシーが利用できるようになりました。これにより、使用可能なメモリーサイズごとに複数のデバイスで大規模なモデルを推論できるようになります。これは、1 つの個別の GPU に収まらない大規模な言語モデルに特に役立ちます (プレビュー機能)。

CPU デバイスプラグイン#

  • 完全接続レイヤーは、JIT カーネルによる RoPE 最適化とともに改善され、インテル® AMX プラットフォーム上の LLM サービス・ワークロードのパフォーマンスが向上しました。

  • インテル® AVX2 およびインテル® AVX-512 プラットフォームでは、完全接続レイヤーの動的量子化がデフォルトで有効になり、8 ビット/4 ビットの重み圧縮 LLM のすぐに使用できるパフォーマンスが向上しました。

  • 以下のパフォーマンスが向上しました。

    • インテル® oneAPI スレッディング・ビルディング・ブロック 2021.13 への移行に伴う ARM サーバー構成。

    • FP32 および FP16 用の ARM。

GPU デバイスプラグイン#

  • 以下のパフォーマンスが向上しました。

    • マルチヘッド・アテンション (MHA) や oneDNN の最適化により、レイテンシーが短縮され、ディスクリート GPU 上で LLM と Stable Diffusion が改善されました。

    • ディスクリート GPU 上の Whisper モデル。

NPU デバイスプラグイン#

  • LLM の NPU 推論が GenAI API (プレビュー機能) でサポートされるようになりました。NPU 上の LLM をサポートするために (NPU ドライバーの最新バージョンが必要)、追加の関連機能も NPU プラグインの一部になりました。

  • 2GB を超えるモデルが、NPU ドライバー (インテル® NPU ドライバー - Windows* 32.0.100.2540) と NPU プラグイン側 (Linux* と Windows* の両方) の両方でサポートされるようになりました。

  • メモリーの最適化が実装されました:

    • 重みは NPU コンパイラー・アダプタからコピーされなくなりました。

    • NPU での推論におけるメモリーと最初の推論レイテンシーの改善。

OpenVINO Python API#

  • visit_attributes が Python で実装されたカスタム操作で使用できるようになりました。これにより、操作属性のシリアル化が可能になります。

  • Python API が拡張され、モデルクラスの新しいメソッド (Model.get_sink_index など)、Model.get_result_index の新しいオーバーロードが追加されました。

OpenVINO Node.js API#

  • トークナイザーと StringTensor が LLM 推論でサポートされるようになりました。

  • デスクトップ・アプリケーション開発者向けに、electron.js との互換性が復元されました。

  • Core.import_model の非同期バージョンと Core.read_model メソッドの機能強化が利用可能になり、特に LLM のモデル読み取りがより効率的になりました。

TensorFlow フレームワークのサポート#

  • keras.LSTM 操作を使用したモデルでは、CPU 推論のパフォーマンスが向上しました。

  • 未定義要素の形状値で初期化されたテンソルリストがサポートされるようになりました。

TensorFlow Lite フレームワークのサポート#

  • 予備テンソルを含む定数がサポートされるようになりました。

PyTorch フレームワークのサポート#

  • ネストされた構造 (辞書やタプルなど) のタイプ/形状の設定がサポートされるようになりました。

  • aten::layer_norm が更新され、動的な形状の正規化がサポートされるようになりました。

  • FX グラフの動的シェイプのサポートが改善され、torch.compile および torch.export ベースのアプリケーションにメリットをもたらし、gemma および chatglm モデルファミリーのパフォーマンスが向上しました。

ONNX フレームワークのサポート#

  • さらに多くのモデルがサポートされるようになりました。

    • ReduceMean 操作の新しいバージョン (ONNX opset 18 で導入) を使用するモデル。

    • Multinomial 操作 (ONNX opset 7 で導入) を使用するモデル。

OpenVINO™ モデルサーバー#

  • OpenAI API テキスト生成では次の点が改善されました。

    • OpenVINO ランタイムとサンプリング・アルゴリズムによるパフォーマンス結果。

    • ログに生成エンジンのメトリックを生成。

    • 追加のサンプリング・パラメーターの追加。

    • メモリー消費に影響するリクエスト・パラメーターには、構成可能な範囲内で値の制限を設けられるようになりました。

  • OpenAI API テキスト生成で次の点が修正されました。

    • 不完全な UTF-8 シーケンスに影響するストリーマー応答を生成します。

    • 散発的な生成のハングアップ。

    • 完了エンドポイント・ストリームからの完了の応答と vLLM ベンチマーク・スクリプトとの非互換性。

ニューラル・ネットワーク圧縮フレームワーク#

  • MXFP4 データ形式が重み圧縮メソッドでサポートされるようになり、ゼロポイントなしの e2m1 データタイプと 8 ビットの e8m0 スケールを使用して重みを 4 ビットに圧縮できるようになりました。この機能は、nncf.compress_weights() で mode=CompressWeightsMode.E2M1 を設定することで有効になります。

  • 重み圧縮法の AWQ アルゴリズムがパターン用に拡張されました。Phi ファミリーモデルをカバーするには、Act->MatMul と Act->MUltiply->MatMul を使用します。

  • 対称的に量子化された重みの表現が、ゼロポイントなしの符号付きデータタイプに更新されました。これにより、NPU は対称モードで圧縮された LLM をサポートできるようになります。

  • トレーニング後の量子化における BF16 モデルがサポートされるようになりました (nncf.quantize())。

  • 重み圧縮法のアクティブ化スパース性 (コンテキスト・スパース性) アルゴリズムがサポートされるようになり (プレビュー)、LLM 推論が高速化されました。このアルゴリズムは、nncf.compress_weights() の target_sparsity_by_scope オプションを設定することで有効になりますが、Torch モデルのみをサポートします。

OpenVINO トークナイザー#

  • 現在、以下がサポートされています:

    • テキストの正規化と分割のため PCRE2 ライブラリーを使用した完全な正規表現構文。

    • すべてのトークナイザー・タイプの左パディング。

  • GLM-4 トークナイザーのサポート、および Phi-3 と Gemma のデトークン化のサポートが改善されました。

その他の変更と既知の問題#

OpenVINO.GenAI#

  • パフォーマンス・カウンターが追加されました。

  • NPU のプレビューサポートが利用可能になりました。

Hugging Face#

OpenVINO の事前最適化モデルが Hugging Face で利用可能になりました。

既知の問題#

コンポーネント: OpenVINO.GenAI
ID: 148308
説明:
OpenVINO.GenAI アーカイブの配布には、OpenVINO トークナイザーおよび OpenVINO.GenAI のデバッグ・ライブラリーは含まれていません。
コンポーネント: GPU
ID: 146283
説明:
一部の LLM モデルでは、数千トークンの長いプロンプトにより、GPU プラグインの精度が低下する可能性があります。
回避方法:
この問題を回避するには、モデルを FP32 精度で実行することを推奨します。

以前の 2024 リリース#

2024.2 - 2024 年 6 月 17 日

新機能

  • コード変更を最小限に抑えるための、より多くの生成 AI カバレッジとフレームワークを統合しました。

    • Llama 3 は CPU、内蔵 GPU、およびディスクリート GPU 向けに最適化されており、パフォーマンスが向上し、メモリーの使用効率が向上します。

    • 小規模言語モデルの能力を活用して、より高速で正確かつコスト効率の良いテキスト処理を実現する AI モデルファミリーである Phi-3-mini をサポートします。

    • OpenVINO で Python のカスタム操作が有効になったため、Python 開発者は C++ カスタム操作 (これもサポートされています) を使用する代わりに、カスタム操作をコーディングすることが容易になりました。Python カスタム操作により、ユーザーは独自の特殊操作を任意のモデルに実装できるようになります。

    • ノートブックの拡張により、新しいモデルをより適切にカバーできるようになります。注目すべきノートブックが追加されました: DynamiCrafter、YOLOv10、Phi-3 を使用したチャットボット・ノートブック、および QWEN2。

  • より広範囲な大規模言語モデル (LLM) のサポートと、さらに多くのモデル圧縮技術。

    • NNCF に 4 ビット重み圧縮用の GPTQ メソッドが追加され、推論の効率が向上し、圧縮された LLM のパフォーマンスが向上しました。

    • 内蔵 GPU とディスクリート GPU の両方で LLM パフォーマンスが大幅に向上し、レイテンシーが短縮されました。

    • AVX2 (第 13 世代インテル® Core™ プロセッサー) および AVX512 (第 3 世代インテル® Xeon® スケーラブル・プロセッサー) ベースの CPU プラットフォーム上の FP16 重み付け LLM の 2 番目のトークン・レイテンシーとメモリー・フットプリントが大幅に改善されました (特にバッチサイズが小さい場合)。

  • 移植性とパフォーマンスが向上し、エッジ、クラウド、またはローカルで AI を実行できます。

    • モデルサービスの機能強化:

      • プレビュー: OpenVINO モデルサーバー (OVMS) は、OpenAI 互換 API に加えて、連続バッチ処理および PagedAttention をサポートするようになりました。これにより、特にインテル® Xeon® プロセッサー上で、多数の同時ユーザーに LLM を提供する場合に、並列推論のスループットが大幅に向上します。

      • Triton サーバーの OpenVINO バックエンドは、動的な入力形状をサポートするようになりました。

      • torch.compile OpenVINO バックエンドを介して TorchServe を統合することで、モデルの展開、複数のインスタンスへのプロビジョニング、モデルのバージョン管理、メンテナンスが容易になります。

    • プレビュー: 数行のコードで大規模な言語モデルを使用してテキストを生成するための簡素化された API である Generate API の追加。API は、新しくリリースされた OpenVINO GenAI パッケージを通じて利用できます。

    • Intel Atom® プロセッサー X シリーズのサポート。詳細については、システム要件を参照してください。

    • プレビュー: インテル® Xeon® 6 プロセッサーのサポート。

OpenVINO™ ランタイム

共通

  • より効率的な LLM 重み圧縮を可能にするために、UINT2、UINT3、UINT6 を使用した操作とデータタイプがサポートされるようになりました。

  • 共通 OV ヘッダーが最適化され、バイナリーのコンパイル時間が短縮され、バイナリーサイズが軽減されました。

AUTO 推論モード

  • AUTO は、最初の推論の待ち時間を短縮するためデバイスを選択する際に、モデルキャッシュを考慮します。モデルキャッシュがすでに配置されている場合、AUTO は CPU を最初の推論デバイスとして一時的に利用する代わりに、選択したデバイスを直接使用します。

  • 動的モデルは、デバイスの優先度を考慮せずに CPU にロードされるのではなく、選択したデバイスにロードされるようになりました。

  • 動的入力または出力を持つステートフル・モデルで AUTO を使用する場合の例外を修正しました。

CPU デバイスプラグイン

  • インテル® Core™ Ultra (コード名 Meteor Lake) や第 13 世代インテル® Core™ プロセッサー (コード名 Raptor Lake) などのインテル・クライアント・プラットフォームで、FP32 精度のレイテンシー・モードを使用する場合のパフォーマンスが向上しました。

  • AVX2 および AVX512 ベースの CPU プラットフォームでは、バッチサイズが小さい場合に、FP16 LLM の 2 番目のトークンのレイテンシーとメモリー・フットプリントが大幅に改善されました。

  • PagedAttention は、インテル® CPU 上で LLM ワークロードを処理するパフォーマンスを向上させるため、INT8 KV キャッシュサポートとともに AVX2、AVX512、AMX プラットフォーム向けに最適化されました。

  • 共有埋め込みを持つ LLM は、Gemma を含むいくつかのモデルのパフォーマンスとメモリー消費を改善するように最適化されました。

  • TBB 2021.2.5 にアップグレードすると、ARM ベースのサーバーのパフォーマンスが大幅に向上します。

  • ARM CPU 上の FP32 および FP16 のパフォーマンスが向上しました。

GPU デバイスプラグイン

  • LLM の最初のトークンと平均トークンのレイテンシーは、すべての GPU プラットフォームで改善されていますが、個別の GPU では顕著です。LLM のメモリー使用量も削減されました。

  • インテル® Core™ Ultra プラットフォームで Stable Diffusion FP16 パフォーマンスが向上し、動的形状の入力を持つモデルのパイプラインが大幅に改善されました。パイプラインのメモリー使用量も削減されました。

  • 最適化された permute_f_y カーネルのパフォーマンスが向上しました。

NPU デバイスプラグイン

  • 新しい構成オプションのセットが利用可能になりました。

  • 新しい 2408 NPU ドライバーにより、パフォーマンスの向上が実現しました。

OpenVINO Python API

  • 基本的なシナリオでカスタム Python 演算子の記述がサポートされるようになりました (OpenVINO C++ API との整合)。これにより、ユーザーは独自の特殊操作を任意のモデルに実装できるようになります。より高度な機能の完全なサポートは、今後のリリースで考慮されます。

OpenVINO C API

  • OpenVINO C++ API と連携して、より多くの要素タイプがサポートされるようになりました。

OpenVINO Node.js API

  • OpenVINO node.js パッケージは、electron.js フレームワークをサポートするようになりました。

  • より完全な使用ガイドラインのため、JS API ドキュメントが拡張および改善されました。

  • OpenVINO C++ API と JS API の整合性が向上し、より高度な機能が JS ユーザーに提供されます。

TensorFlow フレームワークのサポート

  • 3 つの新しい操作がサポートされるようになりました。NEWとマークされている操作を参照してください。

  • LookupTableImport は、TF Hub の 2 つのモデルに必要な、より優れたサポートが追加されました。

    • mil-nce

    • openimages-v4-ssd-mobilenet-v2

TensorFlow Lite フレームワークのサポート

  • 顧客モデルに必要な GELU 操作がサポートされるようになりました。

PyTorch フレームワークのサポート

  • 9 つの新しい操作がサポートされるようになりました。

  • aten::set_item は負のインデックスをサポートするようになりました。

  • 形状がリストの場合の適応プールの問題が修正されました (PR #24586)。

ONNX サポート

  • 今後は、廃止された API やクラスシンボルの代わりに、InputModel インターフェイスを使用する必要があります。

  • 顧客モデルの要求に対応するため、ReduceMin-18 および ReduceSumSquare-18 演算子の変換が追加されました。

  • デフォルト値として “none” が設定されている場合、Gelu-20 オペレーターの動作が修正されました。

OpenVINO™ モデルサーバー

  • OpenVINO モデルサーバーは、OpenAI 互換 API を使用したテキスト生成ユースケースに使用できるようになりました。

  • 特にインテル® Xeon® プロセッサー上の高い同時負荷で、高速かつ効率的にテキストを生成する連続バッチ処理と PagedAttention アルゴリズムのサポートが追加されました。さらに詳しく

ニューラル・ネットワーク圧縮フレームワーク

  • LLM のデータ認識 4 ビット重み圧縮に、nncf.compress_weights() で GPTQ メソッドがサポートされるようになりました。nncf.compress_weights() の gptq=True` によって有効になります。

  • より正確な 4 ビット圧縮 LLM のスケール推定アルゴリズム。nncf.compress_weights() の scale_estimation=True` によって有効になります。

  • nncf.compress_weights() に BF16 の重みを持つモデルのサポートが追加されました。

  • 量子化を考慮したトレーニングでの PyTorch モデル量子化の初期化には、nncf.quantize() メソッドが推奨されるようになりました。詳細については例を参照してください。

  • 量子化された PyTorch モデルを保存および復元する compressed_model.nncf.get_config() および nncf.torch.load_from_config() API が追加されました。詳細については例を参照してください。

  • カスタムモジュールを使用した PyTorch モデルの int8 量子化の自動サポートが追加されました。量子化の前にモジュールを登録する必要はありません。

その他の変更と既知の問題

Jupyter ノートブック

既知の問題

コンポーネント: TBB
ID: TBB-1400/ TBB-1401
説明:
2024.2 では、システム TBB/oneTBB の代わりに、インテル® ディストリビューションの OpenVINO Ubuntu および Red Hat アーカイブに oneTBB 2021.2.x が使用されます。これにより、新世代のインテル® Xeon® プラットフォームのパフォーマンスは向上しますが、前世代の一部のモデルではレイテンシーが増加する可能性があります。これらのモデルのレイテンシーのパフォーマンスを向上させるには、OpenVINO を -DSYSTEM_TBB=ON でビルドします。
コンポーネント: python API
ID: CVS-141744
説明:
コミット後のテスト中に、カスタム操作に関連する次の問題が見つかりました。修正は準備されており 2024.3 リリースで提供される予定です。
- 最初の問題: GIL を取得しようとするスレッドを待機していたため、test_custom_op は破棄時にハングします。
- 2 番目の問題は、pybind11 では現在のスコープ以外で GIL の操作が許可されず、デストラクター用に GIL を解放できないことです。ブロッキング・デストラクターと GIL pybind/pybind11#1446
- 現在のソリューションでは、InferRequest およびチェーン・デストラクターによって呼び出されるすべての GIL を解放できます。
コンポーネント: CPU ランタイム (SYCL runtime)
ID: MFDNN-11428
説明:
新しい OneDNN ライブラリーを採用したことにより、ほとんどのユースケース、特にレイテンシー・ヒント付きの AVX2 BRGEMM カーネルのパフォーマンスが向上しましたが、次の回帰が発生する場合があります:
a. MTL Windows レイテンシー・モードの unet-camvid-onnx-0001 や mask_rcnn_resnet50_atrous_coco などの特定のモデルでのレイテンシー回帰
b. スループット・ヒントが使用されているインテル® クライアント・プラットフォームでのパフォーマンスの低下
これらの問題は調査中であり、次のリリースで解決される予定です。
コンポーネント: ハードウェア構成
ID: N/A
説明:
新しい CPU では LLM のパフォーマンスが低下する可能性があります。この問題を軽減するには、BIOS のデフォルト設定を変更して、システムを 2 つの NUMA ノードシステムに変更します:
1.BIOS 設定メニューに入ります。
2.EDKII メニューから、[Socket Configuration] -> [Uncore Configuration] -> [Uncore General Configuration] -> [SNC] を選択します。
3.SNC 設定はデフォルトで AUTO に設定されています。起動時にプロセッサーのソケットごとに 1 つの NUMA ノードを構成するには、SNC 設定を無効に変更します。
4.システムの再起動後、numatcl -H を使用して NUMA ノードの設定を確認します。次のマッピングでは、2 ソケットシステムでノード 0 と 1 のみが表示されます。
Node - 0 - 1
0 - 10 - 21
1 - 21 - 10

2024.1 - 2024 年 4 月 24 日

新機能

  • コード変更を最小限に抑えるための、より多くの生成 AI カバレッジとフレームワークを統合しました。

    • インテル® Xeon® プロセッサーのパフォーマンス向上のため最適化された Mixtral および URLNet モデル。

    • 統合 GPU を搭載したインテル® Core™ Ultra プロセッサーでの推論速度の向上のため最適化された、Stable Diffusion 1.5、ChatGLM3-6B、および Qwen-7B モデル。

    • 優れたパフォーマンス・メトリックを備えた、すぐに使用できる GenAI 大規模言語モデル (LLM) のチャット/指示モデルである Falcon-7B-Instruct のサポート。

    • 新しい Jupyter ノートブックが追加されました: YOLO V9、YOLO V8 方向境界ボックス検出 (OOB)、Keras での Stable Diffusion、MobileCLIP、RMBG-v1.4 背景除去、Magika、TripoSR、AnimateAnyone、LLaVA-Next、OpenVINO と LangChain を使用した RAG システム。

  • より広範な LLM モデルのサポートとモデル圧縮テクニック。

    • 圧縮埋め込みによる追加の最適化により、LLM コンパイル時間が短縮されました。インテル® アドバンスト・マトリクス・エクステンション (インテル® AMX) を搭載した第 4 世代および第 5 世代インテル® Xeon® プロセッサー上の LLM の最初のトークン・パフォーマンスが向上しました。

    • インテル® Arc™ GPU の oneDNN、INT4、INT8 のサポートにより、LLM 圧縮が向上し、パフォーマンスが向上しました。

    • 統合 GPU を搭載したインテル® Core™ Ultra プロセッサー上の特定の小規模 GenAI モデルでメモリー使用が大幅に削減されます。

  • 移植性とパフォーマンスが向上し、エッジ、クラウド、またはローカルで AI を実行できます。

    • インテル® Core™ Ultra プロセッサー用のプレビュー NPU プラグインが、PyPI のメイン OpenVINO パッケージに加えて、OpenVINO オープンソース GitHub リポジトリーでも利用できるようになりました。

    • JavaScript API は npm リポジトリーを通じてより簡単に利用できるようになりました。これにより、JavaScript 開発者は OpenVINO API にシームレスにアクセスできるようになります。

    • ARM プロセッサー上の FP16 推論が、畳み込みニューラル・ネットワーク (CNN) に対してデフォルトで有効になりました。

OpenVINO™ ランタイム

共通

  • キャッシュされたモデルの Unicode ファイルのパスが Windows* でサポートされるようになりました。

  • 定数を含むエッジ上の入力テンソルを拡張するパッド前処理 API。

  • 特定の画像生成モデルの推論エラーが修正されました (変換後の I/O ポート名が融合されました)。

  • コンパイラーの警告をエラーとして表示するオプションがオンになり、コーディング基準と品質が向上しました。新しい OpenVINO コードではビルド警告は許可されず、既存の警告は修正されました。

AUTO 推論モード

  • ov::CompiledModel が ov::enable_profiling 値を返すことができるようになりました。

CPU デバイスプラグイン

  • インテル® アドバンスト・マトリクス・エクステンション (インテル® AMX) を搭載した第 4 世代および第 5 世代インテル® Xeon® プロセッサー上の LLM の最初のトークン・パフォーマンスが向上しました。

  • 圧縮された埋め込みによる最適化の追加により、LLM コンパイル時間とメモリー・フットプリントが改善されました。

  • MoE (Mixtral など)、Gemma、GPT-J のパフォーマンスがさらに向上しました。

  • ARM デバイスで幅広いモデルのパフォーマンスが大幅に向上しました。

  • FP16 の推論精度は、ARM デバイス上のすべてのタイプのモデルのデフォルトになりました。

  • 各種 ARM デバイスで統一されたバイナリー配布を可能にするために、CPU アーキテクチャーに依存しないビルドが実装されました。

GPU デバイスプラグイン

  • 統合型およびディスクリート GPU プラットフォームの両方で、LLM の最初のトークンのレイテンシーが改善されました。

  • ChatGLM3-6B モデルでは、統合 GPU プラットフォームでの平均トークン・レイテンシーが改善されました。

  • Stable Diffusion 1.5 の FP16 精度では、インテル® Core™ Ultra プロセッサーでのパフォーマンスが向上しました。

NPU デバイスプラグイン

  • NPU プラグインが OpenVINO GitHub リポジトリーの一部になりました。最新のプラグインの変更では、すべてリポジトリーですぐに利用できるようになります。NPU はインテル® Core™ ウルトラプロセッサーに内蔵されています。

  • OpenVINO での NPU の使用方法を紹介する新しい OpenVINO™ ノートブック “Hello, NPU!” が追加されました。

  • NPU で推論を実行するには、Microsoft Windows* 11 (64 ビット版) のバージョン 22H2 以降が必要です。

OpenVINO Python API

  • 現在は、RemoteTensors の GIL フリーの作成が使用されています。GIL を保持すると、プロセスがマルチスレッドに適していないことを意味し、GIL ロックを削除すると、Remote Tensors の概念にとって重要なパフォーマンスが向上します。

  • Python API レベルでパックされたデータタイプ BF16 が追加され、numpy で処理されないデータタイプをサポートする新しい方法が開かれました。

  • ov::preprocess::PrePostProcessorItem の ‘pad’ 演算子のサポートが追加されました。

  • ov.PartialShape.dynamic(int) 定義が提供されています。

OpenVINO C API

  • スケールと平均の 2 つの新しい前処理 API が追加されました。

OpenVINO Node.js API

  • CompiledModel.exportModel()、core.import_model()、Core set/get property、Tensor.get_size()、Model.is_dynamic() など、JavaScript API を CPP API に適合させる新しいメソッドが追加されました。

  • 開発者が JavaScript アプリケーションを OpenVINO™ と統合できるように、ドキュメントが拡張されました。

TensorFlow フレームワークのサポート

  • tf.keras.layers.TextVectorization tokenizer がサポートされました。

  • 変数およびハッシュテーブル (辞書) リソースを含むモデルの変換が改善されました。

  • 8 つの新しい操作が追加されました (NEW とマークされているリスト項目を参照してください)。

  • 10 個の操作が複素テンソルでサポートされています。

  • TF1 モデルの入力テンソル名は、入力ごとに 1 つの名前を持つように調整されました。

  • Hugging Face モデルのサポート範囲は、以下の理由により大幅に拡大しました。

    • メモリー内のモデルの入力シグネチャーの抽出が修正され、メモリー内のモデルの変数値の読み取りが修正されました。

PyTorch フレームワークのサポート

  • PyTorch モデルの新しいタイプの拡張機能である ModuleExtension がサポートされるようになりました (PR #23536)。

  • 22 の新しい操作が追加されました。

  • torch.export (FX グラフ) によって生成されたモデルの実験的なサポートが追加されました (PR #23815)。

ONNX フレームワークのサポート

  • 8 の新しい操作が追加されました。

OpenVINO™ モデルサーバー

  • OpenVINO™ ランタイム・バックエンドが 2024.1 になりました

  • 出力に文字列データタイプを持つ OpenVINO™ モデルがサポートされています。現在、OpenVINO™ モデルサーバーは、文字列タイプの入力と出力を持つモデルをサポートできるため、開発者はモデルにビルトインされたトークン化を最初のレイヤーとして活用できます。開発者は、テキストのみを返すモデルに埋め込まれた後処理を続行することもできます。ユニバーサル・センテンス・エンコーダー・モデルと文字列データ入力モデルのデモと、文字列出力データのデモを確認してください。

  • MediaPipe Python 計算機が更新され、関連するすべての構成と Python コードファイルの相対パスがサポートされるようになりました。これにより、コードを変更することなく、完全なグラフ構成フォルダーを任意のパスに展開できるようになりました。

  • KServe REST API サポートが拡張され、NVIDIA Triton* と互換性のあるバイナリー形式と同様に、JSON 本文の文字列形式を適切に処理できるようになりました。

  • モデルサーバーに完全に委任された RAG アルゴリズムを紹介するデモが追加されました。

ニューラル・ネットワーク圧縮フレームワーク

  • モデルサブグラフを、INT8 トレーニング後の量子化 nncf.quantize() の無視されるスコープで定義できるようになりました。これにより、精度に敏感なレイヤーを量子化から除外することが容易になります。

  • INT8 トレーニング後の量子化では、1 以上のバッチサイズが部分的にサポートされるようになり、プロセスが高速化されました。精度に影響する可能性があるため、トランスフォーマー・ベースのモデルには推奨されないことに注意してください。デモの例があります。

  • トレーニング後の量子化後に INT8 モデルを微調整して、モデルの精度を向上させ、トレーニング後の量子化からトレーニングを考慮した量子化への移行を容易にできるようになりました。デモの例があります。

OpenVINO トークナイザー

  • TensorFlow サポートが拡張されました - TextVectorization レイヤーの翻訳:

    • 既存の操作を TF 操作と整合させ、それらの翻訳機能を追加しました。

    • 新しく不規則なテンソル演算と文字列演算を追加しました。

  • 新しいトークナイザー・タイプ RWKV がサポートされるようになりました。

    • 不規則なテンソル用の Trie トークナイザーと融合操作を追加しました。

    • OV トークナイザーを取得する新しい方法: ファイルから語彙をビルドします。

  • トークナイザー・キャッシュは、OpenVINO™ モデル・キャッシュ・メカニズムで動作するように再設計されました。

その他の変更と既知の問題

Jupyter ノートブック

OpenVINO™ ノートブック・リポジトリーのデフォルトブランチが ‘main’ から ‘latest’ に変更されました。ノートブック・リポジトリーの ‘main’ ブランチは廃止されましたが、2024 年 9 月 30 日まで維持されます。

新しいブランチ ‘latest’ では、大幅なリファクタリングとディレクトリー命名構造の改善により、ユーザー・エクスペリエンスが向上し、メンテナンス性が簡素化されます。

コンテンツ内を移動するには、ローカルの README.md ファイルと GitHub ページ の OpenVINO™ ノートブックを使用します。

次のノートブックが更新または新しく追加されました。

既知の問題

コンポーネント: CPU プラグイン
ID: N/A
説明:
Windows* のデフォルトの CPU ピニングポリシーは、OpenVINO プラグインで CPU ピニングを制御するのではなく、Windows* のポリシーに従うように変更されました。これにより、Windows* 上で特定の動的またはパフォーマンスの変動が生じます。開発者は ov::hint::enable_cpu_pinning を使用して、CPU ピニングを明示的に有効または無効にすることができます。
コンポーネント: ハードウェア構成
ID: N/A
説明:
新しい CPU では LLM のパフォーマンスが低下する可能性があります。この問題を軽減するには、BIOS のデフォルト設定を変更して、システムを 2 つの NUMA ノードシステムに変更します:
1.BIOS 設定メニューに入ります。
2.EDKII メニューから、[Socket Configuration] -> [Uncore Configuration] -> [Uncore General Configuration] -> [SNC] を選択します。
3.SNC 設定はデフォルトで AUTO に設定されています。起動時にプロセッサーのソケットごとに 1 つの NUMA ノードを構成するには、SNC 設定を無効に変更します。
4.システムの再起動後、numatcl -H を使用して NUMA ノードの設定を確認します。次のマッピングでは、2 ソケットシステムでノード 0 と 1 のみが表示されます。
Node - 0 - 1
0 - 10 - 21
1 - 21 - 10

2024.0 - 2024年3月6日

システム要件 | インストール・ガイド

新機能

  • コード変更を最小限に抑えるための、より多くの生成 AI カバレッジとフレームワークを統合しました。

    • OpenVINO™ ツールキット・トークナイザーをインストールすることで、TensorFlow 文のエンコードモデルのエクスペリエンスが向上しました。

    • OpenVINO™ ツールキットは、パイプラインを通じてより効率良い生成モデルの処理を支援する新しいアーキテクチャーである Mixture of Experts (MoE) をサポートするようになりました。

    • JavaScript 開発者は、OpenVINO API にシームレスにアクセスできるようになりました。この新しいバインディングにより、JavaScript API とのスムーズな統合が可能になります。

    • 新たに注目されるモデルが検証されました: Mistral、StableLM-tuned-alpha-3b、および StableLM-Epoch-3B。

  • より広範囲な大規模言語モデル (LLM) のサポートと、さらに多くのモデル圧縮技術。

    • 一般的な技術であるアクティベーション対応重み量子化をニューラル・ネットワーク圧縮フレームワーク (NNCF) に追加することで、LLM の INT4 重み圧縮の品質が向上しました。これにより、メモリー要求が軽減され、トークンの生成が高速化されます。

    • 内部メモリー状態の強化と KV キャッシュの INT8 精度により、インテル® CPU で強化された LLM パフォーマンスを体験してください。ChatGLM のようなマルチ照会 LLM 向けにチューニングされています。

    • OpenVINO™ 2024.0 リリースでは、さらに多くの OpenVINO™ 機能を Hugging Face エコシステムと統合することで、開発者の作業が軽減されました。人気のあるモデルの量子化構成を Hugging Face に直接保存し、精度とパフォーマンスを維持しながらモデルを INT4 形式に圧縮します。

  • 移植性とパフォーマンスが向上し、エッジ、クラウド、またはローカルで AI を実行できます。

    • インテル® Core™ Ultra プロセッサーに統合されたニューラル・プロセッサー・ユニット (NPU) 向けのプレビュー・プラグイン・アーキテクチャーが、PyPI のメイン OpenVINO™ パッケージに含まれました。

    • ARM スレッド・ライブラリーを有効にすることで、ARM でのパフォーマンスが向上しました。さらに、マルチコア ARM プラットフォームをサポートし、MacOS* 上でデフォルトで FP16 精度が有効になりました。

    • マルチバッチ入力および検索拡張生成 (RAG) 用に、OpenVINO モデルサーバーからサンプルを提供する LLM が改良されました。

OpenVINO™ ランタイム

共通

  • CPP および Python バインド用の従来の API は削除されました。

  • StringTensor のサポートは、トークナイザー・オペレーターのサポートと TensorFlow Hub への準拠を改善するため、GatherReshapeConcat などのオペレーターによって拡張されています。

  • oneDNN が v3.3 に更新されました。(oneDNN のリリースノートを参照)。

CPU デバイスプラグイン

  • KV キャッシュの INT8 精度などの動的量子化と内部メモリー状態の最適化により、インテルl® CPU プラットフォーム上の LLM パフォーマンスが AVX2 および AVX512 ベースのシステムで向上しました。第 13 世代および第 14 世代のインテル® Core™ プロセッサーおよびインテル® Core™ Ultra プロセッサーは、CPU の実行に AVX2 を使用しており、これらのプラットフォームでは高速化の恩恵を受けます。これらの機能を有効にするには、構成ファイルで "DYNAMIC_QUANTIZATION_GROUP_SIZE":"32""KV_CACHE_PRECISION":"u8" を設定します。

  • ov::affinity 構成は現在非推奨であり、リリース 2025.0 で削除される予定です。

  • 以下が改善および最適化されました。

    • 第 4 世代および第 5 世代インテル® Xeon® スケーラブル・プロセッサー上の BF16 用のマルチ照会構造 LLM (ChatGLM 2/3 など)。

    • Mixtral モデルのパフォーマンス。

    • 8 ビット圧縮 LLM のコンパイル時間とメモリー使用量。Qwen のような大規模な埋め込みを含むモデルで有用です。

    • ARM プラットフォーム上の FP16 精度の畳み込みネットワーク。

GPU デバイスプラグイン

  • 以下が改善および最適化されました。

    • インテル® Core™ Ultra プロセッサー上で大きなコンテキスト・サイズの INT4 圧縮モデルを使用した際の、統合 GPU (iGPU) プラットフォームの LLM の平均トークン・レイテンシー。

    • iGPU での LLM ビーム探索パフォーマンス。コンテキスト・サイズが大きくなると、平均レイテンシーと最初のトークンのレイテンシーの両方が減少することが予想されます。

    • iGPU プラットフォームでの YOLOv5 のマルチバッチ・パフォーマンス。

  • LLM のメモリー使用量が最適化され、16Gb プラットフォーム上でより大きなコンテキストを備えた ‘7B’ モデルが利用可能になりました。

NPU デバイスプラグイン (プレビュー機能)

  • OpenVINO™ の NPU プラグインは、PyPI を通じて利用できるようになりました (“pip install openvino” を実行)。

OpenVINO Python API

  • .add_extension メソッドのシグネチャーが調整され、API の動作が改善されて、ユーザー・エクスペリエンスが向上しました。

OpenVINO C API

  • ov_property_key_cache_mode (C++ ov::cache_mode) により、optimize_size および optimize_speed モードでモデルキャッシュを設定/取得できるようになりました。

  • Windows の VA サーフェスの例外が修正されました。

OpenVINO Node.js API

  • OpenVINO - JS バインディングは OpenVINO C++ API と一貫性があります。

  • 新しい配布チャネルが利用可能になりました: Node Package Manager (npm) ソフトウェア・レジストリー (check the installation guide)。

  • Linux* 以外のプラットフォームに対する制限が緩和されたため、Windows* ユーザーも JavaScript API を利用できるようになりました。

TensorFlow フレームワークのサポート

  • 文字列テンソルがネイティブにサポートされ、入力レイヤー、出力レイヤー、中間レイヤーで処理されるようになりました (PR #22024)。

    • TensorFlow Hub universal-sentence-encoder-multilingual はすぐに推論されます。

    • GatherConcat、および Reshape 操作でサポートされる文字列テンソル。

    • openvino-tokenizers モジュールとの統合 - openvino-tokenizers をインポートすると、トークン化モデルに必要なトランスレーターを TensorFlow フロントエンドに自動的にパッチします。

  • 従来のフロントエンドへの操作によるモデル・オプティマイザーのフォールバックは利用できなくなりました。.json 構成によるフォールバックは、モデル・オプティマイザーが廃止されるまで残されます (PR #21523)。

  • 次のサポートが追加されました。

  • 次の問題が修正されました。

    • 入力タイプが int16 の場合、UpSampling2D 変換がクラッシュした問題 (PR #20838)。

    • Squeeze の IndexError リスト・インデックス (PR #22326)。

    • 符号付き整数に対する FloorDiv の正しい計算 (PR #22684)。

    • tf.TensorShape から ov.PartialShape への不正なキャストエラーを修正しました (PR #22813)。

    • メモリー内のモデルの tf.string 属性の読み取りの問題を修正しました (PR #22752)。

ONNX フレームワークのサポート

  • ONNX フロントエンドが OpenVINO API 2.0 を使用するようになりました。

PyTorch フレームワークのサポート

  • dict または tuple から解凍された出力の名前がより明確になりました (PR #22821)。

  • FX Graph (torch.compile) は kwarg 入力をサポートするようになり、データタイプのカバレッジが向上しました (PR #22397)。

OpenVINO™ モデルサーバー

  • OpenVINO™ ランタイム・バックエンドが 2024.0 になりました。

  • テキスト生成デモでは、ストリーミング・クライアントと単項クライアントを使用したマルチバッチ・サイズがサポートされるようになりました。

  • REST クライアントは、Python パイプライン・ノードを含むメディアパイプ・グラフに基づくサーバブルをサポートするようになりました。

  • 関連する依存関係はセキュリティーが更新されました。

  • 受信リクエスト (自動形状と自動バッチサイズ) に基づいて実行時にモデルを再形状する機能は非推奨であり、将来削除される予定です。代わりに、OpenVINO の動的形状モデルを使用することを推奨します。

ニューラル・ネットワーク圧縮フレームワーク (NNCF)

  • データを考慮した 4 ビットの重み圧縮のためアクティベーションを認識した重み量子化 (AWQ) アルゴリズムが利用できるようになりました。これにより、4 ビット重みの比率が高い圧縮 LLM の精度が向上します。これを有効にするには、nncf.compress_weights() API の専用の awq オプション・パラメーターを使用します。

  • ONNX モデルは、nncf.quantize_with_accuracy_control() メソッドを通じて、精度制御によるトレーニング後の量子化でサポートされるようになりました。OpenVINO IR および ONNX 形式のモデルに使用できます。

  • 重み圧縮のサンプル・チュートリアルが利用可能になりました。このチュートリアルでは、Hugging Face Transformers やその他の LLM から TinyLLama モデルに適切なハイパーパラメーターを見つける方法を示しています。

OpenVINO トークナイザー

  • 正規表現のサポートが改善されました。

  • モデルカバレッジが改善されました。

  • トークナイザーのメタデータが rt_info に追加されました。

  • Tensorflow Text モデルの限定サポートが追加されました。文字列入力を使用して TF Hub の MUSE を変換します。

  • OpenVINO トークナイザーには独自のリポジトリーがあります: /openvino_tokenizers

その他の変更と既知の問題

既知の問題

コンポーネント - CPU プラグイン
ID - N/A
説明:
リリース 2024.0 以降、PyTorch フレームワークの動作に合わせて明示的に設定されていない限り、モデルの入力と出力にはテンソル名がなくなりました。
コンポーネント - GPU ランタイム
ID - 132376
説明:
インテル® Core™ Ultra プロセッサー上の LLM では、最初の推論のレイテンシーが長くなります。リングシーケンスを処理する徹底的なメモリー最適化により、最大 10 ~ 20% の低下が発生する可能性があります (メモリー使用量が約 1.5 ~ 2 GB 削減)。
コンポーネント - CPU ランタイム
ID - N/A
説明:
2 ソケット以上を備えたインテル® Xeon® プラットフォーム上で長いプロンプトを持つ LLM の “レイテンシー” ヒント推論では、パフォーマンス結果 (最初のトークンのレイテンシー) が、以前の OpenVINO バージョンとは異なる場合があります。その理由は、アプリケーションを実行する単一ソケットのすべての CPU コアが使用され、NUMA 制御が使用されていない場合 LLM のメモリー・オーバーヘッドが低減されるためです。
回避方法:
この動作は予期されたものですが、ストリームとスレッドの設定を使用してすべてのソケットのコアを含めることができます。

非推奨とサポート

非推奨の機能やコンポーネントを使用することはお勧めできません。これらは新しいソリューションへのスムーズな移行を可能にするために利用可能ですが、将来的には廃止される予定です。廃止された機能を引き続き使用するには、それらをサポートする最後の LTS OpenVINO バージョンに戻す必要があります。詳細については、OpenVINO の従来の機能とコンポーネントのページを参照してください。

2024 で廃止

  • ランタイム・コンポーネント:

    • インテル® ガウス & ニューラル・アクセラレーター (インテル® GNA)。インテル® Core™ Ultra や第 14 世代以降の低電力システムでは、ニューラル・プロセシング・ユニット (NPU) の使用を検討してください。

    • OpenVINO C++/C/Python 1.0 API (2023.3 API 移行ガイドを参照)

    • All ONNX フロントエンドの従来の API (ONNX_IMPORTER_API)

    • PerfomanceMode.UNDEFINED OpenVINO Python API の一部としてのプロパティー

  • ツール:

非推奨となり将来削除される予定