Wikipedia è universalmente riconosciuta per la sua rigorosità, la vasta accessibilità e l'affidabilità che ispira. Il fondamento di questi punti di forza risiede nella sua creazione e manutenzione collaborativa, alimentata da una comunità globale di contributori. Questa immensa compilazione di conoscenze, che abbraccia oltre 300 lingue e genera ben 25 miliardi di visualizzazioni mensili, rappresenta una fonte di informazioni autorevole, collaborativa e open source, utilizzata quotidianamente da innumerevoli persone in tutto il mondo.
Tuttavia, con l'avvento e la rapida espansione dell'intelligenza artificiale (AI), l'accessibilità automatizzata di queste informazioni ha posto una nuova e significativa sfida alle organizzazioni che sviluppano e supportano Wikipedia. Nello specifico, Wikidata, la piattaforma aperta e interconnessa che mette a disposizione i dati di Wikipedia a migliaia di sviluppatori nell'ambiente open source, si è trovata di fronte alla necessità impellente di rendere questo enorme grafico di conoscenza multilingue – che vanta circa 120 milioni di voci e 2,4 miliardi di modifiche fino ad oggi – non solo più accessibile ai grandi modelli di linguaggio (LLM), ma anche più semplice da utilizzare per la vasta comunità di sviluppatori.
La scelta di DataStax Astra DB su IBM watsonx.data
Dopo aver condotto una serie di test rigorosi su diverse soluzioni di database vettoriali, Wikimedia Deutschland, l'organizzazione che gestisce e sviluppa Wikidata, ha scelto di adottare DataStax Astra DB su IBM watsonx.data. Questa decisione si è rivelata trasformativa. Rispetto all'elaborazione locale dei vettori, il database Astra DB, caratterizzato da un'elevata scalabilità e una bassa latenza, ha permesso di aumentare la velocità delle query di un fattore pari a 30 volte. Questo è un aspetto critico, specialmente per le applicazioni di generazione aumentata tramite recupero (RAG), dove la rapidità nell'accesso e nel recupero delle informazioni è fondamentale per l'efficacia e la reattività del sistema. Inoltre, il tempo di sviluppo presso Wikimedia Deutschland è stato drasticamente ridotto, raggiungendo una diminuzione del 90%. Il team di sviluppo può ora dedicarsi principalmente all'innovazione e all'implementazione di nuove funzionalità, anziché dover investire tempo e risorse nell'onere della gestione e della manutenzione dell'infrastruttura dati sottostante. Questo cambio di paradigma ha liberato risorse preziose, consentendo una maggiore focalizzazione sulla creazione di valore per gli utenti e per la comunità.
Il ruolo di Wikidata e le sfide dell'accessibilità
Il caso d'uso specifico di Wikimedia è strettamente legato all'impennata nell'adozione dei LLM. I team di sviluppo sono costantemente alla ricerca di metodi per utilizzare dati affidabili al fine di rendere l'IA generativa non solo più robusta e precisa, ma anche intrinsecamente più trasparente. L'obiettivo è anche quello di conferire alla comunità un controllo più diretto e significativo sui dati che vengono referenziati e utilizzati. Tuttavia, l'accesso a queste risorse rappresentava un ostacolo significativo. Tradizionalmente, Wikidata viene interrogato principalmente tramite SPARQL, un linguaggio di interrogazione semantica estremamente potente. La sua efficacia è indiscussa, ma presenta una barriera all'ingresso: richiede agli utenti di apprendere non solo il linguaggio di interrogazione stesso, ma anche la complessa struttura specifica del dominio di Wikidata. Questa curva di apprendimento ripida ha limitato la platea di sviluppatori che potevano interagire direttamente e facilmente con il vasto patrimonio di conoscenze.
Wikimedia era quindi alla ricerca di un approccio più semplice e intuitivo per gli sviluppatori, che consentisse loro di scoprire e recuperare gli elementi pertinenti da Wikidata prima di dover formulare query grafiche precise e complesse. La necessità era quella di astrarre la complessità di SPARQL, offrendo un'interfaccia che facilitasse l'esplorazione e il recupero dati, rendendo l'esperienza più accessibile e meno impegnativa.
La soluzione: un livello API sopra un database vettoriale
La creazione di un livello API (Application Programming Interface) posizionato al di sopra di un database vettoriale si è dimostrata la soluzione ideale per fornire questo accesso semplificato agli sviluppatori, supportando un'ampia gamma di applicazioni a valle. Queste applicazioni includono, ad esempio, esperienze utente multilingue, un ottimo esempio delle quali è OpenStreetMap, che beneficia enormemente di un contesto informativo rapido e affidabile per la gestione di dati geografici. Altri esempi significativi sono i motori di ricerca avanzati che richiedono un contesto immediato e accurato, come informazioni dettagliate su musei, libri e istituzioni culturali. Questa architettura consente di ridurre significativamente il tempo precedentemente speso nella elaborazione di query complesse e, parallelamente, di abbassare la curva di apprendimento per i nuovi sviluppatori che si avvicinano a Wikidata. Inoltre, accelera notevolmente i cicli di iterazione per i sistemi di pipeline RAG (Retrieval Augmented Generation), permettendo sviluppi più rapidi ed efficienti.
Il livello API di Wikidata consente alle macchine di accedere a un database vettoriale tramite due percorsi principali, ognuno ottimizzato per specifiche esigenze di recupero e analisi delle informazioni:
Il percorso di ricerca
Il percorso di ricerca si avvia con una query formulata in linguaggio naturale, accompagnata da parametri di configurazione definiti dall'utente. Il sistema esegue quindi una ricerca ibrida, combinando efficacemente diverse tecniche per massimizzare la rilevanza e la completezza dei risultati:
- Ricerca per parole chiave: Questa componente sfrutta gli indici di ricerca testuale tradizionali per identificare gli elementi di Wikidata che contengono le parole chiave specificate nella query. È particolarmente efficace per il recupero di informazioni dirette e specifiche.
- Ricerca vettoriale: Questa tecnica utilizza l'embedding della query (la sua rappresentazione come vettore numerico in uno spazio multidimensionale) per trovare gli elementi di Wikidata i cui vettori sono semanticamente più simili al vettore della query. Questo consente di identificare informazioni concettualmente correlate, anche se non contengono esattamente le parole chiave della query.
I risultati ottenuti dalla ricerca per parole chiave e dalla ricerca vettoriale vengono poi fusi attraverso un processo noto come fusione di classifica reciproca (Reciprocal Rank Fusion). Questo è un metodo semplice ma efficace che premia gli elementi ben classificati che appaiono in entrambe le liste di risultati, migliorando la pertinenza complessiva.
Infine, Wikimedia aggiunge un passaggio facoltativo di ri-ranking. Una volta attivato, il sistema richiama l'API di Wikidata per recuperare le informazioni più aggiornate sugli elementi identificati, e successivamente applica un modello di ri-ranking Jina.ai per riorganizzare i risultati in base alla loro pertinenza raffinata. Il passaggio di ri-ranking è reso facoltativo per una ragione strategica: in alcuni specifici casi d'uso della RAG, l'intera lista dei risultati viene passata direttamente a valle a un LLM, e la sequenza di ranking diventa meno critica. In questi scenari, gli utenti possono scegliere di ignorare il ri-ranking per accelerare i tempi di risposta, privilegiando la velocità.
Il database vettoriale Astra DB è segmentato per ottimizzare ulteriormente le prestazioni e la gestione dei dati, distinguendo tra:
- Documenti: Questo segmento è dedicato all'archiviazione di testo e altri contenuti documentali, facilitando la ricerca e il recupero di informazioni basate su estese porzioni di testo.
- Entità Wikidata: Qui sono memorizzati i vettori che rappresentano le entità specifiche di Wikidata, consentendo una ricerca semantica efficiente e un confronto basato sulla similarità tra le entità.
Il percorso dei punteggi di similarità
Il percorso dei punteggi di similarità inizia anch'esso con una query in linguaggio naturale, ma con una differenza fondamentale: include una lista di entità Wikidata specificate direttamente dall'utente. Invece di recuperare candidati, il sistema si concentra sulla misurazione dell'allineamento, o della somiglianza, tra ciascuna delle entità fornite e la query originale.
Il processo si avvia con l'embedding della query, utilizzando lo stesso modello Jina.ai impiegato nel percorso di ricerca. Successivamente, il sistema ricerca i vettori corrispondenti alle entità specificate, che sono memorizzati in Astra DB, e calcola il loro punteggio di similarità rispetto al vettore della query. Questo approccio è particolarmente utile per applicazioni che richiedono una valutazione precisa delle relazioni tra un testo e un insieme predefinito di concetti.
Questa via apre la strada a diverse applicazioni avanzate, quali la classificazione accurata di testi o contenuti, il collegamento efficiente di entità all'interno di un corpo testuale, e la cruciale disambiguazione delle entità nominate, dove un termine può avere significati diversi a seconda del contesto. In questi scenari, i sistemi a valle possono utilizzare direttamente i punteggi di similarità calcolati per selezionare l'etichetta più appropriata o per determinare a quale entità specifica si riferisce una menzione nel testo, migliorando notevolmente la precisione e l'automazione dei processi.
L'infrastruttura di Wikimedia e le ragioni dell'hosting interno
Le componenti dell'API di Wikidata operano e sono ospitate sui servizi cloud di Wikimedia, un'infrastruttura gestita direttamente dalla Wikimedia Foundation. Le ragioni fondamentali per cui Wikimedia ha scelto di mantenere e gestire autonomamente la propria infrastruttura sono molteplici e profondamente radicate nei suoi principi fondanti. In primo luogo, c'è la protezione della privacy: un aspetto cruciale per salvaguardare la comunità di contributori che alimenta Wikipedia e per supportare una gestione etica e responsabile dei dati. Wikimedia si impegna a garantire che le informazioni personali e i dati sensibili siano trattati con la massima cura e riservatezza. In secondo luogo, il controllo è un fattore determinante. Questo include il controllo su dove e che tipo di informazioni vengono archiviate, così come su chi può accedervi. Mantenendo l'infrastruttura in-house, Wikimedia può implementare politiche di sicurezza e accesso rigorose e personalizzate, assicurando che i dati siano protetti da accessi non autorizzati e utilizzati in conformità con la sua missione e i valori della comunità. Questa autonomia garantisce che la governance dei dati sia pienamente allineata con gli obiettivi di trasparenza, apertura e tutela della comunità che sono al centro dell'ecosistema Wikipedia.
Obiettivo finale del progetto
In ultima analisi, l'intero progetto mira a semplificare in modo significativo l'utilizzo di un patrimonio di conoscenza fondamentale – la base dati di Wikipedia – che è ampiamente riutilizzato e integrato nelle moderne pipeline di intelligenza artificiale. L'obiettivo primario è rendere questo processo fluido ed efficiente, senza richiedere che ogni singolo sviluppatore diventi prima un esperto nella formulazione di complesse query grafiche. Si tratta di abbattere le barriere tecniche, democratizzando l'accesso a informazioni vitali e consentendo a un pubblico più ampio di innovatori di sfruttare la potenza di Wikidata con maggiore facilità e rapidità.
Vantaggi innegabili derivanti dall'uso di Astra DB
L'adozione di DataStax Astra DB ha generato una serie di vantaggi innegabili e misurabili per Wikimedia, che si riflettono sia nell'efficienza operativa sia nella qualità del servizio offerto agli sviluppatori e agli utenti finali:
- Rilevamento delle entità migliorato: La capacità di individuare e identificare le entità rilevanti all'interno del vasto grafico di conoscenza è stata notevolmente potenziata, rendendo le ricerche più precise e complete.
- Miglioramento della pertinenza dei risultati: Grazie all'elaborazione vettoriale e alle tecniche di ri-ranking, i risultati delle query sono ora significativamente più pertinenti e allineati alle intenzioni dell'utente.
- Velocità di query notevolmente aumentata: Come accennato, l'incremento di 30 volte nella velocità delle query è un fattore critico che accelera l'intera pipeline di recupero informazioni.
- Costruzioni di pipeline RAG più veloci: Gli sviluppatori possono ora prototipare e implementare sistemi RAG molto più rapidamente, riducendo i tempi di sviluppo e l'iterazione.
- Riduzione dei costi di sviluppo e manutenzione dell'infrastruttura: L'outsourcing della gestione del database vettoriale a Astra DB ha liberato risorse preziose, consentendo a Wikimedia di concentrarsi sul proprio core business piuttosto che sull'onere della manutenzione infrastrutturale.
L'importanza dell'informazione multilingue
Nel corso di questo progetto, Wikimedia ha anche fatto una scoperta importante riguardo alla gestione delle informazioni multilingue. Sebbene la creazione di vettori discreti per ogni singola lingua potesse inizialmente sembrare un approccio ridondante o eccessivamente oneroso, le esperienze pratiche e i test hanno chiaramente dimostrato che la precisione complessiva del sistema migliorava progressivamente man mano che nuove lingue venivano integrate nel modello. Questi risultati suggeriscono in modo convincente che l'approccio basato sull'embedding non si limita a fornire una semplice traduzione univoca tra le lingue, ma è in grado di catturare e rappresentare le sfumature linguistiche e culturali uniche di ciascuna lingua. Questo permette una comprensione e un recupero delle informazioni molto più ricchi e contestualmente accurati, superando i limiti delle mere equivalenze letterali.
Prossimi passi di Wikimedia
Wikimedia ha promosso il lancio di questa API per ottobre 2025 e sta ora attivamente lavorando per aggiornarla e migliorarla continuamente, con l'obiettivo di perfezionare ulteriormente l'accesso ai dati fondamentali per i riutilizzatori di Wikidata e per la vasta comunità di sviluppatori AI. I prossimi passi previsti da Wikimedia sono ambiziosi e mirano a espandere ulteriormente le capacità e l'impatto di questa iniziativa. Tra questi, vi è l'ampliamento della copertura linguistica, per includere ancora più delle 300 lingue già supportate, garantendo che sempre più comunità possano beneficiare di questo accesso migliorato. Si concentreranno anche sull'incoraggiamento dell'utilizzo nel mondo reale, promuovendo l'adozione dell'API da parte degli sviluppatori e raccogliendo feedback preziosi da coloro che costruiscono su Astra DB. Un altro obiettivo cruciale è continuare a sviluppare un'integrazione del protocollo di contesto di modello (MCP) per Wikidata, che sfrutterà Astra DB per facilitare l'esplorazione, mantenendo al contempo la precisione intrinseca delle query grafiche. Infine, Wikimedia sta esplorando attivamente tecniche avanzate di RAG, inclusa GraphRAG, che integra i dati strutturati in formato grafico per elaborare query estremamente complesse, aprendo nuove frontiere per la ricerca e l'analisi della conoscenza.
Conclusione
Separando il livello API, combinando in modo intelligente la ricerca per parole chiave e la ricerca vettoriale, e rendendo il ri-ranking un'opzione flessibile, Wikimedia ha creato un percorso di accesso ai dati che è al tempo stesso estremamente adattabile e potente. Questo nuovo approccio è capace di rispondere sia alle esigenze di esplorazione interattiva, che richiedono risposte rapide e contestuali, sia ai flussi di recupero dell'IA in produzione, che necessitano di alta affidabilità e scalabilità. Tutto ciò è stato realizzato senza imporre una costosa o complessa revisione dell'infrastruttura di base di Wikimedia o della sua consolidata postura di governance dei dati. La capacità, le prestazioni e la scalabilità del database vettoriale gestito, unitamente alla significativa riduzione dei costi di sviluppo derivante dall'adozione di Astra DB, consentono a Wikimedia di procedere con maggiore agilità e velocità. L'attenzione rimane saldamente concentrata sui benefici diretti per gli utenti, che includono un recupero delle informazioni più efficace, risposte più rapide e un accesso notevolmente semplificato a Wikidata per tutti gli sviluppatori che stanno costruendo la prossima generazione di applicazioni basate sull'intelligenza artificiale.