Che cos'è esattamente un vettore?#
Quando si sente parlare di «vettori» per la prima volta, molte persone non sanno esattamente di cosa si tratti. Chi ha studiato materie scientifiche alle scuole superiori potrebbe ricordarlo dalle lezioni di matematica (algebra e geometria), ma per chi ha una formazione umanistica può sembrare un concetto astratto. Il modo più semplice per comprendere un vettore è pensare a una mappa.
Immaginate di avere una mappa davanti a voi e di tracciare una linea dalla stazione di Tokyo alla stazione di Ikebukuro. Questo è il concetto fondamentale di un vettore. In termini numerici, si tratta di una freccia diagonale tracciata all'interno di un rettangolo largo 3 cm e alto 5 cm. In sintesi, un vettore rappresenta «direzione e grandezza (lunghezza)» da un punto a un altro. Su una mappa è bidimensionale, ma aggiungendo l'altezza diventa tridimensionale, ampiamente impiegato in fisica per descrivere gli spostamenti.
La tasca a 4 dimensioni di Doraemon si basa probabilmente su 4 assi: lunghezza, larghezza, altezza e tempo (secondo Einstein il quarto asse è il tempo). Memorizzando più valori oltre a 2 o 3 dimensioni, possiamo rappresentare matematicamente vettori multidimensionali. La 3D è intuitiva perché rappresenta il nostro mondo fisico, ma impostando 1024, 1536 o 4096 dimensioni come standard di granularità, il vettore diventa estremamente preciso. Considerate queste dimensioni elevate semplicemente come un metodo di rappresentazione matematica: ricordate che esprime «direzione e quantità».
Utilizzo nei modelli di intelligenza artificiale moderni (LLM)#
Una svolta fondamentale nell'IA moderna è stata la vettorizzazione dei testi. Trasformare le frasi in vettori semplifica i calcoli necessari per prevedere le parole successive, alla base dei modelli linguistici (LLM). Nella ricerca vettoriale, gestire il significato delle frasi come vettori aumenta drasticamente l'accuratezza della ricerca.
Questo vale per l'IA testuale; i modelli di generazione di immagini adottano teorie completamente diverse, come i modelli di diffusione.
Specifiche attuali e implementazione#
L'ambiente di sviluppo di Kurousagi è ospitato sull'infrastruttura Cloudflare, sfruttando il database D1 (basato su SQLite) per la gestione delle specifiche. All'inizio i documenti erano salvati come file Markdown o HTML nei repository, ma con lo sviluppo simultaneo di più prodotti i file risultavano frammentati e duplicati.
Abbiamo quindi adottato una struttura Monorepo e sviluppato un portale interno. La modifica e creazione di specifiche tramite API e browser ha consentito una gestione centralizzata e filtri avanzati, rendendo ogni specifica reperibile all'istante.
Tuttavia, far cercare i documenti uno per uno dall'IA comporta un consumo eccessivo di token. Per ovviare a ciò, abbiamo integrato la ricerca vettoriale per massimizzare l'efficienza di consultazione.
Architettura di base#
I testi delle specifiche sono conservati nel database D1. A questo abbiamo affiancato Cloudflare Vectorize, un servizio di database vettoriale dedicato. I testi vengono estratti da D1, elaborati tramite Cloudflare Workers AI e salvati come vettori su Cloudflare Vectorize (CF Vectorize).
Quota gratuita di Cloudflare Workers AI
- 10.000 Neurons gratuiti al giorno per account su tutti i modelli Workers AI
- Tariffazione a consumo per l'utilizzo eccedente
- Reset giornaliero alle 00:00 UTC (09:00 ora giapponese)
- Condiviso tra tutti i modelli Workers AI dell'account
Utilizziamo il modello di embedding @cf/baai/bge-m3. Essendo un modello multilingue, le specifiche e le query di ricerca vengono collocate nel medesimo spazio vettoriale.
Quota gratuita di Cloudflare Vectorize
- Archiviazione: 5 milioni di dimensioni vettoriali
- Query: 30 milioni di dimensioni vettoriali al mese
- Costi di eccedenza: Nessun costo automatico (passaggio al piano Paid necessario per continuare)
- Egress, CPU e manutenzione indici: Nessun costo aggiuntivo
Avendo un piano a pagamento, i nostri dati rientrano nel limite di 10 milioni di dimensioni, superando tuttavia la soglia gratuita standard. Il flusso è lineare: un cron estrae i testi aggiornati da D1, li vettorizza con Workers AI e li registra in Vectorize. Durante la ricerca, la query viene vettorizzata da Workers AI, confrontata in Vectorize e le specifiche corrispondenti vengono lette da D1.
Esperienza d'uso#
Il risultato dopo aver introdotto la ricerca vettoriale: estremamente comodo! Rispetto alle semplici parole chiave come «dispositivo» o «smarrimento», ora cercando «gestione account in caso di smarrimento del dispositivo» compaiono direttamente le specifiche pertinenti. Tuttavia, data la dimensione ridotta del piano gratuito, per grandi volumi di dati è raccomandato un piano a pagamento.
La schermata mostra la dashboard di gestione della ricerca vettoriale con il superamento della quota gratuita. Mentre Workers AI si azzera ogni giorno, i dati vettoriali rimangono persistenti.
Per chi utilizza già piani a pagamento su Cloudflare si tratta di uno strumento eccellente. Speriamo che questa esperienza possa esservi utile!