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

PPTX
BEGINNER’S GUIDE TO AI AGENTS (1).pptx...
PPTX
AI Workshops at Computers In Libraries 2024
PDF
Agentic RAG: What It Is, Its Types, Applications And Implementationpdf
PDF
LLM with Java.pdf
PPTX
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
PPTX
A Survey of Techniques for Maximizing LLM Performance.pptx
PDF
Facile da usare - Una moderna introduzione all'ingegneria dell'usabilità
PPTX
Vector_db_introduction.pptx
BEGINNER’S GUIDE TO AI AGENTS (1).pptx...
AI Workshops at Computers In Libraries 2024
Agentic RAG: What It Is, Its Types, Applications And Implementationpdf
LLM with Java.pdf
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
A Survey of Techniques for Maximizing LLM Performance.pptx
Facile da usare - Una moderna introduzione all'ingegneria dell'usabilità
Vector_db_introduction.pptx

What's hot (20)

PDF
Indian constitution
PPTX
Birdbrains: Bird Quiz
PPT
Indian Constitution and Polity of India
PPTX
Biz and finance quiz Xavier's Management Society Fest 2017
DOCX
10000 quiz questions and answers
PPTX
Quiz,interactive quiz,illustrated quiz
PDF
Quiz on Mahatma Gandhi
PDF
Fauji Express - An Army & Railways Quiz
PPTX
Rajagiri tech quiz prelims with answers
PPTX
The govt.of india act of 1919
PPT
India Quiz Prelims
PPTX
Nationalism in india- Shivansh Jagga, INDIA
PPTX
The Citizenship Act, 1955
PPTX
Kochi news quiz 2022 finals.pptx
PDF
Pakka Hyderabadi! | A Hyderabad Quiz by Vishnu | TackOn
PPTX
Nabadwip jatiya vidyalaya inter school quiz competition
PDF
QUIZOPHILE THE ENVIRONMENT QUIZ MANTHAN HINDU COLLEGE.pdf
PPT
Independence day-quiz
PPTX
India quiz prelims anwers mnnit
PPTX
Yellow Bullheads-The business Quiz Finals
Indian constitution
Birdbrains: Bird Quiz
Indian Constitution and Polity of India
Biz and finance quiz Xavier's Management Society Fest 2017
10000 quiz questions and answers
Quiz,interactive quiz,illustrated quiz
Quiz on Mahatma Gandhi
Fauji Express - An Army & Railways Quiz
Rajagiri tech quiz prelims with answers
The govt.of india act of 1919
India Quiz Prelims
Nationalism in india- Shivansh Jagga, INDIA
The Citizenship Act, 1955
Kochi news quiz 2022 finals.pptx
Pakka Hyderabadi! | A Hyderabad Quiz by Vishnu | TackOn
Nabadwip jatiya vidyalaya inter school quiz competition
QUIZOPHILE THE ENVIRONMENT QUIZ MANTHAN HINDU COLLEGE.pdf
Independence day-quiz
India quiz prelims anwers mnnit
Yellow Bullheads-The business Quiz Finals
Ad

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

PPTX
Scopri come sfruttare la potenza della Hybrid RAG
PPTX
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
PPTX
Intelligenza artificiale e diritto - SMAU 2018
PPTX
Smau Milano 2018 - Intelligenza artificiale applicata al diritto e alla giust...
PDF
Microsoft Fabric and Open AI - Caso d'uso reale
PDF
Presentazione bd2
PDF
Tesi Specialistica - Weka SMP
PDF
Intelligenza artificiale applicata al diritto ed alla giustizia
PDF
Intelligenza artificiale
PDF
Crogioli, alambicchi e beute: dove mettere i vostri dati.
PDF
Crogioli, alambicchi e beute, dove mettere i
PPTX
Il web 2.0
PPTX
Intelligenza artificiale, robotica, rpa, machine learning Smau Bologna 2019
PDF
Idiomatic Domain Driven Design
PDF
Ai trends 4 (next choice machines) 2
PDF
Il Web Semantico applicato agli edifici intelligenti
PPTX
Machine learning: a cosa servono
PDF
Informatica Presente e Futuro
PPT
La gestione dei dati della ricerca e il ruolo delle biblioteche: quali sfide ...
PPTX
Algoritmi ed architetture per la risoluzione di problemi di visual search
Scopri come sfruttare la potenza della Hybrid RAG
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Intelligenza artificiale e diritto - SMAU 2018
Smau Milano 2018 - Intelligenza artificiale applicata al diritto e alla giust...
Microsoft Fabric and Open AI - Caso d'uso reale
Presentazione bd2
Tesi Specialistica - Weka SMP
Intelligenza artificiale applicata al diritto ed alla giustizia
Intelligenza artificiale
Crogioli, alambicchi e beute: dove mettere i vostri dati.
Crogioli, alambicchi e beute, dove mettere i
Il web 2.0
Intelligenza artificiale, robotica, rpa, machine learning Smau Bologna 2019
Idiomatic Domain Driven Design
Ai trends 4 (next choice machines) 2
Il Web Semantico applicato agli edifici intelligenti
Machine learning: a cosa servono
Informatica Presente e Futuro
La gestione dei dati della ricerca e il ruolo delle biblioteche: quali sfide ...
Algoritmi ed architetture per la risoluzione di problemi di visual search
Ad

