nogawanogawa / paper_memo

4 stars 0 forks source link

Vector Search with OpenAI Embeddings: Lucene Is All You Need #97

Closed nogawanogawa closed 11 months ago

nogawanogawa commented 11 months ago

論文URL

https://arxiv.org/abs/2308.14963

著者

Jimmy Lin, Ronak Pradeep, Tommaso Teofili, Jasper Xian

会議

(なし)

背景

昨今のNNの検索への応用は、最近ではembeddingによって表現される表現学習に焦点が当てられている。

現在では、embeddingを用いた検索には多数のembeddingを管理する必要があり、ベクトルデータベースが必要といった主張も少なくない。

現在広く普及しているLuceneベースの検索エコシステムは、表現学習の最近のトレンドへの適応が遅れているかもしれないが、一方で大きな投資を行っており、今後ベクトルデータベースなしで検索にembeddingに組み込む際の機能的な差分は見当たらない。

このように、embeddingを用いた検索は有望であるが、そのためにベクトルデータベースが必要であるということにはならない。

目的

追加のベクトルデータベースなしでembedding検索が十分実用的であることを示す。

アプローチ

ひとことメモ

https://twitter.com/_stakaya/status/1697261347229311104?s=20

nogawanogawa commented 11 months ago

背景

昨今のNNの検索への応用は、最近ではembeddingによって表現される表現学習に焦点が当てられている。

現在では、embeddingを用いた検索には多数のembeddingを管理する必要があり、ベクトルデータベースが必要といった主張も少なくない。

現在広く普及しているLuceneベースの検索エコシステムは、表現学習の最近のトレンドへの適応が遅れているかもしれないが、一方で大きな投資を行っており、今後ベクトルデータベースなしで検索にembeddingに組み込む際の機能的な差分は見当たらない。

このように、embeddingを用いた検索は有望であるが、そのためにベクトルデータベースが必要であるということにはならない。

nogawanogawa commented 11 months ago

目的

追加のベクトルデータベースなしでembedding検索が十分実用的であることを示す。

アプローチ

nogawanogawa commented 11 months ago

基本的なembeddingを用いた検索の構成

image

クエリを文書を密なベクトルに変換し、スコアの上位k件を応答する形で実現するのが基本的な構成になっている。

ベクトル検索にはhierarchical navigable small-world networks (HNSW)が使用されるのが現状最も一般的に受け入れられている。Faissなどで実装されていたが、2021年末にLuceneでも実装されている。

つまり、embeddingを用いた検索を行うに当たって、他のベクトルデータベースと機能的な差分はなく、あるのはパフォーマンスの差分だけということになる。

nogawanogawa commented 11 months ago

実験

結果

image

速度面

機能面

必要な機能はすべてLuceneのソース・トランクにマージされているにもかかわらず、すべてのパッチを組み込んだ公式リリースは(少なくとも2023年8月初旬に実験を行った時点では)作成されていない

ただし、これは些細な問題で時間の問題で他のベクトルデータベースと同様にLuceneでもembeddingを取り扱えるようになるだろうとのこと。