14倍高速なエンベディング:ManticoreにおけるONNXパスの再構築方法
Manticore SearchがONNX(Open Neural Network Exchange)を使用したエンベディング生成のパフォーマンスを最大14倍改善した方法について解説。内部パイプラインの再設計、メモリ管理の最適化、バッチ処理の改善により、ベクトル検索の速度と効率が大幅に向上した。
背景メモ
- Manticore Searchは、オープンソースの全文検索エンジン。Sphinx Searchのフォークとして始まり、現在は独自開発が進んでいる。主に高速な検索性能と、MySQL互換のクエリ構文が特徴。
- ONNX (Open Neural Network Exchange) は、機械学習モデルを異なるフレームワーク間で相互運用するためのオープン標準フォーマット。AzureやPyTorch、TensorFlowなど多くのプラットフォームが対応している。
- ベクトル埋め込み(embeddings)は、テキストや画像などを固定長の数値ベクトルに変換したデータ。RAG(検索拡張生成)やセマンティック検索の基盤技術として、近年の検索エンジンに不可欠な機能となっている。
- この記事ではManticoreがONNXランタイムを利用した埋め込み生成のパイプラインを刷新。旧実装(1バッチに1件ずつ処理)から、バッチ処理とメモリ管理の最適化により、最大14倍の速度向上を達成したと報告している。