本章要回答的三个问题:推理部署这件事,为什么不能拿着训练框架硬扛?OpenVINO 到底由哪些部件组成、各管什么?以及最实际的一问——我的下一个项目,该选 OpenVINO、TensorRT 还是 ONNX Runtime?
训练和推理是两种性格完全不同的工作。训练可以慢、可以贵、可以挑环境,反正跑完一次就存档;推理却要 7×24 小时面对真实流量、真实硬件、真实功耗墙。问题出在大多数团队的技能栈是训练侧长出来的:会用 PyTorch 写模型,不代表知道为什么同一个模型在推理阶段会慢好几倍——图没静态化、算子没融合、精度没用对、硬件特性没吃到。这一章先把推理战场的地形图铺开:OpenVINO 从哪里来、由什么组成、适配哪些硬件,最后正面回答选型问题。不看地形就进场,后面每一章的坑都会踩得更疼。
另一个原因是生态变化太快。OpenVINO 这几年的版本演进改掉了旧工具链的很多习惯(比如 ovc 取代了老的 mo 转换器、NNCF 取代了 POT),网上能搜到的教程新旧混杂。这一章会帮你建立以当前 API 2.0 为准的心智模型,避免被过时资料带偏。
对照开头的三个问题,读完本章你应当能:说清推理与训练在工程目标上的本质差异,以及中间表示、图优化、硬件插件这三层机制分别解决什么;画出 OpenVINO 工具链全景,知道模型转换、运行时、压缩库、模型库各自的位置;对 Intel CPU、核显、独显、NPU 的代际与能力有基本判断,不再把「有 GPU」当成一句无意义的话;最后,拿着自己项目的约束条件(硬件存量、延迟要求、团队语言栈),走一遍 1.4 节的选型对比,得出有依据的结论而不是道听途说。
| 节号 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 1.1 OpenVINO 定义与技术演进 | 它是什么,为什么长成今天这样 | 版本演进的因果链与 API 2.0 心智模型 |
| 1.2 核心组件与工具链全景 | 它由什么组成 | 工具链全景图与组件分工表 |
| 1.3 硬件支持体系与设备代际 | 它能跑在什么上 | 设备代际对照与异构调度概念 |
| 1.4 三大推理运行时选型对比 | 凭什么选它 | 选型决策树与硬件适配矩阵 |
四节的推进逻辑是「从抽象到具体」:先建立定义与历史脉络,再拆开看组件,然后落到物理硬件,最后收拢成一张能直接拿来决策的对比表。1.4 节是本章的出口,也是全书的第一个决策点。
本章的结构关系可以浓缩成一张图:历史与组件是「认知层」,硬件与选型是「决策层」,决策层依赖认知层。
带着五个问题自测,答得上来再进下一章。一问:推理与训练在工程目标上的本质差异是什么?能不能用「训练允许慢而贵、推理要求快而稳」之外的因果语言把它讲给产品同事听。二问:OpenVINO 的三段式工作里,「编译」这一步做对了什么,让同一个模型在不同设备上表现迥异?三问:核显与独立显卡同样是 GPU,1.3 节为什么坚持把它们分开讨论?各自的舒适区是什么。四问:1.4 节的选型决策树,第一层分叉的判据是性能还是硬件存量?为什么这样排序。五问:如果你的项目明天就要立项,约束只有「预算有限、设备未知、延迟要求宽松」,你选哪条路线,理由是什么。五问中第四、第五问没有标准答案,但有站得住与站不住的论证之分——本章教的判断框架,就是为了让你的论证站得住。若某几问答得吃力,回读时优先补对应小节:前两问对应 1.1 与 1.2 的认知层,后三问对应 1.3 与 1.4 的决策层,本章的地图结构也正是这两层的叠加。
本章不要求任何推理框架的使用经验,但有三样东西最好备着:一是机器学习基本概念,知道模型、权重、张量是什么;二是一台能装 Python 的机器,最好带 Intel 核显或较新的酷睿处理器,方便后续章节动手;三是对自己项目约束的清醒认识——目标硬件是什么、延迟预算多少、团队主力语言是 Python 还是 C++。1.4 节的选型练习会直接用到这三样。
选型做完,假设你留下了 OpenVINO(哪怕没留,第 2 章的转换思想也通用),下一站就是第 2 章:模型怎么变成 IR。那里会遇到本书第一个高频故障点——算子不支持与形状不匹配,我们会给出完整的转换流程与排错路径。