Crea la ricerca semantica rapidamente
La ricerca semantica è uno strumento eccellente per aiutare i tuoi clienti—o i tuoi dipendenti—a trovare i prodotti o le informazioni giusti. Può persino far emergere informazioni difficili da indicizzare per risultati migliori. Detto questo, se le tue metodologie semantiche non vengono implementate per funzionare rapidamente, non ti saranno di alcuna utilità. Il cliente o il dipendente non resterà semplicemente ad aspettare mentre il sistema si prende il suo tempo per rispondere alla sua query—e probabilmente altre mille vengono acquisite nello stesso momento.
Come puoi rendere veloce la ricerca semantica? Una ricerca semantica lenta non sarà sufficiente.
Fortunatamente, questo è il tipo di problema che Lucidworks ama risolvere. Di recente abbiamo testato un cluster di dimensioni modeste—continua a leggere per maggiori dettagli—che ha portato a 1500 RPS (richieste al secondo) su una raccolta di oltre un milione di documenti, con un tempo medio di risposta di circa 40 millisecondi. Questa sì che è una velocità notevole.
Implementare la ricerca semantica
Per rendere possibile una magia di machine learning fulminea, Lucidworks ha implementato la ricerca semantica utilizzando l’approccio della ricerca vettoriale semantica. Ci sono due parti critiche.
Parte uno: il modello di machine learning
Innanzitutto, hai bisogno di un modo per codificare il testo in un vettore numerico. Il testo potrebbe essere una descrizione di prodotto, una query di ricerca di un utente, una domanda o persino una risposta a una domanda. Un modello di ricerca semantica viene addestrato a codificare il testo in modo tale che il testo semanticamente simile ad altro testo venga codificato in vettori numericamente “vicini” tra loro. Questo passaggio di codifica deve essere rapido per supportare le mille o più possibili ricerche dei clienti o query degli utenti in arrivo ogni secondo.
Parte due: il motore di ricerca vettoriale
In secondo luogo, hai bisogno di un modo per trovare rapidamente le migliori corrispondenze alla ricerca del cliente o alla query dell’utente. Il modello avrà codificato quel testo in un vettore numerico. Da lì, devi confrontarlo con tutti i vettori numerici nel tuo catalogo o negli elenchi di domande e risposte per trovare quelle migliori corrispondenze—i vettori che sono “più vicini” al vettore della query. Per questo, avrai bisogno di un motore vettoriale in grado di gestire tutte quelle informazioni in modo efficace e a velocità fulminea. Il motore potrebbe contenere milioni di vettori e tu vuoi davvero solo le migliori venti o giù di lì corrispondenze alla tua query. E naturalmente, deve gestire circa mille query di questo tipo ogni secondo.
Per affrontare queste sfide, abbiamo aggiunto il motore di ricerca vettoriale Milvus nella nostra release Fusion 5.3. Milvus è un software open-source ed è veloce. Milvus utilizza FAISS (Facebook AI Similarity Search), la stessa tecnologia che Facebook utilizza in produzione per le proprie iniziative di machine learning. Quando necessario, può funzionare ancora più velocemente su GPU. Quando Fusion 5.3 (o superiore) viene installato con il componente di machine learning, Milvus viene installato automaticamente come parte di quel componente, così puoi attivare tutte queste funzionalità con facilità.
La dimensione dei vettori in una determinata raccolta, specificata quando la raccolta viene creata, dipende dal modello che produce quei vettori. Ad esempio, una determinata raccolta potrebbe memorizzare i vettori creati dalla codifica (tramite un modello) di tutte le descrizioni dei prodotti in un catalogo prodotti. Senza un motore di ricerca vettoriale come Milvus, le ricerche di similarità non sarebbero fattibili sull’intero spazio vettoriale. Quindi, le ricerche di similarità dovrebbero essere limitate a candidati preselezionati dallo spazio vettoriale (ad esempio, 500) e avrebbero sia prestazioni più lente sia risultati di qualità inferiore. Milvus può memorizzare centinaia di miliardi di vettori su più raccolte di vettori per garantire che la ricerca sia veloce e i risultati siano pertinenti.
Utilizzare la ricerca semantica
Torniamo al workflow di ricerca semantica, ora che abbiamo imparato un po’ perché Milvus potrebbe essere così importante. La ricerca semantica ha tre fasi. Durante la prima fase, il modello di machine learning viene caricato e/o addestrato. Successivamente, i dati vengono indicizzati in Milvus e Solr. La fase finale è la fase di query, quando avviene la ricerca vera e propria. Di seguito ci concentreremo su queste ultime due fasi.
Indicizzazione in Milvus
Diagramma architetturale per l’indicizzazione in Milvus.
Come mostrato nel diagramma sopra, la fase di query inizia in modo simile alla fase di indicizzazione, solo con query in arrivo invece di documenti. Per ogni query:
- La query viene inviata alla pipeline di indicizzazione Smart Answers.
- La query viene quindi inviata al modello ML.
- Il modello ML restituisce un vettore numerico (crittografato dalla query). Ancora una volta, il tipo di modello determina la dimensione del vettore.
- Il vettore viene inviato a Milvus, che quindi determina quali vettori, nella raccolta Milvus specificata, corrispondono meglio al vettore fornito.
- Milvus restituisce un elenco di ID univoci e distanze corrispondenti ai vettori determinati nel passaggio quattro.
- Una query contenente tali ID e distanze viene inviata a Solr.
- Solr restituisce quindi un elenco ordinato dei documenti associati a tali ID.
Test di scalabilità
Per dimostrare che i nostri flussi di ricerca semantica funzionano con l’efficienza che richiediamo per i nostri clienti, eseguiamo test di scalabilità utilizzando script Gatling su Google Cloud Platform con un cluster Fusion con otto repliche del modello ML, otto repliche del servizio di query e una singola istanza di Milvus. I test sono stati eseguiti utilizzando gli indici Milvus FLAT e HNSW. L’indice FLAT ha un recall del 100%, ma è meno efficiente, tranne quando i dataset sono piccoli. L’indice HNSW (Hierarchical Small World Graph) offre comunque risultati di alta qualità e ha prestazioni migliori su dataset più grandi.
Vediamo alcuni numeri di un esempio recente che abbiamo eseguito:
Prestazioni degli indici Milvus FLAT e HNSW su un dataset piccolo.
Prestazioni degli indici Milvus FLAT e HNSW su un dataset medio.
Prestazioni degli indici Milvus FLAT e HNSW su un dataset grande.
Per iniziare
Le pipeline Smart Answers sono progettate per essere facili da usare. Lucidworks offre modelli pre-addestrati facili da distribuire e generalmente producono buoni risultati, anche se addestrare i propri modelli, insieme ai modelli pre-addestrati, offrirà i risultati migliori. Contattaci oggi stesso per scoprire come puoi implementare queste iniziative nei tuoi strumenti di ricerca per alimentare risultati più efficaci e piacevoli.
Questo blog è ripubblicato da: https://lucidworks.com/post/how-to-build-fast-semantic-search/?utm_campaign=Oktopost-Blog+Posts&utm_medium=organic_social&utm_source=linkedin
Continua a leggere

Zilliz Cloud BYOC Now Available Across AWS, GCP, and Azure
Zilliz Cloud BYOC is now generally available on all three major clouds. Deploy fully managed vector search in your own AWS, GCP, or Azure account — your data never leaves your VPC.

Why Teams Are Migrating from Weaviate to Zilliz Cloud — and How to Do It Seamlessly
Explore how Milvus scales for large datasets and complex queries with advanced features, and discover how to migrate from Weaviate to Zilliz Cloud.

DeepSeek-VL2: Mixture-of-Experts Vision-Language Models for Advanced Multimodal Understanding
Explore DeepSeek-VL2, the open-source MoE vision-language model. Discover its architecture, efficient training pipeline, and top-tier performance.



