🚀 Prova Zilliz Cloud, la versione completamente gestita di Milvus, gratuitamente—sperimenta prestazioni 10 volte più veloci! Prova Ora>>

milvus-logo
LFAI
  • Home
  • Blog
  • La storia di SmartNews: da utente Milvus a collaboratore attivo

La storia di SmartNews: da utente Milvus a collaboratore attivo

  • Scenarios
January 20, 2022
Milvus

Questo articolo è stato tradotto da Angela Ni.

Le informazioni sono ovunque nella nostra vita. Meta (precedentemente noto come Facebook), Instagram, Twitter e altre piattaforme di social media rendono i flussi di informazioni ancora più onnipresenti. Pertanto, i motori che gestiscono tali flussi di informazioni sono diventati un must nella maggior parte delle architetture di sistema. Tuttavia, in qualità di utenti delle piattaforme di social media e delle relative app, scommetto che sarete stati infastiditi da articoli, notizie, meme e altro ancora duplicati. L'esposizione a contenuti duplicati ostacola il processo di recupero delle informazioni e porta a una cattiva esperienza dell'utente.

Per un prodotto che si occupa di flussi di informazioni, è una priorità assoluta per gli sviluppatori trovare un processore di dati flessibile che possa essere integrato perfettamente nell'architettura del sistema per deduplicare notizie o pubblicità identiche.

SmartNews, valutata 2 miliardi di dollari, è l'azienda di app di notizie più quotata degli Stati Uniti. In passato era un utente di Milvus, un database vettoriale open-source, ma in seguito si è trasformata in un collaboratore attivo del progetto Milvus.

Questo articolo racconta la storia di SmartNews e spiega perché ha deciso di contribuire al progetto Milvus.

Una panoramica di SmartNews

SmartNews, fondata nel 2012, ha sede a Tokyo, in Giappone. L'app di notizie sviluppata da SmartNews è sempre stata ai primi posti nel mercato giapponese. SmartNews è l'app di notizie in più rapida crescita e vanta anche un'elevata viscosità di utenti nel mercato statunitense. Secondo le statistiche di APP Annie, alla fine di luglio 2021 la durata media mensile delle sessioni di SmartNews era al primo posto tra tutte le app di notizie, superiore alla durata cumulativa delle sessioni di AppleNews e Google News.

Con la rapida crescita della base di utenti e della viscosità, SmartNews deve affrontare ulteriori sfide in termini di meccanismo di raccomandazione e algoritmo di intelligenza artificiale. Tali sfide includono l'utilizzo di enormi caratteristiche discrete nell'apprendimento automatico (ML) su larga scala, l'accelerazione della ricerca di dati non strutturati con la ricerca di similarità vettoriale e altro ancora.

All'inizio del 2021, il team dell'algoritmo di dynamic Ad di SmartNews ha chiesto al team dell'infrastruttura AI di ottimizzare le funzioni di richiamo e interrogazione degli annunci pubblicitari. Dopo due mesi di ricerche, l'ingegnere dell'infrastruttura AI Shu ha deciso di utilizzare Milvus, un database vettoriale open-source che supporta indici multipli e metriche di somiglianza e aggiornamenti online dei dati. Milvus è apprezzato da più di mille organizzazioni in tutto il mondo.

Il database vettoriale open-source Milvus è adottato nel sistema SmartNews Ad per abbinare e raccomandare agli utenti annunci dinamici provenienti da un set di dati su scala di 10 milioni. In questo modo, SmartNews è in grado di creare una relazione di mappatura tra due insiemi di dati precedentemente non abbinabili: i dati degli utenti e quelli degli annunci pubblicitari. Nel secondo trimestre del 2021, Shu è riuscita a distribuire Milvus 1.0 su Kubernetes. Per saperne di più su come distribuire Milvus.

img img

Dopo il successo dell'implementazione di Milvus 1.0, il primo progetto a utilizzare Milvus è stato il progetto di richiamo delle pubblicità avviato dal team Ad di SmartNews. Durante la fase iniziale, il set di dati pubblicitari era su scala milionaria. Nel frattempo, la latenza di P99 era rigorosamente controllata entro meno di 10 millisecondi.

Nel giugno 2021, Shu e i suoi colleghi del team di algoritmi hanno applicato Milvus a più scenari aziendali e hanno tentato l'aggregazione dei dati e l'aggiornamento dei dati/indici online in tempo reale.

A questo punto, Milvus, il database vettoriale open-source, è stato utilizzato in vari scenari aziendali di SmartNews, compresa la raccomandazione di annunci pubblicitari.

Da utente a collaboratore attivo

