ChatPaper.aiChatPaper

BM25S: Um Größenordnungen schnellere lexikalische Suche durch eifriges spärliches Scoring.

BM25S: Orders of magnitude faster lexical search via eager sparse scoring

July 4, 2024
Autoren: Xing Han Lù
cs.AI

Zusammenfassung

Wir stellen BM25S vor, eine effiziente Python-basierte Implementierung von BM25, die nur von Numpy und Scipy abhängt. BM25S erreicht im Vergleich zum beliebtesten Python-basierten Framework eine bis zu 500-fache Beschleunigung, indem es BM25-Werte während des Indexierens eifrig berechnet und in dünnen Matrizen speichert. Es erzielt auch erhebliche Beschleunigungen im Vergleich zu hoch optimierten Java-basierten Implementierungen, die von beliebten kommerziellen Produkten verwendet werden. Schließlich reproduziert BM25S die genaue Implementierung von fünf BM25-Varianten basierend auf Kamphuis et al. (2020), indem es die eifrige Bewertung auf nicht-dünnen Varianten mit einer neuartigen Score-Shifting-Methode erweitert. Der Code ist unter https://github.com/xhluca/bm25s zu finden.
English
We introduce BM25S, an efficient Python-based implementation of BM25 that only depends on Numpy and Scipy. BM25S achieves up to a 500x speedup compared to the most popular Python-based framework by eagerly computing BM25 scores during indexing and storing them into sparse matrices. It also achieves considerable speedups compared to highly optimized Java-based implementations, which are used by popular commercial products. Finally, BM25S reproduces the exact implementation of five BM25 variants based on Kamphuis et al. (2020) by extending eager scoring to non-sparse variants using a novel score shifting method. The code can be found at https://github.com/xhluca/bm25s

Summary

AI-Generated Summary

PDF133November 28, 2024