Il framework in Rust promette modularità contro la rigidità di colossi come FAISS e DiskANN
Le usi così come sono, o niente. Se hai bisogno di adattare il motore di ricerca a un caso specifico, arrangiati. È il compromesso che per anni ha accompagnato le librerie più performanti per la ricerca approssimata dei vicini più prossimi — la tecnologia che permette a un algoritmo di trovare, in una frazione di secondo, i contenuti più simili a una query all’interno di un archivio di milioni di vettori. Poi, lo scorso gennaio 2025, viene pubblicato su arXiv un paper che descrive kANNolo, una libreria ANN orientata alla ricerca, scritta in Rust. Il nome suona quasi come un gioco, ma il progetto punta dritto al cuore del problema: la rigidità dei colossi consolidati.
Le catene di montaggio dei giganti
Chi sviluppa sistemi di ricerca basati su intelligenza artificiale parte quasi sempre da librerie già pronte, progettate per essere velocissime e scalare su enormi volumi di dati. Microsoft ha DiskANN, Google ha ScaNN, e poi ci sono NMSlib e il celebre FAISS di Meta, nato da Facebook AI Research. Funzionano bene, ma hanno un difetto strutturale: sono costruite attorno a scelte di progettazione rigide, con basi di codice difficili da adattare a esigenze diverse da quelle per cui sono state concepite. In pratica, dice il paper, soluzioni come NMSlib, DiskANN e ScaNN «sono tipicamente costruite attorno a specifiche tecniche di indicizzazione o quantizzazione, con codebase rigide che non supportano una facile integrazione di nuovi componenti o generalizzazioni oltre il design originale».
Non è pigrizia degli ingegneri che le hanno scritte: è una questione di priorità. Queste librerie sono state ottimizzate per spremere ogni goccia di velocità e precisione in scenari predefiniti. Il prezzo da pagare è la modularità. Se stai costruendo un motore di raccomandazione per un e-commerce e vuoi sperimentare una misura di similarità diversa, o passare da vettori densi a una rappresentazione sparsa senza cambiare tutto il resto, i giganti ti guardano e scrollano le spalle. Devi prendere il pacchetto intero, oppure riscrivere pezzi di codice da zero.
La tensione è tutta qui: potenza bruta contro flessibilità. Ed è il terreno su cui kANNolo ha scelto di piantare la sua bandierina.
Mattoncini di Rust invece di scatole nere
kANNolo non è l’ennesima libreria che prova a battere FAISS sul cronometro. È un framework il cui principio fondante è la componibilità. Per capirci, invece di consegnarti un motore già montato, ti dà un set di componenti — misure di similarità, tecniche di quantizzazione vettoriale, strutture di indice — e ti permette di combinarli come vuoi. Puoi prendere l’algoritmo HNSW, che costruisce un grafo a strati per navigare lo spazio vettoriale, e collegarlo alla Product Quantization, un metodo che comprime i vettori per risparmiare memoria e velocizzare i calcoli. Poi puoi decidere di cambiare la metrica di distanza, o passare da vettori densi a vettori sparsi, senza dover ricostruire l’intero sistema.
Questa flessibilità è figlia di una scelta di linguaggio. kANNolo è scritto in Rust, linguaggio noto per il controllo sulla memoria e le performance, ma anche per un ecosistema che facilita la creazione di interfacce modulari. «kANNolo introduce un’architettura completamente componibile per la ricerca ANN che supporta sia rappresentazioni vettoriali dense che sparse», si legge nel paper pubblicato su arXiv. E i risultati, stando ai test riportati, parlano chiaro: la libreria raggiunge prestazioni all’avanguardia nel compromesso tra velocità e precisione. Un modo elegante per dire che non devi sacrificare la personalizzazione sull’altare della performance.
L’aspetto più interessante è che kANNolo è esplicitamente pensata per la ricerca. Non è una cassetta degli attrezzi generica: ogni sua componente è orientata a chi sta costruendo un motore di ricerca vettoriale e ha bisogno di sperimentare, iterare, adattare. Se stai provando un nuovo tipo di embedding che genera vettori sparsi, puoi integrarlo senza dover cambiare l’intera pipeline. Se domani esce una tecnica di quantizzazione più efficiente, puoi innestarla nel framework già esistente.
Un’infrastruttura da plasmare, non un prodotto da subire
Per chi pubblica contenuti online, gestisce cataloghi di prodotti o offre servizi basati su ricerca semantica, questa modularità ha un risvolto molto concreto. Fino a ieri, costruire un sistema di ricerca interno significava scegliere una libreria e adattarsi alle sue rigidità, accettando compromessi su metriche di similarità, formati dei vettori o strutture degli indici. Con un approccio componibile come quello di kANNolo, la ricerca vettoriale può essere tarata con precisione sul contesto: un sito di notizie può ottimizzare per vettori sparsi che rappresentano meglio il testo scritto, mentre un e-commerce può sperimentare metriche diverse per suggerire prodotti correlati, senza essere vincolato a ciò che la libreria ha deciso a monte.
Certo, kANNolo resta un progetto giovane e orientato alla ricerca, con tutto ciò che questo comporta in termini di supporto, documentazione e adozione su larga scala. Ma il segnale che manda è netto: la direzione della ricerca vettoriale non è più solo «più veloce», ma «più adattabile». La potenza computazionale, da sola, non basta più. Chi sviluppa motori di ricerca oggi ha bisogno di strumenti che si pieghino ai casi d’uso, non di monolìti che impongano una sola strada.
Per gli sviluppatori di motori di ricerca AI, kANNolo non è solo un’altra libreria da aggiungere al confronto delle prestazioni. È la fine dell’era delle soluzioni preconfezionate. La ricerca vettoriale smette di essere un prodotto da acquistare e diventa, finalmente, un pezzo di infrastruttura da plasmare in base alle proprie esigenze. Come dire: niente più scatole nere, solo mattoncini.
