嵌入速度提升14倍:Manticore 中 ONNX 路径的重构之道
Manticore Search 重构了其 ONNX 嵌入处理路径,通过优化模型加载、内存管理和执行流程,实现了最高 14 倍的嵌入生成速度提升。文章详细介绍了从最初的原型设计到性能瓶颈分析,再到最终优化的技术决策过程,为使用 ONNX 进行向量搜索的应用提供了显著的性能优化参考。
背景速读
Manticore Search 是一个开源的搜索引擎(C++ 编写,从 Sphinx Search 分叉而来),主要面向全文搜索和数据库查询加速。ONNX(Open Neural Network Exchange)是一种开放的深度学习模型交换格式,让不同框架训练的模型能在不同平台上运行。本文讲的是 Manticore 团队重写其 ONNX 推理路径,将向量嵌入(embedding)生成速度提升了 14 倍——这对做语义搜索或 AI 搜索应用的用户很关键,因为嵌入生成通常是性能瓶颈。背景是:Manticore 从 6.2 版开始加入向量搜索和 ONNX 支持,但最初的实现在批处理和多线程方面效率不高。这次优化让 Manticore 在大规模向量索引场景下更具竞争力,直接对标 Elasticsearch 的向量搜索功能和专门的向量数据库。