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

milvus-logo
LFAI
  • Home
  • Blog
  • Grazie a Milvus, chiunque può creare un database vettoriale per oltre 1 miliardo di immagini

Grazie a Milvus, chiunque può creare un database vettoriale per oltre 1 miliardo di immagini

  • Scenarios
November 11, 2020
milvus

L'aumento della potenza di calcolo e la diminuzione dei costi di calcolo hanno reso l'analisi su scala industriale e l'intelligenza artificiale (AI) più accessibili che mai. In pratica, ciò significa che con un solo server e 10 righe di codice è possibile costruire un motore di ricerca inversa di immagini in grado di interrogare oltre 1 miliardo di immagini in tempo reale. Questo articolo spiega come Milvus, una piattaforma open-source per la gestione dei dati vettoriali, possa essere utilizzata per creare potenti sistemi per l'elaborazione e l'analisi dei dati non strutturati, nonché la tecnologia sottostante che rende possibile tutto questo.

Vai a:

In che modo l'IA consente l'analisi dei dati non strutturati?

Una statistica spesso citata è che l'80% dei dati mondiali è non strutturato, ma solo l'1% viene analizzato. I dati non strutturati, tra cui immagini, video, audio e linguaggio naturale, non seguono un modello o una modalità di organizzazione predefinita. Ciò rende difficile l'elaborazione e l'analisi di grandi insiemi di dati non strutturati. La proliferazione di smartphone e altri dispositivi connessi spinge la produzione di dati non strutturati a nuovi livelli, e le aziende sono sempre più consapevoli di quanto possano essere importanti gli approfondimenti derivati da queste informazioni nebulose.

Per decenni, gli informatici hanno sviluppato algoritmi di indicizzazione su misura per organizzare, cercare e analizzare tipi di dati specifici. Per i dati strutturati, ci sono le bitmap, le tabelle hash e i B-tree, comunemente utilizzati nei database relazionali sviluppati da giganti tecnologici come Oracle e IBM. Per i dati semi-strutturati, gli algoritmi di indicizzazione inversa sono standard e si trovano in motori di ricerca popolari come Solr ed ElasticSearch. Tuttavia, gli algoritmi di indicizzazione dei dati non strutturati si basano su un'intelligenza artificiale ad alta intensità di calcolo che è diventata ampiamente accessibile solo nell'ultimo decennio.

Le reti neurali convertono i dati non strutturati in vettori di caratteristiche facili da usare.

Utilizzando le reti neurali (ad esempio CNN, RNN e BERT), i dati non strutturati possono essere convertiti in vettori di caratteristiche (anche detti embeddings), che sono stringhe di numeri interi o float. Questo formato di dati numerici è molto più facilmente elaborabile e analizzabile dalle macchine. Le applicazioni che comprendono la ricerca inversa di immagini, la ricerca di video, l'elaborazione del linguaggio naturale (NLP) e altro ancora possono essere realizzate incorporando i dati non strutturati in vettori di caratteristiche, quindi calcolando la somiglianza tra i vettori utilizzando misure come la distanza euclidea o la somiglianza del coseno.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_2.jpeg Blog_Grazie all'intelligenza artificiale, chiunque può costruire un motore di ricerca per oltre 1 miliardo di immagini_2.jpeg

Il calcolo della similarità vettoriale è un processo relativamente semplice che si basa su algoritmi consolidati. Tuttavia, gli insiemi di dati non strutturati, anche dopo essere stati convertiti in vettori di caratteristiche, sono in genere più grandi di diversi ordini di grandezza rispetto agli insiemi di dati strutturati e semi-strutturati tradizionali. La ricerca di similarità vettoriale è complicata dallo spazio di archiviazione e dalla potenza di calcolo necessari per interrogare in modo efficiente e accurato i dati non strutturati su larga scala. Tuttavia, se si può sacrificare un certo grado di accuratezza, esistono vari algoritmi di ricerca approssimata per vicini (ANN) che possono migliorare drasticamente l'efficienza delle interrogazioni per i set di dati massicci con elevata dimensionalità. Questi algoritmi RNA riducono i requisiti di archiviazione e il carico di calcolo raggruppando vettori simili tra loro, rendendo più veloce la ricerca vettoriale. Gli algoritmi comunemente utilizzati includono RNA ad albero, a grafo e combinate.

Cosa sono le piattaforme di gestione dei dati vettoriali?

Le piattaforme di gestione dei dati vettoriali sono applicazioni appositamente create per archiviare, elaborare e analizzare enormi insiemi di dati vettoriali. Questi strumenti sono progettati per interfacciarsi facilmente con grandi quantità di dati e includono funzionalità che semplificano la gestione dei dati vettoriali. Purtroppo, esistono pochi sistemi sufficientemente flessibili e potenti per risolvere le moderne sfide dei big data. Milvus, una piattaforma di gestione dei dati vettoriali avviata da Zilliz e rilasciata con licenza open-source nel 2019, cerca di colmare questo vuoto.

Quali sono i limiti degli approcci esistenti alla gestione dei dati vettoriali?

