Zpět na domů

Předfiltrace KNN Manticore Search s ACORN-1

Předfiltrace KNN v Manticore Search optimalizuje HNSW pro dotazy s atributovými filtry. ACORN-1 snižuje výpočty vzdáleností, automatický fullscan pro malé podmnožiny. Podrobné příklady SQL a JSON.

ACORN-1 v Manticore: jak zrychlit KNN s filtry
Advertisement 728x90

Předfiltrace KNN v Manticore Search: optimalizace HNSW s ACORN-1

Předfiltrace KNN v Manticore Search verze 19.0.1+ integruje atributní filtry přímo do přímého průchodu grafem HNSW. To odstraňuje neefektivitu postfiltrace, kde KNN skenuje celý dataset a filtry se aplikují dodatečně. V katalogu s 10 miliony produktů s filtrem podle kategorie 'electronics' (5 % dokumentů) může postfiltrace vrátit méně než požadovaných k výsledků, což plýtvá prostředky na nerelevantní uzly.

Předfiltrace kontroluje podmínky ve fázi zkoumání kandidátů, zajišťuje přesných k výsledků z vhodných dokumentů.

Problémy postfiltrace a přechod k předfiltraci

V postfiltraci HNSW ignoruje filtry: algoritmus najde k nejbližších vektorů globálně, pak odfiltruje neodpovídající. Při přísných filtrech (například category='electronics' AND price<500) graf zkoumá převážně nerelevantní oblasti, snižuje recall a zvyšuje latenci.

Google AdInline article slot

Příklad SQL dotazu s automatickou předfiltrací:

SELECT id, title, knn_dist()
FROM products
WHERE knn(embedding, (0.12, 0.45, 0.78, 0.33))
  AND category = 'electronics'
  AND price < 500
LIMIT 10;

Ekvivalent v JSON:

{
    "table": "products",
    "knn": {
        "field": "embedding",
        "query": [0.12, 0.45, 0.78, 0.33]
    },
    "query": {
        "bool": {
            "must": [
                { "equals": { "category": "electronics" } },
                { "range": { "price": { "lt": 500 } } }
            ]
        }
    },
    "limit": 10
}

Filtry category a price se kontrolují během průchodu HNSW.

Google AdInline article slot

Naivní předfiltrace: principy a omezení

Naivní přístup obchází HNSW standardně, ale přidává do prioritní fronty pouze uzly, které projdou filtrem. Neodpovídající uzly se účastní navigace, což zajišťuje spojitost grafu.

Omezení: vzdálenosti se počítají pro všechny sousedy, nezávisle na filtru. Při selektivitě 5 % je 95 % výpočtů (nejnáročnější operace) promrhaných.

ACORN-1 v Manticore: pokročilá optimalizace

Manticore implementuje ACORN-1 pro selektivní filtry (<60 % dokumentů):

Google AdInline article slot
  • Kontrola filtru před vzdáleností: sousedi se kontrolují na filtr před výpočtem vzdálenosti. Odfiltrovaní jsou přeskočeni bez hodnocení.
  • Adaptivní rozšíření: z neodpovídajících uzlů algoritmus přechází k jejich sousedům (až 3–4 úrovně), soustředě na hledání vhodných kandidátů.

To snižuje výpočty vzdáleností o 95 % při nízké selektivitě, urychluje vyhledávání bez ztráty kvality.

ACORN-1 se aktivuje automaticky při vysoké selektivitě.

Automatický výběr strategie provádění

Plánovač Manticore vyhodnocuje selektivitu podle histogramů atributů:

  • Standardní HNSW: >60 % dokumentů prochází filtrem — naivní předfiltrace.
  • ACORN-1: 1–60 % — optimalizovaný průchod.
  • Fullscan: <1 % (například 50 z 10 milionů) — přímé skenování odfiltrovaných dokumentů, obejití HNSW.

Srovnání nákladů: očekávaný počet navštívených uzlů HNSW vs. velikost odfiltrované podmnožiny.

Řízení režimů filtrace

Postfiltrace (prefilter=0 nebo "prefilter": false):

SELECT id, knn_dist()
FROM products
WHERE knn(embedding, (0.12, 0.45, 0.78, 0.33), { prefilter=0 })
  AND category = 'electronics'
LIMIT 10;

Úplný průchod (fullscan=1 nebo "fullscan": true):

SELECT id, knn_dist()
FROM products
WHERE knn(embedding, (0.12, 0.45, 0.78, 0.33), { fullscan=1 })
  AND category = 'electronics'
LIMIT 10;

Postfiltrace je vhodná pro případy, kde jsou důležití globální nejbližší sousedé nebo >95 % dokumentů prochází filtrem. Fullscan — pro malé odfiltrované množiny.

| Režim | Selektivita | Výhody | Nevýhody |

|-------|-------------|--------|----------|

| Postfiltrace | Vysoká (>95%) | Jednoduchost, předvídatelnost | Méně k výsledků |

| Předfiltrace (naivní) | Střední (60–95%) | Stabilní k výsledků | Režijní náklady |

| ACORN-1 | Nízká (1–60%) | Úspora výpočtů | Složitost implementace |

| Fullscan | Velmi nízká (<1%) | Přesná úplnost | Lineární složitost |

Co je důležité

  • Předfiltrace — výchozí pro KNN+atributy, garantuje k výsledků.
  • ACORN-1 šetří až 95 % výpočtů vzdáleností při selektivitě <60 %.
  • Automatický fullscan pro extrémně selektivní filtry.
  • Postfiltrace pro globální hodnocení nebo ladění.
  • Plánovač se přizpůsobuje per-dotaz/per-segment podle histogramů.

— Editorial Team

Advertisement 728x90

Číst dál