annbench: 近似最近傍探索アルゴリズムのベンチマーク
by
Yusuke Matsui
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
annbench: 近似最近傍探索 アルゴリズムのベンチマーク 松井勇佑 東京大学 生産技術研究所 助教 http://yusukematsui.me 2020/3/24, ML@Loft #11. 類似画像/テキスト検索, LT 1
Slide 2
Slide 2 text
0.23 3.15 0.65 1.43 探索 0.20 3.25 0.72 1.68 ∈ ℝ 74 argmin ∈ 1,2,…, − 2 2 結果 1 , 2 , … , ∈ ℝ 近似最近傍探索 ➢個のベクトルがある ➢クエリが与えられたとき,一番近いベクトルを (近似的に)探す ➢速度,メモリ,精度のトレードオフ 2
Slide 3
Slide 3 text
どのライブラリ、どの手法を選べばいい? https://github.com/erikbern/ann-benchmarks ・・・などなど
Slide 4
Slide 4 text
4 ベンチマーク ➢ https://github.com/erikbern/ann-benchmarks ➢ 右上なほど良い ➢ 2020/3現在、トップはNMSLIBと NGT (yahoo japan)で競っている
Slide 5
Slide 5 text
5 ベンチマーク ➢ https://github.com/erikbern/ann-benchmarks ➢ 右上なほど良い ➢ 2020/3現在、トップはNMSLIBと NGT (yahoo japan)で競っている ➢このベンチマークは網羅的で非常に素晴らしいが、 ✓全て実行すると10時間以上かかる ✓パラメータを網羅的に調べた結果なので、解釈しにくい ✓faissに厳しい(ちゃんとパラメータ設定していない)
Slide 6
Slide 6 text
annbench: simple and lightweight benchmark for approximate nearest neighbor search https://github.com/matsui528/annbench # Install libraries pip install -r requirements.txt # Download dataset on ./dataset python download.py dataset=siftsmall # Evaluate algos. Results are on ./output python run.py dataset=siftsmall algo=annoy # Visualize python plot.py 精度高い 速い シンプル!
Slide 7
Slide 7 text
# Download dataset on ./dataset python download.py --multirun dataset=siftsmall,sift1m # Evaluate algos. Results are on ./output python run.py --multirun dataset=siftsmall,sift1m algo=linear,annoy,ivfpq,hnsw 複数データセットで複数アルゴリズムを試す ➢ Hydraによる パラメータ スイープ ➢ コンマで 区切るだけ
Slide 8
Slide 8 text
algo: name: ivfpq param_index: - M: 8 nlist: 100 - M: 16 nlist: 100 param_query: nprobe: - 1 - 2 - 4 - 8 - 16 ivfpq.yaml パラメータ設定
Slide 9
Slide 9 text
インタラクティブにパラメータ上書き # Use ivfpq.yaml (nprobe=[1,2,4,8,16]) python run.py algo=ivfpq dataset=sift1m # Override python run.py algo=ivfpq dataset=sift1m param_query.nprobe=[1,5,25]
Slide 10
Slide 10 text
annbench: simple and lightweight benchmark for approximate nearest neighbor search https://github.com/matsui528/annbench ➢ 是非使ってみてください! ➢ PR歓迎です! ➢ 探索の理論/応用の研究に興味がある企業の方、 学生の方、お声がけください http://yusukematsui.me