OpenVINOは、学習済みのディープラーニングモデルをIntel製のCPU・GPU・NPU上で高速に推論するための、Intelが公開するオープンソースの推論ツールキットです。最も多い疑問である「ライセンスは何か・商用で使えるのか」を先に答えると、ツールキット本体はApache License 2.0で、商用利用も含めて無料で使えます。ただし後述のとおり、OpenVINOで動かす学習済みモデルのライセンスは本体とは別で、商用配布の前にモデルごとの確認が要ります。この記事では、ライセンス条件を軸に、対応ハードウェア・インストール・IR変換・Python/C++の推論コード・量子化・GenAIまでを、最新の2026.2系の仕様に沿って整理します。
まとめ:OpenVINOのライセンスと使い方の要点
- ライセンス:本体はApache License 2.0。商用利用・改変・再配布が可能で、追加のライセンス料は不要です。
- 最大の注意点:本体がApache 2.0でも、推論に使う学習済みモデルは各モデル固有のライセンスです。研究用途限定や商用不可のモデルもあるため、商用デプロイ前に各モデルの許諾を必ず確認します。
- 最新版:2026.2.1(2026年6月17日)。約3か月ごとの四半期リリースで、現行版にLTS表記はありません。
- 対応ハードウェア:Intel CPU/GPU(内蔵・Arc)/NPU(Core Ultra以降)の3系統。旧来のMovidius VPUやFPGAはすでに廃止されています。
- 旧APIは廃止済み:Model Optimizer(mo)は2025.0で、Inference Engine(IECore)は2024.0で廃止されました。変換は
ovc、推論はov.Core()を使います。古い記事のコードはそのままでは動きません。
OpenVINOとは:Intel製のオープンソースAI推論ランタイム
OpenVINO(Open Visual Inference and Neural Optimization)は、TensorFlowやPyTorch、ONNXなどで学習したモデルを、Intelハードウェア向けに最適化して実行する推論専用のツールキットです。学習(トレーニング)ではなく推論(inference)の高速化と省メモリ化に特化している点が特徴で、同じモデルコードのまま実行先をCPUからGPUやNPUへ切り替えられます。
2018年にIntelが公開して以降、開発は活発に続いており、最新の安定版は2026.2.1(2026年6月17日リリース)です。バージョンは「西暦.四半期」形式で、おおむね年4回のペースで更新されます。バージョン依存の仕様は変わりやすいため、正確な最新版とサポート状況はPyPIの配布ページなど公式で確認するのが確実です。
OpenVINOのライセンスはApache 2.0|商用利用と再配布の条件
「openvino license」で検索する人が最も知りたいのは、商用で無料に使えるか、再配布や改変に条件があるか、という点です。ここを事実ベースで整理します。
本体のライセンス:Apache License 2.0(商用無料)
OpenVINOツールキット本体はApache License 2.0で提供されます(公式リポジトリのLICENSEファイル、およびPyPIのSPDX分類がApache-2.0)。Apache 2.0はコピーレフトを持たない寛容型ライセンスで、商用製品への組み込み・改変・再配布のいずれも許可されており、利用料やロイヤリティは発生しません。同じApache 2.0で提供される量子化ライブラリのNNCF、GenAIライブラリ、モデルサーバーOVMSも同様に商用利用できます。
再配布時の義務と特許許諾(NOTICE表示・変更点の明示)
無料でも「無条件」ではありません。OpenVINOを含むソフトウェアを再配布する場合は、Apache 2.0の定める最小限の義務を守ります。具体的には、著作権表示とライセンス本文(LICENSE)を残すこと、NOTICEファイルがあればその記載を保持すること、改変した場合はその旨を明示することです。自社サーバー内でOpenVINOを使って推論するだけ(配布を伴わない利用)なら、これらの表示義務は基本的に発生しません。
Apache 2.0の実務的な利点が特許許諾(第3条)です。コントリビューターから明示的かつ無償の特許ライセンスが付与されるため、MITやBSDにはない特許面の保護が商用利用者に働きます(利用者側がこのソフトに対して特許訴訟を起こした場合は許諾が終了する条項付き)。
学習済みモデルのライセンスは本体と別|商用前に個別確認
最も間違いやすいのがここです。本体がApache 2.0でも、OpenVINOで動かす学習済みモデルは、モデルごとに独立したライセンスを持ちます。かつて公式のモデル集だったOpen Model Zooは廃止され、現在はHugging Face上のOpenVINO最適化モデルが推奨の入手先です。ここに並ぶLLMや画像生成モデルには、研究用途限定・非商用・利用申請が必要(gated)といった商用配布に制約のあるライセンスが少なくありません。「OpenVINOがApache 2.0だから、載せるモデルも自由に商用利用できる」と誤解しないことが重要です。商用デプロイの前に、使うモデルのライセンスカード(配布元のモデルページ)で商用可否・帰属表示・再配布や改変の制限を必ず確認してください。
| 対象 | ライセンス | 商用利用 | 注意点 |
|---|---|---|---|
| OpenVINO本体 | Apache 2.0 | 可(無料) | 再配布時はNOTICE保持 |
| NNCF/GenAI/OVMS | Apache 2.0 | 可(無料) | 同上 |
| 学習済みモデル | モデルごとに異なる | 要確認 | 非商用/gatedあり・要確認 |
まとめると、ソフトウェアとしてのOpenVINOは商用でも安心して使えますが、ライセンスの確認対象は「本体」と「モデル」の二層に分かれている、と理解しておくと安全です。
対応ハードウェア(CPU・GPU・NPU)と非対応・廃止デバイス
OpenVINOの対応デバイスは世代交代が進んでおり、数年前の記事に載っているMovidius VPUやFPGAはすでに使えません。現行版の対応状況を正しく押さえます。
現在サポートされる3系統:CPU・GPU・NPU
2026.2時点で公式にサポートされるデバイスプラグインはCPU・GPU・NPUの3系統です。CPUはIntelのx86-64に加えてARM系にも対応し、GPUはIntel内蔵GPU(Iris/HD Graphics)とディスクリートGPUのIntel Arcを含みます。NPUはCore Ultra(Meteor Lake)以降に搭載されるニューラル処理ユニットを指し、pip install openvinoの標準パッケージからそのまま利用できます。実行先はコード上でデバイス名("CPU"/"GPU"/"NPU")を切り替えるだけです。
| デバイス | 対応 | 備考 |
|---|---|---|
| Intel CPU | ○ | x86-64 |
| ARM CPU | ○ | Apple Silicon等 |
| Intel GPU | ○ | 内蔵+ディスクリート(Arc) |
| Intel NPU | ○ | Core Ultra(Meteor Lake)以降 |
| AMD CPU | △ | x86として動作(Intel最適化) |
| NVIDIA GPU | × | 本体は非対応(第三者プラグイン) |
| Movidius VPU/FPGA | 廃止 | VPUは2023.0で終了 |
AMD CPU・NVIDIA GPUの扱い
AMD CPUは、CPUプラグインがx86汎用として動作するため実行自体は可能ですが、最適化はIntelハードウェアを前提としており、AMD向けに公式認定されているわけではありません。NVIDIA GPUは本体では非対応で、CUDAを直接ターゲットにしません。コミュニティ製のnvidia_pluginが別リポジトリ(openvino_contrib)に存在するものの、別ビルドが必要な非公式扱いです。NVIDIA GPUで推論したい場合は、OpenVINOよりもTensorRTやONNX Runtimeが素直な選択肢になります。
廃止済みデバイス(陳腐化情報に注意)
過去のOpenVINO記事が挙げていたエッジアクセラレータは、多くが提供終了です。Movidius Myriad X/VPU・Neural Compute Stick 2(NCS2)・HDDLは2023.0で、GNA(Gaussian & Neural Accelerator)は2024.0でサポートが打ち切られました。FPGAプラグインはそれ以前に廃止済みです。これらのデバイス名が前提の手順は現行版では動かないため、参考にする情報の日付に注意してください。
OpenVINOの仕組み:中間表現(IR)とモデル変換
OpenVINOの中核は、モデルを共通フォーマットに変換してから実行する仕組みです。この「変換」の手順が版によって大きく変わったため、ここも最新の方法に更新して押さえます。
中間表現(IR v11)とは|.xmlと.binの2ファイル
IR(Intermediate Representation)は、OpenVINOがハードウェア非依存で扱う中間フォーマットです。ネットワーク構造を記述した.xmlと、重みを格納した.binの2ファイルで構成されます。現行のIRバージョンはv11で、API 2.0と対で使われます(旧IR v10は廃止済みのInference Engine APIでしか読めません)。IRに変換しておくと、レイヤー融合などの最適化を適用したうえで、CPU・GPU・NPUのいずれでも同じモデルを実行できます。
モデル変換はovc/convert_model(Model Optimizerは廃止)
かつて変換に使われたModel Optimizer(moコマンド)は2025.0で廃止されました。現在は、CLIのovc(OpenVINO Model Converter)か、Python APIのopenvino.convert_model()を使います(いずれも2023.1で導入)。ONNXモデルはそのまま読み込めるほか、PyTorchモデルもメモリ上のオブジェクトから直接変換できます。ONNX自体の仕組みはONNXとは?モデル変換・推論の仕組みと使い方で詳しく解説しています。
ovc model.onnx --output_model model_ir
# Pythonから変換する場合
import openvino as ov
ov_model = ov.convert_model("model.onnx")
ov.save_model(ov_model, "model.xml")
古い記事にある「学習済みモデルをModel OptimizerでIRに変換する」という記述は、現行版ではovcへの読み替えが必要です。
インストールと最小の推論コード(Python/C++)
導入はpipで完結します。パッケージ構成も整理され、以前必要だったopenvino-devは不要になりました。
pip install openvino|対応OSとPythonバージョン
ランタイム一式はpip install -U openvinoだけで入ります(変換ツールも同梱)。かつてのopenvino-devは2025年以降は配布されていないため、インストールしてはいけません。対応環境はPython 3.10以上で、Windows(x86-64)、macOS(ARM64・11.0以上)、Linux(x86-64・ARM64)が対象です。apt/yum/conda/Docker配布も用意されています。
python -m venv .venv && source .venv/bin/activate
pip install -U openvino
Pythonでの推論(API 2.0:ov.Core)
推論はAPI 2.0(2022.1〜)のov.Core()を起点に書きます。旧来のfrom openvino.inference_engine import IECoreは2024.0で廃止されており動きません。
import openvino as ov
core = ov.Core()
model = core.read_model("model.xml") # IRやONNXを読み込み
compiled = core.compile_model(model, "CPU") # 実行先は "GPU" や "NPU" も指定可
result = compiled(input_tensor)[compiled.output(0)]
C++での推論
C++でも同じAPI 2.0のov::Coreを使います。旧InferenceEngine::CoreやReadNetwork/LoadNetworkは使いません。
#include <openvino/openvino.hpp>
ov::Core core;
auto model = core.read_model("model.xml");
auto compiled = core.compile_model(model, "CPU");
auto request = compiled.create_infer_request();
request.infer();
INT8量子化と重み圧縮によるモデル軽量化(NNCF)
推論をさらに速く・軽くする定番が量子化です。OpenVINOではNNCF(Neural Network Compression Framework、pip install nncf)が担当します。用途は主に2つです。
1つ目はINT8への学習後量子化(PTQ)で、FP32の重みや演算を8ビットに落として演算量とメモリを削減します。少量のキャリブレーションデータを渡すだけで実行でき、CNNなど従来型モデルの高速化に効きます。2つ目は重み圧縮(weight compression)で、LLMの重みを4ビットや8ビットへ圧縮してメモリ使用量を抑えます。生成AIをNPUや内蔵GPUで動かす際に有効です。
import nncf
# 従来型モデルのINT8量子化(PTQ)
quantized = nncf.quantize(model, calibration_dataset)
# LLMの重みを4bit・8bitへ圧縮
from nncf import compress_weights
compressed = compress_weights(model)
NNCFはOpenVINOのIRだけでなくPyTorchやONNXにも対応し、精度低下が気になる場合は量子化対応学習(QAT)も選べます。
OpenVINO GenAIによるLLMのローカル推論
生成AI向けのOpenVINO GenAI(pip install openvino-genai、2024年系で追加)は、LLMの推論パイプラインを短いコードで構築できるライブラリです。テキスト生成・ストリーミング出力・連続バッチ処理や、JSON/正規表現/文法で出力を制約する構造化生成をサポートし、PythonとC++の両方から使えます。
import openvino_genai as ov_genai
pipe = ov_genai.LLMPipeline("model_dir", "NPU") # CPUやGPUも指定可
print(pipe.generate("日本の首都はどこですか?", max_new_tokens=100))
前述の重み圧縮と組み合わせれば、クラウドのGPUを使わずにCore Ultra搭載PCのNPUや内蔵GPUでLLMを動かす、といったローカル推論が現実的になります。
本番デプロイ:OpenVINO Model Server(OVMS)とエッジ/クラウド
アプリに直接組み込むほかに、推論をサーバー化して複数クライアントから呼ぶ構成もよく使われます。
OVMSでREST/gRPC・OpenAI互換APIとして配信
OpenVINO Model Server(OVMS)は、モデルをコンテナ内のリポジトリに置いて起動するだけで、REST/gRPC経由の推論サーバーになります。自動バッチ処理やモデルのバージョン管理を備え、生成AI向けにはOpenAI互換APIも提供されるため、既存のクライアントコードから差し替えやすいのが利点です。KubernetesではKServeとの連携が推奨方向で、旧来の専用オペレーターは非推奨化が進んでいます。
エッジとクラウドの使い分け
OpenVINOはエッジ端末とクラウドサーバーのどちらでも同じIRを実行できます。カメラやゲートウェイなど現場側で低遅延に推論したい場合はエッジで、大量リクエストをスケールさせたい場合はクラウドのOVMSで、と役割分担できます。現場でAIを動かす設計判断はエッジAIとは?クラウドAIとの違い・仕組み・実装の判断基準で整理しています。
OpenVINOに関するよくある質問
OpenVINOのライセンスは何ですか。商用利用は無料でできますか
ツールキット本体はApache License 2.0で、商用利用・改変・再配布が無料で認められています。再配布する場合のみ、著作権表示とLICENSE・NOTICEの保持、改変点の明示という最小限の義務があります。自社内で推論に使うだけなら表示義務は基本的に発生しません。ただし推論に使う学習済みモデルは本体と別ライセンスなので、そちらの商用可否は個別に確認してください。
AMD CPUやNVIDIA GPUでもOpenVINOは動きますか
AMD CPUはx86として実行できますが、最適化はIntelハードウェア向けで公式認定ではありません。NVIDIA GPUは本体では非対応です。コミュニティ製の非公式プラグインは存在しますが、NVIDIA GPUで推論するならTensorRTやONNX Runtimeのほうが素直です。
Model Optimizer(mo)が見つかりません。モデル変換はどうしますか
Model Optimizerは2025.0で廃止されました。現在はCLIのovc、またはPythonのopenvino.convert_model()を使います。ONNXは変換せずそのままread_model()で読み込むこともできます。
ONNXやPyTorchのモデルはそのまま使えますか
ONNXモデルはIRへ変換せず直接読み込めます。PyTorchモデルはメモリ上のオブジェクトからconvert_model()でIRに変換できます。TensorFlowやKerasからの変換にも対応します。ONNXの詳細はONNXとは?モデル変換・推論の仕組みと使い方を参照してください。
NPUで推論するには何が必要ですか
Core Ultra(Meteor Lake)以降のNPUが対象で、pip install openvinoの標準パッケージに含まれます。コード上で実行先を"NPU"に指定するだけで動きます。LLMをNPUで動かす場合は、NNCFの重み圧縮でメモリを抑えるのが実用的です。