Un modo comune per costruire un sistema di analisi dei dati non strutturati è quello di accoppiare algoritmi come ANN con librerie di implementazione open-source come Facebook AI Similarity Search (Faiss). A causa di diverse limitazioni, queste combinazioni di algoritmi e librerie non sono equivalenti a un sistema completo di gestione dei dati vettoriali come Milvus. Le tecnologie esistenti per la gestione dei dati vettoriali presentano i seguenti problemi:

  1. Flessibilità: Per impostazione predefinita, i sistemi esistenti memorizzano tutti i dati nella memoria principale, il che significa che non possono essere eseguiti su più macchine e non sono adatti a gestire insiemi di dati massicci.
  2. Gestione dinamica dei dati: I dati vengono spesso considerati statici una volta inseriti nei sistemi esistenti, complicando l'elaborazione dei dati dinamici e rendendo impossibile una ricerca quasi in tempo reale.
  3. Elaborazione avanzata delle query: La maggior parte degli strumenti non supporta l'elaborazione avanzata delle query (ad esempio, il filtraggio degli attributi e le query multivettoriali), che è essenziale per costruire utili motori di ricerca per similarità.
  4. Ottimizzazioni per il calcolo eterogeneo: Poche piattaforme offrono ottimizzazioni per architetture di sistema eterogenee su CPU e GPU (ad eccezione di Faiss), con conseguenti perdite di efficienza.

Milvus cerca di superare tutte queste limitazioni. Il sistema aumenta la flessibilità offrendo il supporto per una varietà di interfacce applicative (tra cui SDK in Python, Java, Go, C++ e API RESTful), diversi tipi di indici vettoriali (ad esempio, indici basati sulla quantizzazione e indici basati su grafi) e un'elaborazione avanzata delle query. Milvus gestisce i dati vettoriali dinamici utilizzando un log-structured merge-tree (albero LSM), mantenendo efficienti gli inserimenti e le cancellazioni di dati e facendo funzionare le ricerche in tempo reale. Milvus offre anche ottimizzazioni per architetture di calcolo eterogenee su CPU e GPU moderne, consentendo agli sviluppatori di adattare i sistemi a scenari, set di dati e ambienti applicativi specifici.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_3.png Blog_Grazie all'intelligenza artificiale, chiunque può costruire un motore di ricerca per oltre 1 miliardo di immagini_3.png

Utilizzando diverse tecniche di indicizzazione ANN, Milvus è in grado di raggiungere un tasso di richiamo top-5 del 99%. Il sistema è anche in grado di caricare oltre 1 milione di dati al minuto. Ciò si traduce in un tempo di interrogazione inferiore a un secondo quando si esegue una ricerca inversa su 1 miliardo di immagini. Essendo un'applicazione nativa del cloud che può funzionare come sistema distribuito su più nodi, Milvus può facilmente e in modo affidabile ottenere prestazioni simili su insiemi di dati che contengono 10 o addirittura 100 miliardi di immagini. Inoltre, il sistema non si limita ai dati delle immagini, con applicazioni che spaziano dalla computer vision all'IA conversazionale, ai sistemi di raccomandazione, alla scoperta di nuovi farmaci e altro ancora.

Come già detto, una piattaforma di gestione dei dati vettoriali come Milvus, abbinata ad algoritmi di prossimità approssimativa, consente di effettuare ricerche di similarità su volumi giganteschi di dati non strutturati. Questa tecnologia può essere utilizzata per sviluppare applicazioni che abbracciano una vasta gamma di settori. Di seguito illustriamo brevemente alcuni casi d'uso comuni per gli strumenti di gestione dei dati vettoriali e per la ricerca di similarità vettoriale.

I principali motori di ricerca come Google offrono già agli utenti la possibilità di effettuare ricerche per immagine. Inoltre, le piattaforme di e-commerce si sono rese conto dei vantaggi che questa funzionalità offre agli acquirenti online: Amazon ha incorporato la ricerca per immagini nelle sue applicazioni per smartphone.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_4.png Blog_Grazie all'intelligenza artificiale, chiunque può costruire un motore di ricerca per oltre 1 miliardo di immagini_4.png

Un software open-source come Milvus consente a qualsiasi azienda di creare un proprio sistema di ricerca inversa di immagini, abbassando le barriere di accesso a questa funzionalità sempre più richiesta. Gli sviluppatori possono utilizzare modelli di intelligenza artificiale pre-addestrati per convertire i propri set di dati di immagini in vettori, e poi sfruttare Milvus per consentire la ricerca di prodotti simili in base all'immagine.

Sistemi di raccomandazione video

Le principali piattaforme video online come YouTube, che ricevono 500 ore di contenuti generati dagli utenti ogni minuto, presentano esigenze uniche quando si tratta di raccomandare contenuti. Per fornire raccomandazioni pertinenti e in tempo reale che tengano conto dei nuovi upload, i sistemi di raccomandazione video devono offrire tempi di interrogazione fulminei e una gestione efficiente dei dati dinamici. Convertendo i fotogrammi chiave in vettori e inserendo i risultati in Milvus, è possibile cercare e raccomandare miliardi di video in tempo quasi reale.

Elaborazione del linguaggio naturale (NLP)

L'elaborazione del linguaggio naturale è una branca dell'intelligenza artificiale che mira a costruire sistemi in grado di interpretare il linguaggio umano. Dopo aver convertito i dati di testo in vettori, Milvus può essere utilizzato per identificare e rimuovere rapidamente i testi duplicati, per alimentare la ricerca semantica o persino per creare un assistente di scrittura intelligente. Una piattaforma efficace di gestione dei dati vettoriali aiuta a massimizzare l'utilità di qualsiasi sistema NLP.

Per saperne di più su Milvus

Per saperne di più su Milvus, visitate il nostro sito web. Inoltre, il nostro bootcamp offre diversi tutorial, con istruzioni per configurare Milvus, effettuare test di benchmark e creare una serie di applicazioni diverse. Se siete interessati alla gestione dei dati vettoriali, all'intelligenza artificiale e alle sfide dei big data, unitevi alla nostra comunità open-source su GitHub e chattate con noi su Slack.

Volete maggiori informazioni sulla creazione di un sistema di ricerca di immagini? Date un'occhiata a questo caso di studio:

    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