Come funzionano i Retrieval-Augmented Generators (RAG) e quanto i database vettoriali sono fondamentali per poter memorizzare e utilizzare le sorgenti dati aziendali e personali?
di Alin Acsente, IIIA, a.s. 2013-14, Ist. Compr. San Vito di San Vito Romano (Rm). Per fare memoria e ricordo dei genocidi dimenticati
www.arringo.wordpress.com
1) Hitler saw the youth of Germany as key to building his "New Order" and established extensive control over their education and activities through the Hitler Youth organization.
2) The Hitler Youth indoctrinated children with Nazi ideology, teaching racial supremacy and anti-Semitism. It became compulsory in 1936 and children who did not join risked their parents being imprisoned.
3) The Hitler Youth trained boys and girls physically and ideologically for service, with boys learning military skills. During the war, Hitler Youth members as young as 10 fought and died defending Berlin or aided the war effort in other ways.
The document discusses the Ukrainian rock band Okean Elzy, listing some of their most popular and successful album releases between 2000 and 2010, including "Ya na nebi buv" in 2000, "Model" in 2001, "GLORIA" in 2005, "Mira" in 2007, and "Dolce Vita" in 2010.
The document summarizes Canada's role in the final hundred days of World War 1 from August 8 to November 11, 1918. It describes a series of Allied offensives and battles led by the Canadian Corps along the Western Front, including the battles of Amiens, Arras, and Cambrai. These surprise attacks broke through German defenses and turned the tide in the Allies' favor. By November 11, 1918, the Canadians had helped secure several key victories that led Germany to sign the Armistice agreeing to an end of hostilities, cementing Canada's reputation for excellent military leadership and strength.
The Weimar Republic was established in Germany after World War 1 and faced significant challenges, including economic devastation from war reparations imposed by the Treaty of Versailles. The early years of the Weimar Republic saw political instability from communist and nationalist groups as well as hyperinflation resulting from France occupying the Ruhr Valley. Under the leadership of Stresemann in the later years, Germany's economy and international standing improved through agreements like the Dawes Plan and Locarno Treaties, though unemployment and poverty remained problems.
REVISION IGCSE CAMBRIDGE HISTORY: LEAGUE OF NATIONSGeorge Dumitrache
The League of Nations was an international organization established after World War 1 by Woodrow Wilson to preserve peace and settle disputes between member states from 1920 to 1945. It proved ultimately ineffective due to lacking an armed force to impose sanctions, slow decision making, being seen as a club for the victors of World War 1, and members undermining it by following their own agendas. However, in the 1920s the League was able to help return refugees, reduce diseases, stop slave labor and settle disputes between smaller member states.
Germany formed alliances in the late 19th century to counter its perceived enemies of Russia and France. It signed secret defensive treaties first with Austria in 1879 in the Dual Alliance and then with Italy in 1881 in the Triple Alliance. As the alliances were signed secretly, France and Russia grew suspicious and eventually signed their own alliance.
World War 2 led to both increased opportunities and continued discrimination for minority groups in the US. While the war economy created jobs for women, African Americans, and Hispanic Americans, Japanese Americans were forcibly interned in camps. Over 110,000 Japanese Americans, many of them citizens, were removed from their homes and lived under quasi-military rule. The war also prompted the beginning of the modern civil rights movement as African American leaders demanded equal access to defense jobs and an end to segregation in the military. Overall, WWII accelerated changes in attitudes towards equality but discrimination still continued.
Descrizione delle principali tecnologie abilitanti alla gestione dei Big Data, con particolare attenzione all’ecosistema che gravita intorno al framework Hadoop di Apache.
Business Intelligence e Business Analytics sono termini che ricorrono ormai quotidianemente. Cosa significano? Che valore portano in una azienda? Come si crea una soluzione di Business Intelligece e di Business Analytics? Che strumenti mette a disposizione la piattaforma Microsoft? In questa sessione andremo ad introdurre tutti gli attori, gli strumenti e le tecnologie che concorrono a realizzare tali soluzioni, vendendone alcune "dal vivo" per capire come si usano ed il grande valore aggiunto che, in una società sempre più affamata di informazioni, ma ricca solo di dati, possono portare.
Introduzione ai Big Data e alla scienza dei dati - Big DataVincenzo Manzoni
Lezione 5 del corso di analisi dati tenuto al Palazzolo Digital Hub (Palazzolo sull'Oglio, Brescia) nel 2014. In questa quinta e ultima lezione si introducono le tecnologie dei Big Data.
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...Data Driven Innovation
Oggi il tema non è più SI o NO ai sistemi NoSQL. Il problema sta nella capacità di essere “poliglotti” nell’uso di tecnologie per la gestione di dati e informazioni. Le strategie di innovazione sui Big Data nelle aziende non può prescindere dalla Polyglot Persistence, ma le difficoltà sono tante, specie in ambienti complessi ed enterprise. Ma la necessità di fare innovazione non è forte solo nelle startup, anzi…
Descrizione delle principali tecnologie abilitanti alla gestione dei Big Data, con particolare attenzione all’ecosistema che gravita intorno al framework Hadoop di Apache.
This talk is a brief introduction to Elasticsearch. What is it ? How can I use it ? How can it be useful for my company or for my business ? (the slides are in ITALIAN)
Oltre l'hype: vulnerabilità e limiti dell'intelligenza artificiale.pdfCommit University
Non è tutto oro quello che luccica, in questa presentazione esploreremo le principali criticità e i rischi associati all'intelligenza artificiale (IA). Come si può attaccare un sistema informatico allo stesso modo esistono gli attacchi ai modelli di machine learning, come l'avvelenamento dei dati e gli esempi avversariali, che minano l'integrità dei sistemi. Inoltre, si evidenzia come i bias nei dati di addestramento possano portare a decisioni discriminatorie, influenzando settori cruciali come la giustizia e l'occupazione. La necessità di una spiegabilità nell'IA viene sottolineata per garantire trasparenza, fiducia e un uso etico della tecnologia. L'obiettivo è fornire una visione equilibrata, sottolineando l'importanza di una vigilanza continua e di miglioramenti costanti per sfruttare il potenziale dell'IA in modo responsabile.
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
Open source, in Python, compatibile con vari LLM ed estendibile tramite plugin: queste sono solo alcune delle potenzialità del framework Cheshire Cat AI!
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfCommit University
This document contains slides from a presentation by Luca Del Puppo about building GraphQL servers using Fastify and Mercurius. The presentation introduces GraphQL and its advantages over REST APIs. It then discusses why Mercurius is a good choice for building GraphQL servers on Fastify and outlines some features it provides out of the box. The presentation concludes by providing resources for learning more about Fastify, Mercurius and building GraphQL servers.
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
Vuoi migliorare la gestione dei progetti a lungo termine con team multidisciplinari e prendere decisioni rischiose in modo sicuro e ponderato? Non perderti il nostro workshop gratuito!
Antonio Dell’Ava, Frontend Developer di eDreams Odigeo, condividerà strategie per aiutarti a ottimizzare la collaborazione nel tuo team, scegliere gli strumenti giusti per ogni situazione e garantire l’evoluzione del progetto nel tempo
A volte essere pigri è una qualità, evita (quasi) tutte le richieste di personalizzazioni lasciando "finestre aperte" nei tuoi componenti generici.
Gli slots sono un modo per passare il contenuto a un componente in Vue.js. Permettono di definire una sezione nel template di un componente che può essere sostituita dall'esterno.
È inoltre possibile assegnare un nome o uno "scope" agli slots, garantendo così maggiore controllo e personalizzazione sul contenuto. I "named slots" consentono di definire più slots nello stesso componente, assegnando dei nomi specifici.
Gli "scoped slots" ti consentono di accedere dall'esterno ai dati interni del componente.
Quante volte mi è capitato di migliorare applicazioni lente e difficili da ottimizzare, ma poi ho scoperto Qwik e tutto è cambiato.
Con il suo nuovo modello mentale è in grado di fare la differenza e scalare facilmente qualsiasi applicazione.
Non conosci questo framework? Nessuna paura...andiamo a scoprirlo assieme!
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Commit University
Backstage is an open source platform for building developer portals that unifies all tooling, services, apps, data, and documentation with a single consistent UI. It allows developers to focus on their work by providing a centralized location to create software, manage what they own, and explore the entire software ecosystem. Backstage has a customizable, extensible plugin architecture built with modern technologies to make it easy to develop for and contribute to developer portals in a cloud-agnostic, vendor-neutral way.
Nella giungla degli ORM node, Prisma sta prendendo sempre più piede. Ha migliorato la Developer Experience, si integra perfettamente con Typescript e funziona dannatamente bene con diversi provider. In questo talk, vedrai come Prisma può migliorare il tuo lavoro quotidiano e come ti permette di avere un maggior controllo della tua code base aiutandoti a prevenire fastidiosi errori nella tua applicazione nodejs.
Decision-making for Software Development Teams - Commit UniversityCommit University
Ti senti bloccato quando si tratta di prendere decisioni critiche su aspetti tecnologici? Vuoi conoscere i processi decisionali collaborativi e come applicarli al tuo team?
Francesco Strazzullo, Chief Operating Officer di Claranet Italia, ti insegnerà gli elementi chiave per prendere decisioni critiche su aspetti tecnologici, gestire i requisiti non funzionali e lavorare con processi decisionali collaborativi.
L’Advisor Leader dell’area Game di NABA, Marco Secchi, ti insegnerà come migliorare la gestione degli oggetti in-game e la loro comunicazione utilizzando Unity Engine e Design Pattern Component.
La prototipazione è un’attività fondamentale per “capire facendo”. Lo scopo della prototipazione non è costruire partendo da un progetto definito ma, piuttosto, acquisire dati preziosi per essere poi più consapevoli di prendere la giusta direzione. Alla base delle attività di prototipazione ci sono spesso strumenti low code e no code. Esistono ormai da diversi anni e ultimamente stanno guadagnando sempre più attenzione nella community per la loro immediatezza e velocità. Abbiamo definito meglio le loro qualità e le opportunità che ci sono nel loro utilizzo.
Durante il talk abbiamo approfondito perché è importante prototipare e come questa attività migliora i nostri progetti. In particolare, abbiamo approfondito l’utilizzo AWS Step Functions Workflow Studio, strumento low code prodotto da AWS. Workflow Studio ci permette di imbastire una state machine basata su step functions con uno strumento visuale drag & drop che semplifica moltissimo il nostro lavoro. Abbiamo analizzato cosa lo contraddistingue da altri strumenti e quali sono i suoi punti di forza. Infine siamo passati alla pratica facendo una piccola esercitazione con AWS Step Functions.
KMM survival guide: how to tackle struggles between Kotlin and SwiftCommit University
Kotlin Multiplatform Mobile (KMM) è un SDK per lo sviluppo di applicazioni Android ed iOS che consente agli sviluppatori di condividere la business logic mantenendo UI/UX native.
Ogni SDK/framework cross/multi platform ha i suoi pro ed i suoi contro, e purtroppo KMM non è l'eccezione che conferma la regola.
Se sei uno sviluppatore Android potresti pensare che tutto funzionerà correttamente, ma purtroppo non sarà così quando dovrai confrontarti con Swift.
Se sei uno sviluppatore iOS saprai che Swift è simile a Kotlin, ma non in tutto, dovrai quindi conoscere alcune sue caratteristiche.
In questo talk vedremo quali sono i problemi che si possono riscontrare nell'interoperabilità tra Kotlin e Swift, i motivi che li causano, e come risolverli.
Stai perdendo la testa cercando di convertire il tuo state manager da Vuex a Pinia?
Ecco una guida step-by-step per affrontare questo task senza difficoltà.
I micro-frontend sono uno degli argomenti più interessanti nel mondo frontend dell'ultimo periodo ma nonostante la loro popolarità, non esistono delle linee guida comuni per svilupparli. micro-lc risponde a questa esigenza e permette di raccogliere in un unico applicativo tanti micro-frontend, orchestrandoli e rendendoli parte della stessa applicazione e non più componenti singoli, scollegati e sconnessi.
Fastify è il web framework del momento e diverse aziende in tutto il mondo lo stanno utilizzando in produzione da anni.
Costruito da zero per essere il più veloce possibile, con un overhead minima e una potente architettura a plugin, Fastify fornisce la migliore esperienza di sviluppo, senza sacrificare prestazioni e sicurezza.
2. Alla scoperta dei Vector
Database e dei RAG
Gli strumenti che consentono all'intelligenza
artificiale di dialogare con i tuoi dati.
3. Di cosa parleremo?
1. Vector database
a. A cosa servono e perché sono importanti
b. Un confronto tra diversi database
c. Concetti principali
2. I Retrieval Augmented Generation systems
a. Cosa sono e a cosa servono?
b. Strumenti e concetti più importanti
c. Agenti, memoria e frameworks
3. Il futuro
3
4. It is difficult to think of a major industry that AI will not
transform. This includes healthcare, education,
transportation, retail, communications, and agriculture.
There are surprisingly clear paths for AI to make a big
difference in all of these industries.
Despite all the hype and excitement about AI, it's still
extremely limited today relative to what human intelligence
is.
Andrew Ng
5. Models
Foundational and
Machine Learning
Models (Tabular, NLP,
Vision)
5
App
Software applications
and frameworks (RAG
and Agents)
Tools
Tutto quello che
sostiene lo sviluppo e
i dati (Engineering)
La ricetta per l'intelligenza artificiale
Data Science vs ML Engineering
8. Models
Foundational and
Machine Learning
Models (Tabular, NLP,
Vision)
8
App
Software applications
and frameworks (RAG
and Agents)
Tools
Tutto quello che
sostiene lo sviluppo e
i dati (Engineering)
La ricetta per l'intelligenza artificiale
Data Science vs ML Engineering
9. Come sono nati?
Memorizzare e storicizzare vettori a tante dimensioni
Rappresentare dati non strutturati (testo, video, audio) attraverso dei vettori (embeddings)
indicizzati in maniera efficiente.
Cercando ed estraendo informazioni velocemente senza saturare la RAM.
Possibilmente sfruttando il calcolo parallelo (GPU).
All'inizio erano sistemi per rappresentare Knowledge Graphs (turn over 2019)
9
14. Vector Embeddings
Dobbiamo gestire tipologie di dati complesse (Immagini, documenti, audio).
Unimodality and Multimodality encoding.
Spazio latente.
14
Dot product: This produces a
non-normalized value of an
arbitrary magnitude
Cosine distance: This produces
a normalized value (between -1
and 1)
15. Concetti importanti
Quali sono i concetti importanti in un vector database
15
● Punti: vettori (embeddings) che in un insieme devono avere simile dimensionalità
(confrontabili).
● Collections: uno o più agglomerati di punti.
● Payload: memorizzare informazioni di contesto assieme ai vettori (json - data types).
● Indexing: payload e points indexes.
● Storage: come e dove memorizzare indici e payload.
● Optimizer: ottimizzazione degli indici, dello spazio, del database (tanti tipi).
● Filtering: filtrare le informazioni prima della ricerca utilizzando gli indici del payload.
● Search: ricercare nello spazio vettoriale di punti di una collection.
● Snapshot: archivi contenenti configurazioni e dati per le migrazioni
16. Generiamo e scriviamo un embedding
Prendiamo dei dati e un modello da hugging face.
Creiamo un interfaccia.
Generiamo un embedding
Inseriamo l'embedding dentro a Qdrant all'interno di una collection
16
17. Indicizzare e ricercare
L'obiettivo della ricerca per similarità è quello di fornire i vettori top-k più simili al vettore della
query di input.
- Algoritmi ANN (Approximate Nearest Neighbor)
C'è un'importante distinzione tra un algoritmo di ricerca e l'indice su cui un algoritmo ANN
opera.
17
18. Indicizzare
Vengono indicizzati in realtà anche gli embeddings, ovvero viene creata una strutture dati che
consente una ricerca efficiente restringendo rapidamente lo spazio di ricerca.
- Livello 1: Strutture dati per organizzare gli indici
- Livello 2: Compressione (velocità vs precisione): quantization
18
Indice spezzato in piccoli pezzi e convertiti in interi (o piccoli float)
Scalar quantization (SQ): divisione del vettore in bins di interi tenendo
conto del max e min.
Product quantization (PQ): divisione del vettore in base alla distribuzione
dei valori e poi decomposti utilizzando il prodotto cartesiano
19. HNSW
Algoritmo più utilizzato al momento in tutti i vector database, molto efficiente e veloce.
- Hierarchical Navigable Small World (HNSW) graphs
19
PRO
Efficienza ad alta dimensionalità su spazi elevati
Ricerca veloce grazie alla struttura gerarchica
Scalabilità avanzata
Bassa memoria
Caratteristiche
Struttura gerarchica a livelli di connessioni
Small-world connectivity (percorsi brevi)
Inserimento incrementale: top-down
Ricerca efficiente incrementale top-down
Contro
Implementazione molto complessa
Inserimento nuovi elementi costoso
Molto suscettibile alla configurazione dei
parametri
Questione dell'entry-point
20. DiskANN
HNSW può richiedere però tanta RAM in inserimento e ricerca, rendendo complicata la
scalabilità su tanti dati, ecco perchè tutti stanno cercando di implementare:
- Vamana (DiskANN implementation)
20
PRO
Efficienza su tanti dati (terabyte)
Scalabilità con buone prestazioni
Riduzione dei costi di archiviazione
Efficienza nella gestione dei dischi
Approccio Inside-out rispetto outside-out
Performance simili a HNSW
Caratteristiche
Creazione del grafo random basato su direct-graphs
Diversi livelli di ottimizzazione con i nodi connessi vicini
Pruning del grafo per long-range edges e rimozione short edges
Step di ottimizzazione dopo l'inserimento
Batch delle richieste e indicizzazione su disco
Utilizzo di Paging e Caching
Contro
Latenza delle query
Complessità di implementazione, costruzione del
grafo complessa e costosa
Alta dipendenza dall'hardware (costo e
prestazioni)
Performance degradation nel tempo
Più nuovo di HNSW (Microsoft research India)
22. Models
Foundational and
Machine Learning
Models (Tabular, NLP,
Vision)
22
App
Software applications
and frameworks (RAG
and Agents)
Tools
Tutto quello che
sostiene lo sviluppo e
i dati (Engineering)
La ricetta per l'intelligenza artificiale
Data Science vs ML Engineering
23. ● Il linguaggio naturale non è sempre il miglior input
● È fondamentale cercare di controllare l'output dei modelli
generativi
● Aggiungere funzionalità ai modelli
● Aggiungendo un layer software si possono ottenere
applicazioni incredibili con poco effort e con modelli "scarsi"
Cosa sono i RAG?
Retrieval Augmented Generation: Integrare il recupero di informazioni specifiche (retrieval)
integrato con la generazione di testo (generation)
23
● Question and answering systems
● Content creation and summarization
● Conversational agents (chatbots)
● Information Retrieval
● Educational tools and resources
● Legal research and analysis
● Content recommended system
Agganciare i modelli e i vector database con altre funzionalità
(bridge)
24. Cosa sono i RAG?
24
Un esempio con i documenti
25. Diverse soluzioni e approcci
25
Ci sono molti "design pattern" e sistemi diversi che si possono costruire
28. Conversation walking
28
Creare RAG avanzati che ti aiutino a navigare un problema, seguendo una conversazione o
eseguendo dei task (multi-shot retrieval o anche conversation chain), non single shot.
● Walking RAG: vogliamo migliorare le risposte generate con un processo iterativo di raccolta e perfezionamento
delle informazioni prima di dare una risposta finale
● Ricerca iterativa: Eseguire più cicli di ricerca raccogliendo informazioni gradualmente
● Riuso di fatti parziali: In ogni ciclo devo estrarre dei fatti parziali per le interrogazioni successive
● Connessione ad altre applicazioni: Utilizzare altri strumenti e altre applicazioni per creare una risposta più
completa.
● Tenere memoria della conversazione: Memoria di breve e lungo periodo per ricordarsi cosa si è stato detto e
recuperare il contesto della conversazione.
29. Tool agents
29
Un agente è un componente software in grado di interagire con un modello e creare delle
sequenze di azioni da eseguire, utilizzando dei dialogue template.
● Sono diversi dai rag, non sono "lineari"
● ReAct agents: Reason + Act
● Tanti tipi di agenti diversi
● Possibile integrare altri tipi di chiamate (altri strumenti, altre
API, altre funzioni)
● Interagire con output di diversi formati (XML, Json)
● In pratica: è un LLM con un "reflection agent" che prende delle
decisioni e ha accesso ad un set di strumenti per completare
dei task.
Flusso
- Il RAG riceve il messaggio dell'utente
- Il RAG cerca un contesto nella memoria usando il messaggio
come query
- Se c'è un particolare pattern o una particolare call to action il
Tool Agent inizia il suo loop.
- BIAS rispetto ad uno specifico approccio
- È importante integrare con risorse esterne
(google)
- Problema della "risposta finale"
- Sempre suscettibili rispetto al prompt
30. Memory
30
È fondamentale in questi sistemi il concetto di memoria, solitamente basata su un vector
database (cheshire cat memory system)
● Episodic memory: contiene l'estratto di quello che l'utente ha detto nel passato
● Declarative memory: contiene un estratto dei documenti in un vector database
● Procedural memory: funzioni, azioni, API, altri modelli che è possibile utilizzare (agents)
31. Frameworks (AI Engines)
31
Ci sono diversi frameworks che consentono di costruire tutta questa infrastruttura software.
- Langchain: il più utilizzato e completo, ma molto confusionario
- LlamaIndex: meno utilizzato, più adatto per i RAG, ma molto
chiaro
- Haystack: nato per NLP, si è adattato agli LLM e ai RAG.
Interessante e semplice da utilizzare.
34. Prima alcune considerazioni
Alcuni problemi che sto affrontando
34
Generazione statica di contenuto
- Recuperare informazioni è difficile: Attenzione ad utilizzare solamente sistemi vettoriali e modelli
- Velocità e memoria: Servono tante risorse, i modelli sono lenti, tanti tipi di ottimizzazione diverse
- Rendere il modello capace di rispondere come ci si aspetta: Spesso è importante pilotare una conversazione, mettere
dei limiti e dei confini ad una conversazione.
Altri problemi
- Multimodalità: È difficile interagire con collezioni diverse
- Dati Tabulari: Sono il 90% dei dati nelle aziende, ma è ancora difficile creare degli embeddings
- Grandi modelli: Come sappiamo i modelli LLM sono molto grandi, ma è proprio necessario usare grandi modelli?
- Licenze: È un gran casino al momento :)
- Data quality management: dei documenti e dei dati aziendali
- Scalabilità e infrastruttura
35. Le sfide del futuro
È un mondo estremamente in fermento, a diversi livelli…cosa sta succedendo?
35
- Evoluzione degli agenti: Migliori frameworks, nuovi design patterns, nuovi linguaggi, interazioni ad alto livello (similarità
con i sistemi operativi).
- Sviluppi Interdisciplinare (multimodality): Integrare diverse modalità in diverse aree (Modelli versatili e omnicomprensivi)
- Migliore efficienza: velocità di generazione dei tokens.
- Migliore scalabilità: modelli più rapidi, veloci e facili da deployare (con anche nuovi strumenti di orchestrazione e
deploy)
- Nuovi algoritmi: Nuovi algoritmi a tutti i livelli (vector, llm, base models), ma spero che l'AI generativa non cannibalizzi
tutta la ricerca e il mercato.
- Etica e osservabilità: ovviamente servono strumenti per controllare i modelli, per osservare il loro stato e capire cosa
stanno facendo e per quale motivo (contenere, limitare, indirizzare, spiegare).
E la ricerca di base?
Quanti di voi usano strumenti di Intelligenza artificiale tutti i giorni nel proprio lavoro in modo attivo, conscio (non passivo)?Quanti di voi fanno intelligenza artificiale tutti i giorni?Quanti di voi usano tutti i giorni foundational models?https://aiindex.stanford.edu/report/
https://github.com/facebookresearch/faisshttps://thedataquarry.com/posts/vector-db-1/https://www.youtube.com/watch?v=qTcZeu9bk_k&ab_channel=NomicAIPostgres è ovunque, è l'unico che ha interessi opensource…se non usi postgres nel 2024 o non lo hai usato c'è qualche problema nel tuo stack tecnologico (così come REDIS).
OLTP: On line transaction processingOLAP: On line analytics processing
come funzionava "l'encoding" prima delle deep neural networks?https://qdrant.tech/articles/what-are-embeddings/https://thedataquarry.com/posts/vector-db-2/
Lancedb al momento è il più promettente perchè è l'unico vector database dove gli indici sono disk-based! https://papers.nips.cc/paper_files/paper/2019/hash/09853c7fb1d3f8ee67a61b6bf4a7f8e6-Abstract.htmlhttps://github.com/microsoft/DiskANN