Durante l'integrazione di Milvus nell'architettura del prodotto Smartnews, Shu e altri sviluppatori hanno avanzato richieste di funzioni come l'hot reload, il TTL (time-to-live) degli articoli, l'aggiornamento/sostituzione degli articoli e altro ancora. Si tratta di funzioni desiderate anche da molti utenti della comunità Milvus. Per questo motivo, Dennis Zhao, responsabile del team dell'infrastruttura AI di SmartNews, ha deciso di sviluppare e contribuire alla funzione di ricarica a caldo per la comunità. Dennis ritiene che "il team di SmartNews ha beneficiato della comunità di Milvus, quindi siamo più che disposti a contribuire se abbiamo qualcosa da condividere con la comunità".

Il Data reload supporta la modifica del codice durante l'esecuzione. Con l'aiuto di Data reload, gli sviluppatori non devono più fermarsi a un punto di interruzione o riavviare l'applicazione. Possono invece modificare direttamente il codice e vedere il risultato in tempo reale.

Alla fine di luglio, Yusup, ingegnere di SmartNews, ha proposto l'idea di utilizzare gli alias delle collezioni per ottenere il caricamento a caldo.

La creazione di alias di raccolta si riferisce alla specificazione di nomi di alias per una raccolta. Una collezione può avere più alias. Tuttavia, un alias corrisponde al massimo a una collezione. È sufficiente fare un'analogia tra una raccolta e un armadietto. Un armadietto, come una collezione, ha il suo numero e la sua posizione, che rimarranno sempre invariati. Tuttavia, è sempre possibile inserire ed estrarre cose diverse dall'armadietto. Allo stesso modo, il nome della collezione è fisso, ma i dati in essa contenuti sono dinamici. È sempre possibile inserire o eliminare vettori in una collezione, poiché la cancellazione dei dati è supportata nella versione Milvus pre-GA.

Nel caso dell'attività pubblicitaria di SmartNews, quasi 100 milioni di vettori vengono inseriti o aggiornati quando vengono generati nuovi vettori pubblicitari dinamici. Ci sono diverse soluzioni a questo problema:

  • Soluzione 1: cancellare prima i vecchi dati e inserirne di nuovi.
  • Soluzione 2: creare una nuova raccolta per i nuovi dati.
  • Soluzione 3: utilizzare alias di raccolta.

Per quanto riguarda la soluzione 1, uno dei difetti più evidenti è che richiede molto tempo, soprattutto quando il set di dati da aggiornare è enorme. In genere ci vogliono ore per aggiornare un set di dati su scala di 100 milioni.

Per quanto riguarda la soluzione 2, il problema è che la nuova raccolta non è immediatamente disponibile per la ricerca. In altre parole, una raccolta non è ricercabile durante il caricamento. Inoltre, Milvus non consente a due raccolte di utilizzare lo stesso nome. Per passare a una nuova raccolta, gli utenti devono sempre modificare manualmente il codice lato client. In altre parole, gli utenti devono rivedere il valore del parametro collection_name ogni volta che devono passare da una collezione all'altra.

La soluzione 3 sarebbe la soluzione migliore. È sufficiente inserire i nuovi dati in una nuova raccolta e utilizzare gli alias di raccolta. In questo modo, è sufficiente scambiare l'alias della raccolta ogni volta che è necessario cambiare la raccolta per effettuare la ricerca. Non è necessario un ulteriore sforzo per rivedere il codice. Questa soluzione evita i problemi menzionati nelle due soluzioni precedenti.

Yusup è partito da questa richiesta e ha aiutato tutto il team di SmartNews a capire l'architettura di Milvus. Dopo un mese e mezzo, il progetto Milvus ha ricevuto da Yusup una PR sul caricamento a caldo. In seguito, questa funzione è stata resa ufficialmente disponibile con il rilascio di Milvus 2.0.0-RC7.

Attualmente, il team dell'infrastruttura AI sta prendendo l'iniziativa di distribuire Milvus 2.0 e migrare gradualmente tutti i dati da Milvus 1.0 a 2.0.

img_collection alias alias img_collection

Il supporto degli alias di raccolta può migliorare notevolmente l'esperienza dell'utente, soprattutto per le grandi aziende Internet con grandi volumi di richieste da parte degli utenti. Chenglong Li, ingegnere dei dati della comunità Milvus, che ha contribuito a creare il ponte tra Milvus e Smartnews, ha dichiarato: "La funzione alias di raccolta nasce da una richiesta reale di SmartNews, un utente di Milvus. E SmartNews ha contribuito al codice della comunità Milvus. Questo atto di reciprocità è un grande esempio dello spirito open-source: dalla comunità e per la comunità. Ci auguriamo di vedere altri collaboratori come SmartNews e di costruire insieme una comunità Milvus più prospera".

"Attualmente, una parte del settore pubblicitario sta adottando Milvus come database vettoriale offline. Il rilascio ufficiale di Mivus 2.0 si avvicina e speriamo di poter utilizzare Milvus per costruire sistemi più affidabili e fornire servizi in tempo reale per un maggior numero di scenari aziendali", ha dichiarato Dennis.

Aggiornamento: Milvus 2.0 è ora disponibile a livello generale! Per saperne di più

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started

Like the article? Spread the word

Continua a Leggere