Come un importante rivenditore online indiano ha scalato il product matching con Milvus

Utilizzo della memoria inferiore del 75%
Spostato gli embedding dalla RAM allo storage a oggetti, eliminando la memoria come collo di bottiglia per la scalabilità.
Tempi di elaborazione 6 volte più rapidi
Riduci l'abbinamento del catalogo da giorni a ore nelle ricerche su larga scala.
~200 ms di latenza
Offerto una maggiore precisione su larga scala rispettando al contempo rigorosi obiettivi di latenza.
Maggiore flessibilità operativa
Il ridimensionamento indipendente dei nodi elimina le ricostruzioni complete dell’indice durante gli aggiornamenti.
Informazioni sull’azienda
Il cliente è una delle più grandi piattaforme di vendita al dettaglio online dell’India, spesso definita l’“Amazon dell’India”, che serve un pubblico nazionale in categorie quali elettronica, moda, generi alimentari e beni essenziali per la casa. Oltre al marketplace rivolto ai consumatori, l’azienda gestisce anche una divisione SaaS che fornisce soluzioni di commercio end-to-end per imprese e venditori online. Un componente chiave di questa offerta è un sistema di intelligence dei prezzi che aiuta i retailer a rimanere competitivi in un mercato in cui il prezzo resta uno dei fattori più influenti nel processo decisionale dei clienti.
Supportare prezzi accurati e in tempo reale su scala nazionale, tuttavia, ha introdotto sfide ingegneristiche significative. Il team doveva abbinare prodotti in un catalogo digitale in continua espansione — cresciuto da pochi milioni di SKU a decine di milioni — e aggiornarli quotidianamente su diversi grandi concorrenti, ciascuno con ampi inventari propri. Questa crescita esplosiva ha sopraffatto l’architettura esistente basata su keyword e FAISS, aumentando i costi infrastrutturali e rallentando i cicli di aggiornamento.
Per affrontare questi colli di bottiglia, il team ha migrato la propria pipeline di matching dei prodotti al database vettoriale Milvus. Grazie all’indicizzazione basata su disco e all’architettura distribuita di Milvus, ha ridotto significativamente i tempi di elaborazione e abbassato i costi operativi, abilitando un sistema più scalabile, sostenibile e ad alte prestazioni per la gestione dei prezzi di livello enterprise.
La sfida: scalare il matching dei prodotti a livello enterprise
La piattaforma di intelligence dei prezzi dell’azienda è alimentata da tre moduli principali: competitive intelligence (monitoraggio dei prezzi dei concorrenti tramite scraping e matching dei prodotti), dynamic pricing (adeguamenti basati su regole in funzione dei segnali di mercato) e assortment intelligence (identificazione delle lacune nel catalogo di un retailer). Man mano che la piattaforma integrava più clienti enterprise, il motore di matching dei prodotti alla base di queste funzionalità ha iniziato a mostrare segni di cedimento.
I retailer gestivano oltre 20 milioni di SKU, aggiornati quotidianamente o persino ogni ora, monitorando al contempo 10 o più concorrenti. Ogni catalogo concorrente aggiungeva altri 5 milioni di SKU da scansionare e confrontare, creando un carico di lavoro che cresceva quasi esponenzialmente.
Oltre alla scala, i dati non strutturati stessi erano disordinati: immagini dei prodotti con risoluzioni incoerenti, descrizioni scritte in stili diversi e la necessità di supportare sia corrispondenze esatte sia varianti “abbastanza simili”.
Anche la precisione era fondamentale. Persino un piccolo tasso di errore poteva incidere negativamente sulle raccomandazioni di prezzo, portando i retailer a perdere vendite quando gli articoli hanno un prezzo troppo alto, a perdere denaro quando hanno un prezzo troppo basso, o a ritrovarsi con inventario che non si muove, riducendo direttamente i ricavi ed erodendo la fiducia dei retailer nel sistema.
L’ottimizzazione delle risorse rappresentava un altro ostacolo importante. Il sistema doveva gestire in modo efficiente le risorse computazionali, inclusi CPU, memoria e storage per l’elaborazione continua dei dati e le query su enorme scala enterprise.
L’architettura legacy, costruita su un indice in-memory basato su FAISS su un singolo server, semplicemente non era progettata per questo livello di crescita dei dati. Gli embedding dei concorrenti venivano archiviati su disco locale, poi caricati periodicamente in memoria per la ricerca di similarità. Pur essendo funzionale a volumi più piccoli, il design cedeva su larga scala. L’uso della memoria aumentava vertiginosamente: archiviare circa 20 milioni di embedding a 1.024 dimensioni richiedeva quasi 400 GB di RAM, facendo impennare i costi infrastrutturali. Anche le prestazioni peggioravano, con alcuni processi end-to-end che richiedevano fino a 12 giorni per essere completati. Per i clienti che si aspettavano insight competitivi tempestivi, il sistema aveva chiaramente raggiunto i propri limiti.
Valutare i percorsi per scalare e scegliere Milvus
Di fronte a queste limitazioni critiche, il team di ingegneria ha considerato tre possibili percorsi per affrontare le proprie sfide di scalabilità.
Scalabilità verticale — passaggio a VM più grandi e ad alta intensità di memoria. Sebbene questa opzione potesse soddisfare temporaneamente i requisiti di prestazioni, i limiti fisici della soluzione sarebbero riemersi rapidamente, portando a costi significativamente maggiori. Chiaramente, si trattava solo di una soluzione tampone.
Estendere il loro database SQL con funzionalità di ricerca vettoriale. Dal punto di vista dell’integrazione, questo approccio era interessante, ma il team ha rapidamente compreso i rischi: sovraccaricare il database SQL primario avrebbe potuto rallentare sia le operazioni transazionali sia le query vettoriali, compromettendo l’affidabilità dell’intero sistema.
Adottare un database vettoriale dedicato progettato per la ricerca di similarità su larga scala. Questa si è rivelata l’opzione più promettente. Il team ha eseguito benchmark approfonditi su Milvus, Pinecone, Qdrant e Weaviate, testandone la velocità di inserimento, la latenza delle query, la precisione del filtraggio e la flessibilità di deployment. In queste valutazioni, Milvus è emerso come il chiaro leader.
Perché Milvus: fattori decisionali chiave
Durante la valutazione, Milvus è emerso come l’unica soluzione in grado di soddisfare tutti i requisiti, poiché affrontava direttamente le sfide di scalabilità e costo della piattaforma. Di seguito sono riportati i fattori chiave:
L’architettura distribuita di Milvus ha consentito la scalabilità orizzontale e un utilizzo efficiente delle risorse, offrendo al team la flessibilità necessaria per gestire miliardi di embedding senza sovradimensionare l’infrastruttura. Inoltre, il design configurabile di Milvus ha permesso al team di ingegneria di ottimizzare il sistema per soddisfare esattamente le esigenze di carico di lavoro delle loro applicazioni.
Un secondo elemento distintivo è stato DiskANN, l’algoritmo di indicizzazione basato su disco di Milvus. Riducendo i requisiti di memoria fino al 75% rispetto ai metodi in-memory come HNSW, DiskANN ha reso la ricerca su larga scala non solo fattibile, ma anche efficiente in termini di costi. In combinazione con il supporto per object storage come S3, ciò ha fornito alla piattaforma una base scalabile e conveniente.
Infine, le capacità di pre-filtraggio di Milvus si allineavano perfettamente alla strategia di ottimizzazione della ricerca del team, consentendo di restringere gli insiemi di candidati per categoria, brand o prezzo prima di eseguire una ricerca vettoriale. Questo ha ridotto significativamente lo spazio di ricerca, migliorando sia le prestazioni sia l’accuratezza.
La soluzione: creare il product matching su larga scala con Milvus
Dopo aver selezionato Milvus, il team di ingegneria del cliente ha progettato una nuova architettura ottimizzata sia per la scalabilità sia per la precisione.
La pipeline inizia con l’ingestione dei dati, in cui i cataloghi dei clienti e i dati dei competitor vengono raccolti tramite crawling e archiviati. Un livello di normalizzazione elabora quindi dati disordinati e non strutturati, come immagini e descrizioni dei prodotti incoerenti, trasformandoli in formati standardizzati. Successivamente, i modelli proprietari di machine learning del team, addestrati esplicitamente su dati e-commerce, generano vettori a 1024 dimensioni con float a 4 byte che catturano gli attributi chiave di ciascun prodotto. Questi embedding vengono indicizzati e archiviati in Milvus, dove la ricerca di similarità confronta gli embedding dei prodotti dei clienti con i cataloghi dei competitor utilizzando la similarità coseno in uno spazio ad alta dimensionalità.
La pipeline di ricerca segue un processo a più fasi. Inizia con il pre-filtraggio basato su attributi strutturati come categoria, brand e fascia di prezzo, restringendo l’insieme dei candidati. Milvus esegue quindi la ricerca di similarità vettoriale all’interno di questo sottoinsieme filtrato, seguita dal post-processing e dall’assegnazione di punteggi ai risultati. Infine, un filtro basato su soglia genera raccomandazioni, con revisione manuale applicata alle corrispondenze ad alta affidabilità. Questo approccio stratificato bilancia automazione e supervisione, garantendo sia velocità sia accuratezza su scala enterprise.
Adottando Milvus, il team ha accelerato i cicli di product matching riducendo al contempo in modo significativo i costi infrastrutturali. Ancora più importante, ha creato una base a prova di futuro in grado di supportare clienti enterprise con cataloghi enormi e scenari competitivi altamente dinamici.
I risultati: abbinamento dei prodotti scalabile, conveniente e accurato
La migrazione a Milvus ha trasformato il modo in cui la piattaforma di pricing intelligence gestisce l'abbinamento dei prodotti su scala enterprise. Ciò che un tempo era limitato da vincoli di memoria, lunghi cicli di elaborazione e operazioni rigide è diventato efficiente, accurato e pronto a scalare con la crescita enterprise.
Costi infrastrutturali inferiori: La precedente configurazione FAISS richiedeva il caricamento di tutti gli embedding in memoria, rendendo la scalabilità sia costosa sia poco pratica. Passando a Milvus, il team di engineering del cliente ha ridotto i requisiti di memoria fino al 75%, spostando lo storage su bucket S3 e GCP. Quello che prima era un ostacolo in termini di costi è ora una base sostenibile per l'espansione.
Tempi di elaborazione 6 volte più rapidi: I grandi processi di abbinamento da catalogo a catalogo che un tempo arrivavano a 12 giorni ora vengono completati in circa 2 giorni su 20M di ricerche. Pur rimanendo basato su batch, questo miglioramento di sei volte garantisce che l'intelligence competitiva resti sufficientemente aggiornata da supportare decisioni di pricing in tempo reale.
Maggiore accuratezza su larga scala: Per il pricing, la precisione non è negoziabile. Milvus ha offerto un'accuratezza superiore rispetto ad alternative come HNSW, rispettando al contempo l'obiettivo di latenza del team di ~200 ms per le query batch. Combinando filtri strutturati (categoria, brand, prezzo) con la ricerca per similarità vettoriale, il team ha ridotto al minimo gli abbinamenti errati costosi e ha acquisito fiducia nelle proprie raccomandazioni.
Maggiore flessibilità operativa: Con Milvus, il team non ha più bisogno di ricostruzioni complete dell'indice per gestire gli aggiornamenti. La sua architettura distribuita consente ai nodi di query, indice e dati di scalare indipendentemente. Un'integrazione ibrida con MySQL ha ulteriormente semplificato il workflow, combinando il filtraggio strutturato con la ricerca vettoriale per la massima efficienza.
Conclusione
Per il team dietro questa piattaforma, un migliore abbinamento dei prodotti ha significato più di una semplice elaborazione più rapida: ha creato una base più solida per l'intero motore di pricing. Adottando Milvus, hanno acquisito la capacità di gestire cataloghi enormi e disordinati con accuratezza e a un costo sostenibile. Utilizzando DiskANN per l'indicizzazione, un'architettura distribuita self-hosted per la scalabilità e un approccio ibrido integrato con i database esistenti, il team ha costruito un sistema sia pratico sia resiliente.
Questo cambiamento ha permesso loro di fornire insight competitivi affidabili e raccomandazioni di pricing su cui i clienti enterprise possono agire con fiducia. Con la crescita dei cataloghi e-commerce e l'intensificarsi della concorrenza, questa esperienza dimostra che i database vettoriali offrono un approccio pratico per ottenere sia scalabilità sia precisione: qualità ormai essenziali per rimanere competitivi in mercati in rapida evoluzione.
- Informazioni sull’azienda
- La sfida: scalare il matching dei prodotti a livello enterprise
- Valutare i percorsi per scalare e scegliere Milvus
- La soluzione: creare il product matching su larga scala con Milvus
- I risultati: abbinamento dei prodotti scalabile, conveniente e accurato
- Conclusione
Contenuto
Caso d'Uso
Settore
Commercio elettronico


