SlideShare a Scribd company logo
Ciao!
Andrea Guzzo
https://andreaguzzo.com
Alla scoperta dei Vector
Database e dei RAG
Gli strumenti che consentono all'intelligenza
artificiale di dialogare con i tuoi dati.
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
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
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
6
Vector
Database
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
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
Quali sono?
Diverse soluzioni open source e commerciali
10
Quali sono?
Diverse soluzioni open source e commerciali
11
Come funziona?
Una visione ad alto livello
12
Come funziona?
Una visione ad alto livello
13
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)
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
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
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
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
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
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)
RAG
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
● 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)
Cosa sono i RAG?
24
Un esempio con i documenti
Diverse soluzioni e approcci
25
Ci sono molti "design pattern" e sistemi diversi che si possono costruire
Cosa sta succedendo?
26
Tantissima ricerca, stanno nascendo degli standard e ci sono diverse direzioni
Stregatto (cheshire-cat)
27
Un progetto open source tutto Italiano
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.
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
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)
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.
Langchain
32
Il futuro
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
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?
Q&A
Grazie per l'attenzione
Andrea Guzzo
https://andreaguzzo.com

More Related Content

Similar to Alla scoperta dei Vector Database e dei RAG

Appunti di big data
Appunti di big dataAppunti di big data
Appunti di big data
Franco Diaspro
 
Blockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanzaBlockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanza
Alessandro Greppi
 
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
DavideFegez
 
Basi di dati e gis n
Basi di dati e gis nBasi di dati e gis n
Basi di dati e gis nimartini
 
Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologico
Massimo Romano
 
Entity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateEntity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernate
Manuel Scapolan
 
Big Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di MelenBig Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di Melen
comunicareonline
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
Massimiliano Dessì
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
guest67beeb9
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & Analytics
Davide Mauri
 
Repository pattern
Repository patternRepository pattern
Repository pattern
Christian Nastasi
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
Vincenzo Manzoni
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009
Massimiliano Dessì
 
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
Data Driven Innovation
 
Presentazione bd2
Presentazione bd2Presentazione bd2
Presentazione bd2
Gino Farisano
 
Big data - stack tecnologico
Big data -  stack tecnologicoBig data -  stack tecnologico
Big data - stack tecnologico
Consulthinkspa
 
Elasticsearch a quick introduction
Elasticsearch a quick introductionElasticsearch a quick introduction
Elasticsearch a quick introduction
Federico Panini
 
Power B: Cleaning data
Power B: Cleaning dataPower B: Cleaning data
Power B: Cleaning data
Marco Pozzan
 
Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power biBig data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Marco Pozzan
 
La Modernizzazione dei Dati come base per La Trasformazione Digitale
La Modernizzazione dei Dati come base per La Trasformazione DigitaleLa Modernizzazione dei Dati come base per La Trasformazione Digitale
La Modernizzazione dei Dati come base per La Trasformazione Digitale
MongoDB
 

Similar to Alla scoperta dei Vector Database e dei RAG (20)

Appunti di big data
Appunti di big dataAppunti di big data
Appunti di big data
 
Blockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanzaBlockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanza
 
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
 
Basi di dati e gis n
Basi di dati e gis nBasi di dati e gis n
Basi di dati e gis n
 
Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologico
 
Entity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateEntity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernate
 
Big Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di MelenBig Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di Melen
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & Analytics
 
Repository pattern
Repository patternRepository pattern
Repository pattern
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009
 
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
 
Presentazione bd2
Presentazione bd2Presentazione bd2
Presentazione bd2
 
Big data - stack tecnologico
Big data -  stack tecnologicoBig data -  stack tecnologico
Big data - stack tecnologico
 
Elasticsearch a quick introduction
Elasticsearch a quick introductionElasticsearch a quick introduction
Elasticsearch a quick introduction
 
Power B: Cleaning data
Power B: Cleaning dataPower B: Cleaning data
Power B: Cleaning data
 
Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power biBig data analytics quanto vale e come sfruttarlo con stream analytics e power bi
Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
 
La Modernizzazione dei Dati come base per La Trasformazione Digitale
La Modernizzazione dei Dati come base per La Trasformazione DigitaleLa Modernizzazione dei Dati come base per La Trasformazione Digitale
La Modernizzazione dei Dati come base per La Trasformazione Digitale
 

More from Commit University

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Commit University
 
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfBreaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Commit University
 
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdfAccelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Commit University
 
Slide-10years.pdf
Slide-10years.pdfSlide-10years.pdf
Slide-10years.pdf
Commit University
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Commit University
 
Vue.js slots.pdf
Vue.js slots.pdfVue.js slots.pdf
Vue.js slots.pdf
Commit University
 
Commit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptxCommit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptx
Commit University
 
Sviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PASviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PA
Commit University
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Commit University
 
Prisma the ORM that node was waiting for
Prisma the ORM that node was waiting forPrisma the ORM that node was waiting for
Prisma the ORM that node was waiting for
Commit University
 
Decision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit UniversityDecision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit University
Commit University
 
Component Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdfComponent Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdf
Commit University
 
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Commit University
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step Functions
Commit University
 
KMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and SwiftKMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and Swift
Commit University
 
Da Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazioneDa Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazione
Commit University
 
Orchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lcOrchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lc
Commit University
 
Fastify has defeated Lagacy-Code
Fastify has defeated Lagacy-CodeFastify has defeated Lagacy-Code
Fastify has defeated Lagacy-Code
Commit University
 
SwiftUI vs UIKit
SwiftUI vs UIKitSwiftUI vs UIKit
SwiftUI vs UIKit
Commit University
 

More from Commit University (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfBreaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
 
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdfAccelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
 
Slide-10years.pdf
Slide-10years.pdfSlide-10years.pdf
Slide-10years.pdf
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
 
Vue.js slots.pdf
Vue.js slots.pdfVue.js slots.pdf
Vue.js slots.pdf
 
Commit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptxCommit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptx
 
Sviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PASviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PA
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
 
Prisma the ORM that node was waiting for
Prisma the ORM that node was waiting forPrisma the ORM that node was waiting for
Prisma the ORM that node was waiting for
 
Decision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit UniversityDecision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit University
 
Component Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdfComponent Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdf
 
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step Functions
 
KMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and SwiftKMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and Swift
 
Da Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazioneDa Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazione
 
Orchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lcOrchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lc
 
Fastify has defeated Lagacy-Code
Fastify has defeated Lagacy-CodeFastify has defeated Lagacy-Code
Fastify has defeated Lagacy-Code
 
SwiftUI vs UIKit
SwiftUI vs UIKitSwiftUI vs UIKit
SwiftUI vs UIKit
 

Alla scoperta dei Vector Database e dei RAG

  • 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
  • 6. 6
  • 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
  • 10. Quali sono? Diverse soluzioni open source e commerciali 10
  • 11. Quali sono? Diverse soluzioni open source e commerciali 11
  • 12. Come funziona? Una visione ad alto livello 12
  • 13. Come funziona? Una visione ad alto livello 13
  • 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)
  • 21. RAG
  • 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
  • 26. Cosa sta succedendo? 26 Tantissima ricerca, stanno nascendo degli standard e ci sono diverse direzioni
  • 27. Stregatto (cheshire-cat) 27 Un progetto open source tutto Italiano
  • 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?
  • 36. Q&A Grazie per l'attenzione Andrea Guzzo https://andreaguzzo.com

Editor's Notes

  1. 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/
  2. https://github.com/PythonBiellaGroup/MaterialeSerate/tree/master/ChatGPT_Detection
  3. https://github.com/PythonBiellaGroup/MaterialeSerate/tree/master/ChatGPT_Detection
  4. https://github.com/facebookresearch/faiss https://thedataquarry.com/posts/vector-db-1/ https://www.youtube.com/watch?v=qTcZeu9bk_k&ab_channel=NomicAI Postgres è 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).
  5. https://benchmark.vectorview.ai/vectordbs.html
  6. https://star-history.com/#lancedb/lancedb&milvus-io/milvus&weaviate/weaviate&qdrant/qdrant&Date
  7. https://benchmark.vectorview.ai/vectordbs.html
  8. OLTP: On line transaction processing OLAP: On line analytics processing
  9. come funzionava "l'encoding" prima delle deep neural networks? https://qdrant.tech/articles/what-are-embeddings/ https://thedataquarry.com/posts/vector-db-2/
  10. https://towardsdatascience.com/comprehensive-guide-to-approximate-nearest-neighbors-algorithms-8b94f057d6b6
  11. https://thedataquarry.com/posts/vector-db-3/ https://arxiv.org/pdf/1603.09320 https://towardsdatascience.com/similarity-search-part-4-hierarchical-navigable-small-world-hnsw-2aad4fe87d37 https://www.pinecone.io/learn/series/faiss/hnsw/
  12. https://thedataquarry.com/posts/vector-db-3/ https://arxiv.org/pdf/1603.09320 https://towardsdatascience.com/similarity-search-part-4-hierarchical-navigable-small-world-hnsw-2aad4fe87d37 https://www.pinecone.io/learn/series/faiss/hnsw/
  13. 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.html https://github.com/microsoft/DiskANN
  14. https://github.com/PythonBiellaGroup/MaterialeSerate/tree/master/ChatGPT_Detection
  15. https://arxiv.org/pdf/2005.11401 https://newsletter.pragmaticengineer.com/p/rag https://www.databricks.com/glossary/retrieval-augmented-generation-rag
  16. https://huggingface.co/blog/hrishioa/retrieval-augmented-generation-1-basics
  17. https://arxiv.org/abs/2312.10997 https://arxiv.org/pdf/2404.10981
  18. https://arxiv.org/abs/2312.10997 https://arxiv.org/pdf/2404.10981
  19. https://github.com/cheshire-cat-ai/core
  20. https://huggingface.co/blog/hrishioa/retrieval-augmented-generation-2-walking
  21. https://huggingface.co/blog/hrishioa/retrieval-augmented-generation-2-walking
  22. https://cheshire-cat-ai.github.io/docs/conceptual/memory/long_term_memory/ https://python.langchain.com/v0.1/docs/modules/memory/
  23. https://star-history.com/#langchain-ai/langchain&run-llama/llama_index&deepset-ai/haystack&Date
  24. https://python.langchain.com/v0.2/docs/concepts/