Hierarchical BM25: Lexical Search at Billion-Document Scale
Le BM25 hiérarchique permet une recherche lexicale interactive à l'échelle du milliard en remplaçant un index plat gourmand en mémoire par une architecture à deux niveaux qui utilise un petit index grossier résident pour sélectionner des groupes de documents pertinents, atteignant ainsi des limites fixes de mémoire et de latence tout en préservant un score exact pour le sous-ensemble extrait.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez que vous essayiez de trouver un fait précis dans une bibliothèque qui contient un milliard de livres. Dans le monde de l'informatique, c'est le défi de la « recherche lexicale » — trouver des documents basés sur des correspondances de mots exactes, comme la recherche de l'expression « BM25 hiérarchique » plutôt que simplement l'idée générale de celle-ci. Depuis des décennies, les ordinateurs se perfectionnent en la matière, mais il y a un piège : pour interroger un milliard de livres instantanément, il faut généralement conserver une carte massive de chaque mot de chaque livre dans la mémoire vive (RAM) de votre ordinateur. Cette carte est si énorme — environ 400 gigaoctets — qu'elle revient à essayer de porter toute la bibliothèque dans votre sac à dos pendant que vous courez. Si vous n'avez pas autant de mémoire, vous devez faire des allers-retours vers les étagères (le disque dur) pour chaque question, ce qui prend des secondes. Dans un monde où nous attendons des réponses en un clin d'œil, attendre quatre à douze secondes est aussi fastidieux que de regarder la peinture sécher ; cela brise l'expérience. Ce document s'attaque à ce problème précis : comment peut-on interroger un milliard de documents instantanément sans avoir besoin de la mémoire d'un supercalculateur ?
Les auteurs proposent une nouvelle méthode de recherche ingénieuse appelée BM25 hiérarchique. Au lieu d'essayer de mémoriser toute la bibliothèque à la fois, ils suggèrent une stratégie en deux étapes qui imite la façon dont un bibliothécaire humain vous aiderait. D'abord, ils organisent le milliard de documents en environ 1 000 « allées » ou groupes distincts basés sur leurs sujets. Ils construisent un petit index ultra-rapide de ces seules allées qui tient facilement en mémoire (environ 4,4 Go). Lorsque vous posez une question, l'ordinateur ne scanne pas chaque livre ; il consulte d'abord ce petit index pour déterminer quelles 40 allées sont les plus susceptibles de contenir la réponse. Il plonge ensuite uniquement dans ces allées spécifiques pour trouver les livres exacts.
La magie réside ici dans un compromis. Les auteurs admettent qu'en sautant les 960 autres allées, ils pourraient manquer l'absolue perfection de la réponse une fois de temps en temps. Ils appellent cela sacrifier la « sécurité du classement » (rank safety) — la garantie d'obtenir les dix résultats exacts à chaque fois. Cependant, ils soutiennent que dans les systèmes de recherche modernes, obtenir le dixième meilleur résultat au lieu du onzième importe rarement, car un second ordinateur (un « ré-classeur » ou reranker) va de toute façon les trier. Ce qui compte, en revanche, c'est la vitesse. En faisant ce compromis, ils parviennent à quelque chose de auparavant impossible : ils peuvent interroger un milliard de documents en environ 300 millisecondes (moins d'un tiers de seconde) en utilisant une infime quantité de mémoire.
Dans leurs tests, cette nouvelle méthode était de 4,7 à 5,6 fois plus rapide que l'ancienne méthode de recherche standard, même lorsque l'ancienne méthode utilisait plusieurs processeurs pour l'aider. Alors que l'ancienne méthode peinait à gérer plus de 3 questions par seconde, ce nouveau système pouvait en gérer jusqu'à 32 quand les « allées » étaient déjà « chaudes » et prêtes. Les auteurs ont également découvert un bug subtil dans la manière dont les différents groupes de livres étaient évalués les uns par rapport aux autres et l'ont corrigé, garantissant que lors de la recherche, les calculs soient parfaitement précis.
Cependant, les auteurs sont très prudents et ne prétendent pas que cette solution est parfaite. Ils déclarent explicitement que cette méthode est une approximation, et non une garantie. Ils ont mesuré son efficacité sur un test plus petit de 500 000 documents et ont constaté qu'en vérifiant seulement 5 % à 10 % des groupes, ils récupéraient environ 83 % à 92 % de la « qualité » d'une recherche complète. Ils suggèrent que cela tiendra probablement à l'échelle du milliard de documents, mais ils ne l'ont pas encore prouvé sur un ensemble de données réelles, naturelles et désordonnées. Ils notent également que leur méthode fonctionne mieux pour les questions longues et complexes (16 à 32 mots), qui sont courantes dans les systèmes d'IA modernes, alors que les anciennes méthodes étaient conçues pour des recherches web courtes et simples.
En résumé, ce document suggère que si vous êtes prêt à accepter une infime chance de manquer la meilleure réponse absolue, vous pouvez construire un moteur de recherche pour un milliard de documents qui est rapide, peu coûteux et qui tient dans la mémoire d'un ordinateur standard. C'est une victoire d'ingénierie pratique qui privilégie la vitesse et l'efficacité sur la perfection mathématique, reconnaissant que dans le monde réel, une réponse rapide et « assez bonne » est souvent préférable à une réponse « parfaite » mais lente.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.