为什么我们自研 C++ 推理引擎
Why we write our own C and C++ inference engines

大多数 LocalAI 后端只是封装了别人的引擎,但这并非总是最优解。我们亲手从零编写了 18 个 C 或 C++ 后端,只为摆脱 Python 依赖和庞大的 CUDA 栈。以 vllm.cpp 为例,它将 9.1 GiB 的 Python 环境压缩为 66 MiB 的二进制文件,性能却与原生 vLLM 持平。在 depth-anything.cpp 中,通过缓存位置嵌入,CPU 推理速度比 PyTorch 快 1.31 倍,内存占用仅为 27%。我们的原则很明确:先确保与参考实现完全一致,再追求速度。虽然维护成本高昂,但当模型缺乏 C++ 实现或 Python 依赖过重时,自研引擎是唯一的出路。
一个既快又略有错误的移植毫无价值,如果没有针对每个组件的校验,你可能要几个月后才发现它是错的。
- dennis16384
我在 Model2Vec 静态嵌入器和 NER 推理(两者都是 GGUF 格式,编译为 WASM)上也取得了类似的成果,从 ONNX Runtime 移植到了纯 C。Wasm 体积从 30Mb 降到了 300kb,速度还提升了 1.5 倍。如果为了性能或分发体积,这绝对值得。
- stephbook
应该先写点自己的博客文章啊。
- adithyassekhar
你得到的结果是:X 是 A,Y 是 B。