HeadlinesBriefing favicon HeadlinesBriefing.com

Manticore Search añade fragmentación vectorial

Hacker News •
×

Imagina que estás construyendo búsqueda sobre la documentación interna de tu equipo: guías, runbooks, postmortems. Tienes una tabla con incrustaciones automáticas: insertas texto, Manticore ejecuta el modelo y rellena la columna vectorial por ti. Cargas un documento de 4000 palabras. La inserción funciona. La búsqueda funciona. Excepto que el modelo tiene una ventana de entrada de 512 tokens, y ese documento tiene unos 5000 tokens. El modelo leyó las primeras 380 palabras y descartó las otras 3600.

Manticore ahora maneja esto en la definición de la tabla: añade chunk_strategy a la columna vectorial en CREATE TABLE, y Manticore divide cada documento en fragmentos, incrusta cada fragmento y busca en todos ellos. Cinco estrategias: truncate, mean, fixed, recursive, sentence. Un documento sigue siendo un solo resultado de búsqueda. Los fragmentos compiten individualmente, y Manticore devuelve el documento una vez, con knn_dist() informando la distancia a su fragmento más cercano. k cuenta documentos, no fragmentos.

Medido en el manual de Manticore (189 páginas, ~298k palabras): recall@5 pasó del 55,1 % al 83,3 % y MRR de 0,44 a 0,70, con ~2,5× la RAM y ~4× el tiempo de ingesta. Las consultas nunca se fragmentan. Una consulta es lo bastante corta para incrustarse entera; solo los documentos almacenados se dividen.