More from Commit University (20)

PDF
Accessibilità ed equità digitale: un impegno, non una scelta
PDF
GitHub Copilot:vediamo chi comanda - Commit University.pdf
PDF
Contract Driven Development - Branch 2024.pdf
PPTX
Cybersecurity & AI: Illusioni e Speranze
PDF
Migliorare la Developer Experience in un mondo Cloud Native
PDF
Introduzione a AWS Forecast e SageMaker DeepAR: Prevedere la Domanda con il M...
PDF
Oltre l'hype: vulnerabilità e limiti dell'intelligenza artificiale.pdf
PDF
Nell’iperspazio con Rocket: il Framework Web di Rust!
PDF
Crea il tuo assistente AI con lo Stregatto (open source python framework)
PDF
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
PDF
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
PDF
Slide-10years.pdf
PDF
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
PDF
Vue.js slots.pdf
PPTX
Commit - Qwik il framework che ti stupirà.pptx
PPTX
Sviluppare da zero una Angular Web App per la PA
PDF
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
PDF
Prisma the ORM that node was waiting for
PDF
Decision-making for Software Development Teams - Commit University
PDF
Component Design Pattern nei Game Engine.pdf
Accessibilità ed equità digitale: un impegno, non una scelta
GitHub Copilot:vediamo chi comanda - Commit University.pdf
Contract Driven Development - Branch 2024.pdf
Cybersecurity & AI: Illusioni e Speranze
Migliorare la Developer Experience in un mondo Cloud Native
Introduzione a AWS Forecast e SageMaker DeepAR: Prevedere la Domanda con il M...
Oltre l'hype: vulnerabilità e limiti dell'intelligenza artificiale.pdf
Nell’iperspazio con Rocket: il Framework Web di Rust!
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Slide-10years.pdf
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Vue.js slots.pdf
Commit - Qwik il framework che ti stupirà.pptx
Sviluppare da zero una Angular Web App per la PA
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Prisma the ORM that node was waiting for
Decision-making for Software Development Teams - Commit University
Component Design Pattern nei Game Engine.pdf

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

  • #5: 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/
  • #6: https://github.com/PythonBiellaGroup/MaterialeSerate/tree/master/ChatGPT_Detection
  • #9: https://github.com/PythonBiellaGroup/MaterialeSerate/tree/master/ChatGPT_Detection
  • #10: 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).
  • #11: https://benchmark.vectorview.ai/vectordbs.html
  • #12: https://star-history.com/#lancedb/lancedb&milvus-io/milvus&weaviate/weaviate&qdrant/qdrant&Date
  • #13: https://benchmark.vectorview.ai/vectordbs.html
  • #14: OLTP: On line transaction processing OLAP: On line analytics processing
  • #15: come funzionava "l'encoding" prima delle deep neural networks? https://qdrant.tech/articles/what-are-embeddings/ https://thedataquarry.com/posts/vector-db-2/
  • #18: https://towardsdatascience.com/comprehensive-guide-to-approximate-nearest-neighbors-algorithms-8b94f057d6b6
  • #19: 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/
  • #20: 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/
  • #21: 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
  • #23: https://github.com/PythonBiellaGroup/MaterialeSerate/tree/master/ChatGPT_Detection
  • #24: https://arxiv.org/pdf/2005.11401 https://newsletter.pragmaticengineer.com/p/rag https://www.databricks.com/glossary/retrieval-augmented-generation-rag
  • #25: https://huggingface.co/blog/hrishioa/retrieval-augmented-generation-1-basics
  • #26: https://arxiv.org/abs/2312.10997 https://arxiv.org/pdf/2404.10981
  • #27: https://arxiv.org/abs/2312.10997 https://arxiv.org/pdf/2404.10981
  • #28: https://github.com/cheshire-cat-ai/core
  • #29: https://huggingface.co/blog/hrishioa/retrieval-augmented-generation-2-walking
  • #30: https://huggingface.co/blog/hrishioa/retrieval-augmented-generation-2-walking
  • #31: https://cheshire-cat-ai.github.io/docs/conceptual/memory/long_term_memory/ https://python.langchain.com/v0.1/docs/modules/memory/
  • #32: https://star-history.com/#langchain-ai/langchain&run-llama/llama_index&deepset-ai/haystack&Date
  • #33: https://python.langchain.com/v0.2/docs/concepts/