Più raccolte RAG competono per la RAM perché ciascuna mantiene i propri vettori, il proprio grafo di ricerca, gli indici dei metadati, le cache e il proprio insieme di dati attivi.
Un home server può separare documenti di famiglia, manuali tecnici, metadati delle foto, note di lavoro e cronologia della smart home in raccolte RAG diverse per motivi di privacy o per ottenere risultati più ordinati. I file sorgente possono occupare comodamente lo spazio disponibile su disco, mentre il livello di ricerca consuma molta più memoria del previsto. Ogni raccolta può caricare un indice approssimato dei vicini più prossimi, filtri per i dati associati, metadati dei segmenti, pagine consultate di recente e buffer per le query; i servizi di embedding e reranking aggiungono i propri modelli residenti oltre a queste raccolte.
Ogni raccolta crea una struttura di ricerca separata
Una raccolta di vettori non è solo una cartella di embedding. I motori di ricerca mantengono comunemente i valori dei vettori e un grafo di vicinato, o un’altra struttura per la ricerca approssimata, che consente di evitare la scansione di ogni record.
Weaviate identifica vettori e grafi HNSW come due importanti consumatori di memoria in un indice in-memory per la ricerca approssimata dei vicini più prossimi.
Creare cinque raccolte può quindi significare avere cinque indici indirizzabili indipendentemente, anche quando condividono lo stesso modello di embedding e risiedono nello stesso processo del database. La separazione migliora criteri e manutenzione solo quando i vantaggi per il recupero dei dati giustificano insiemi di dati attivi moltiplicati.
Dimensioni e sovraccarico degli indici moltiplicano la base
La memoria dei vettori grezzi cresce con il numero di vettori, le dimensioni degli embedding e i byte per componente. L’indice ricercabile aggiunge collegamenti del grafo, identificatori, allineamento, metadati e sovraccarico dell’allocatore oltre all’array grezzo.
Milvus fornisce una formula per la memoria degli indici vettoriali e osserva che una configurazione HNSW può richiedere molta più memoria rispetto ai soli vettori non indicizzati.
Stima ogni raccolta separatamente, poi somma i risultati. Una raccolta con meno documenti può comunque essere costosa se usa embedding ad alta dimensionalità, componenti a precisione completa o un grafo ottimizzato per un’elevata capacità di recupero.
La connettività del grafo sacrifica RAM per capacità di recupero e velocità
HNSW collega ogni vettore ai nodi vicini. Un numero maggiore di connessioni può migliorare la navigazione e la capacità di recupero, ma ogni arco memorizzato consuma memoria e rende più costosa la creazione dell’indice.
Redis spiega come la connettività del grafo sia controllata da parametri che bilanciano le dimensioni dell’indice con la capacità di recupero e il comportamento della ricerca.
Raccolte diverse possono ereditare gli stessi valori predefiniti aggressivi anche quando ne hanno bisogno solo una. Usa un profilo a minor consumo di memoria per archivi piccoli o raccolte con concorrenza ridotta invece di ottimizzare ogni indice per il carico di ricerca più impegnativo.
La mappatura della memoria sposta la pressione nella cache delle pagine condivisa
Collocare i vettori o i dati del grafo su disco tramite la mappatura della memoria può ridurre l’allocazione permanentemente residente del processo. Non rende libere le pagine attive: il sistema operativo continua a memorizzare nella RAM i blocchi dell’indice consultati di recente.
Il confronto sulla memoria di Qdrant mostra come i vettori mappati in memoria riducano l’uso misurato della RAM, introducendo però un compromesso sulla latenza quando i dati vengono recuperati dallo storage.
Quando le query passano da una raccolta all’altra, le relative pagine più utilizzate possono espellersi a vicenda dalla cache delle pagine. La stessa pressione può sostituire i dati del filesystem usati da applicazioni fotografiche, container, database e condivisioni di rete dell’home server.
Gli indici più grandi della RAM pagano con un maggiore I/O dello storage
Un indice può superare la memoria fisica e restare interrogabile, ma una parte maggiore di ogni percorso di ricerca deve essere letta dall’SSD. Gli accessi casuali e i mancati riscontri nella cache diventano quindi parte della latenza del recupero.
PlanetScale descrive indici più grandi della RAM che mantengono in memoria una struttura di navigazione più piccola, spostando più dati dei posting o dei vettori sullo storage.
Può essere un buon compromesso per un home server quando le ricerche sono occasionali e l’indice risiede su uno storage SSD veloce. È invece una scelta inadeguata quando più raccolte ricevono query simultanee o condividono un disco lento con database applicativi e carichi multimediali.
L’archiviazione duplicata e i servizi separati aggiungono copie nascoste
Lo stesso embedding può esistere in un archivio di documenti, in un indice vettoriale, in una cache dell’applicazione e in una raccolta di backup o staging. Container separati possono inoltre caricare modelli identici di embedding o reranking in spazi di indirizzamento di processi diversi.
L’analisi di Memgraph su come evitare l’archiviazione duplicata dei vettori mostra perché l’architettura dell’indice modifica il numero di copie in memoria mantenute per un singolo record ricercabile.
Il numero di raccolte è quindi solo una parte del budget. Inventaria vettori duplicati, vecchie versioni degli indici, raccolte temporanee per la ricostruzione, processi dei modelli e risultati memorizzati nella cache prima di concludere che la responsabilità sia del solo database vettoriale.
Consolida le raccolte in base ai criteri di accesso e al carico di lavoro
Usa raccolte separate quando richiedono autorizzazioni, dimensioni degli embedding, criteri di conservazione, pianificazioni di aggiornamento o confini di errore diversi. Le sole etichette tematiche non richiedono sempre un indice fisico separato.
Una raccolta condivisa con metadati relativi a tenant, proprietario, origine o categoria può riutilizzare un unico indice, mentre i filtri mantengono il recupero entro l’ambito previsto. Verifica la capacità di recupero filtrata prima del consolidamento, perché una raccolta mista eccessivamente grande può introdurre costi propri di ordinamento e manutenzione.
La spiegazione di ZimaSpace sul motivo per cui un runtime locale di IA riserva memoria aiuta a interpretare il monitoraggio: le pagine conservate e le cache possono essere uno stato di lavoro riutilizzabile anziché una perdita, ma competono comunque con il resto del server.
Imposta un budget di RAM prima di aggiungere un’altra raccolta
Registra il numero di vettori, le dimensioni, la precisione, il tipo di indice, le impostazioni del grafo, le dimensioni dell’indice dei metadati, la memoria residente dopo il riscaldamento e il picco di memoria durante l’acquisizione e le query simultanee. Misura l’intero stack, non solo il pannello del database.
Lascia margine per il sistema operativo, la cache delle pagine, i container, i database, la condivisione dei file e il modello linguistico locale. Se l’attività di swap o i page fault principali aumentano quando viene interrogata una seconda raccolta, gli insiemi di dati attivi non entrano più comodamente insieme.
Riduci dimensioni o precisione dove i test sulla capacità di recupero lo consentono, diminuisci la connettività del grafo, sposta i vettori meno utilizzati su uno storage con mappatura della memoria, limita la concorrenza delle query, scarica i modelli inutilizzati e rimuovi le raccolte superate prima di acquistare altra RAM.
Domande frequenti
Una sola raccolta RAG di grandi dimensioni è sempre più efficiente in termini di memoria?
Spesso evita la duplicazione del sovraccarico degli indici, ma può richiedere filtri più complessi e ridurre la qualità del recupero quando contenuti non correlati condividono lo stesso spazio di ordinamento. Consolida solo dopo aver verificato i confini di accesso e la capacità di recupero.
La mappatura della memoria elimina la competizione per la RAM?
No. Riduce le allocazioni permanentemente residenti, ma le pagine attive dell’indice occupano comunque la cache delle pagine del sistema operativo e possono espellere le pagine usate da altre raccolte e applicazioni.
Perché la RAM resta occupata dopo la fine di una query RAG?
Il database, l’allocatore, il sistema operativo o il runtime del modello possono conservare pagine e buffer riutilizzabili. Verifica se la memoria viene riutilizzata nelle query successive e se compaiono pressione di swap o errori di memoria insufficiente prima di definirla una perdita.
Hub Tecnologico e AI
Altro da leggere

In che modo il downsampling delle serie temporali influisce sul rilevamento delle anomalie nelle smart home?
Scopri come la larghezza dei bucket, l'aggregazione, l'anti-aliasing, i dati mancanti, la durata degli eventi e la conservazione multiscala modificano il tasso di rilevamento...

In che modo una griglia di occupazione combina segnali deboli della casa intelligente?
Scopri come le celle spaziali, i modelli dei sensori, gli aggiornamenti log-odds, il decadimento, le evidenze correlate e le soglie trasformano i deboli segnali...

In che modo la normalizzazione fotometrica influisce sul clustering privato dei volti?
Scopri come la correzione dell’illuminazione modifica i ritagli dei volti, gli embedding, le distanze tra i cluster, le soglie, l’eccessiva normalizzazione e la valutazione...

