Padronanza dei dati semplificata: esplorare la magia dei database vettoriali nei Jupyter Notebook
Anthropic ha recentemente rilasciato una versione da 100k token di Claude. Google ha recentemente rilasciato PaLM 2. E naturalmente, a questo punto siamo tutti ben consapevoli di GPT e ChatGPT di OpenAI. I modelli linguistici di grandi dimensioni (LLM) hanno accelerato l’adozione dell’IA, trainando con essa la domanda di database vettoriali.
Perché? Perché i database vettoriali possono aiutare a risolvere uno dei maggiori problemi che gli LLM devono affrontare: la mancanza di conoscenza di dominio e di dati aggiornati. Al di fuori degli LLM, i database vettoriali mostrano anche la loro utilità nell’alimentare applicazioni di ricerca per similarità. Inoltre, sono necessari per lavorare su raccomandazioni di prodotti, ricerca inversa di immagini e ricerca semantica di testo.
Come puoi iniziare a usare un database vettoriale nel tuo Jupyter Notebook? Questo tutorial tratta:
- Che cos’è un database vettoriale?
- Come usare un database vettoriale nel tuo Jupyter Notebook
- Che cos’è Milvus (Lite)?
- Riepilogo di un database vettoriale nel tuo Jupyter Notebook
Questo vale allo stesso modo per i notebook CoLab. Eccone due per te: un notebook CoLab per la ricerca inversa di immagini, e un notebook CoLab per la ricerca semantica di testo.
Che cos’è un database vettoriale?
Prima di addentrarci nel tutorial, acquisiamo una comprensione di base dei database vettoriali. Un database vettoriale è costruito per archiviare, indicizzare e interrogare dati vettoriali. Sono usati principalmente per lavorare con dati non strutturati come immagini, testo o video. Per prima cosa, fai passare i tuoi dati attraverso una rete neurale esistente per ottenere gli embedding vettoriali, di solito estratti dal penultimo livello.
Quegli embedding vettoriali vengono poi archiviati in un database vettoriale. Una volta che i tuoi embedding vettoriali sono archiviati, puoi interrogare il database vettoriale per ottenere le top k voci di dati più simili tramite embedding vettoriali, come mostrato nei notebook CoLab sopra. Alcuni degli strumenti che i database vettoriali astraggono per te includono:
- Indici vettoriali che altrimenti dovresti includere.
- Algoritmi di ricerca vettoriale come HNSW.
- Un modo per comunicare con un livello di archiviazione persistente.
Che cos’è Milvus (Lite)?
Milvus è un database vettoriale con un backend nativo a sistema distribuito. È progettato appositamente per gestire l’indicizzazione, l’archiviazione e l’interrogazione di dati vettoriali su scala di miliardi. Milvus utilizza più livelli e tipi di nodi worker per un design facilmente scalabile. Oltre a utilizzare più nodi a scopo singolo, Milvus utilizza anche dati segmentati per un’indicizzazione più efficiente. Milvus utilizza segmenti di dati da 512MB che non vengono modificati dopo essere stati riempiti e li interroga in parallelo per offrire la latenza più bassa del settore.
Architettura di alto livello del database vettoriale Milvus
In genere, useresti Docker Compose, Helm, o il Milvus Operator per avviare un’istanza Milvus. Tuttavia, Milvus Lite ti consente di avviare un’istanza Milvus direttamente dal tuo Jupyter Notebook o script Python. Funziona allo stesso modo di Milvus e salva tutti i tuoi dati localmente.
Come usare un database vettoriale nel tuo Jupyter Notebook
Puoi iniziare con un database vettoriale come Milvus Lite direttamente nel tuo notebook tramite un’installazione pip. Nella prima riga del tuo Jupyter Notebook, esegui ! pip install pymilvus milvus. Una volta installati pymilvus e milvus, puoi avviare il database vettoriale e connetterti ad esso all’interno di un notebook iPython.
Il modulo milvus fornisce Milvus Lite e il modulo pymilvus fornisce un’interfaccia Python per connettersi a Milvus. Per iniziare, importiamo tre moduli. Primo, default_server da milvus. Secondo,connections da pymilvus, e terzo, utility da pymilvus. Usiamo la funzione start() da default_server per avviare il server. Una volta avviato il server, ci connettiamo usando connect da connections e passando l’host, localhost o 127.0.0.1, e la porta, recuperata dal server predefinito.
from milvus import default_server
from pymilvus import connections, utility
default_server.start()
connections.connect(host="127.0.0.1", port=default_server.listen_port)
Una volta connesso a Milvus, puoi usare utility per controllare il tuo database. Per esempio, chiama get_server_version() per assicurarti di avere la versione più recente, che puoi verificare sul Milvus Blog. Puoi anche usare utility per controllare le collections, tabelle separate in Milvus. Se vuoi ricominciare da capo, puoi verificare se una collection con il nome che vuoi usare è già in uso e rimuoverla con drop_collection, oppure scegliere un nuovo nome.
utility.get_server_version()
if utility.has_collection(COLLECTION_NAME):
utility.drop_collection(COLLECTION_NAME)
Vuoi spingerti ancora oltre e usare un database vettoriale in produzione o per un progetto più grande? Considera Zilliz Cloud o Milvus Standalone.
Riepilogo su come usare un database vettoriale nel tuo Jupyter Notebook
In questo post, abbiamo imparato che i database vettoriali sono utili ogni volta che devi fare qualcosa che coinvolga una ricerca per similarità. Aiutano a indicizzare, memorizzare e interrogare rappresentazioni di embedding vettoriali di dati non strutturati come immagini, video o testo. Poi esaminiamo un esempio di utilizzo di un database vettoriale nel tuo Jupyter Notebook tramite Milvus Lite.
Infine, diamo uno sguardo dietro le quinte di Milvus per vedere il backend del sistema distribuito. Forniamo anche risorse per capire come iniziare a usare un database vettoriale tramite esempi in notebook CoLab. Per chi vuole usare un’istanza standalone di database vettoriale, forniamo anche esempi su come configurare Milvus Standalone.
Continua a leggere

Top 10 Context Engineering Techniques You Should Know for Production RAG
A practical guide to context engineering for production LLM systems, covering RAG, context processing, memory, agents, and multimodal context.

AI Agents Are Quietly Transforming E-Commerce — Here’s How
Discover how AI agents transform e-commerce with autonomous decision-making, enhanced product discovery, and vector search capabilities for today's retailers.
Milvus/Zilliz + Surveillance: How Vector Databases Transform Multi-Camera Tracking
See how Milvus vector database enhances multi-camera tracking with similarity-based matching for better surveillance in retail, warehouses and transport hubs.



