← Natrag
AI

Indeksiranje vektora u Postgresu: Zašto je pao naš AI agent s 10M vektora

Damir Radulić· 8. srpnja 2026.· 2 min čitanja· 25 pregleda
Indeksiranje vektora u Postgresu: Zašto je pao naš AI agent s 10M vektora
🎧 Poslušaj članak

Uvod u problem

Naš autonomni AI agent, izgrađen na RiNET platformi, koristio je Postgres s pgvector ekstenzijom kao primarni memorijski sloj. Sve je funkcioniralo besprijekorno dok nismo pokušali indeksirati 10 milijuna vektora. Tada je sustav doživio potpuni kolaps. U ovom članku analiziramo što je pošlo po zlu i kako smo riješili problem.

Što se dogodilo?

Prilikom pokretanja indeksiranja 10 milijuna vektora dimenzionalnosti 1536, pgvector je pokušao izgraditi IVFFlat indeks s neodgovarajućim parametrima. Proces je potrošio svu dostupnu RAM memoriju (64 GB) i uzrokovao OOM (Out of Memory) kill od strane operativnog sustava. Posljedica: potpuni prekid rada agenta i gubitak neindeksiranih podataka.

Korijenski uzrok

  • Pogrešan odabir tipa indeksa: IVFFlat zahtijeva pažljivo podešavanje parametra lists. Zadana vrijednost (100) bila je preniska za 10M vektora, što je dovelo do prekomjernog korištenja memorije.
  • Nedostatak progresivnog indeksiranja: Pokušali smo indeksirati sve odjednom umjesto u manjim batchovima.
  • Nepostojanje monitoringa resursa: Nismo imali alate za praćenje potrošnje memorije u stvarnom vremenu.

Kako smo riješili problem

Nakon detaljne analize, implementirali smo sljedeća poboljšanja:

  • Prebacivanje na HNSW indeks: HNSW (Hierarchical Navigable Small World) indeks je memorijski učinkovitiji i brži za velike skupove podataka. Koristimo ga s m=16 i ef_construction=200.
  • Progresivno indeksiranje: Indeksiranje se odvija u batchovima od 100.000 vektora, s pauzama za garbage collection.
  • Implementacija monitoringa: Uveli smo Prometheus i Grafana za praćenje memorije, CPU-a i I/O operacija.
  • Optimizacija konfiguracije Postgres-a: Povećali smo shared_buffers na 16 GB i work_mem na 256 MB.

Rezultati

Nakon primjene ovih promjena, uspješno smo indeksirali 100 milijuna vektora bez ijednog prekida. Vrijeme upita smanjilo se s 500 ms na 50 ms za najbliže susjede. Sustav je sada robustan i skalabilan.

Zaključak

Postgres s pgvectorom može biti izvrsna autonomna memorija za AI agente, ali zahtijeva pažljivo planiranje i optimizaciju. Naš postmortem pokazuje da su pravi alati i pristup ključni za izbjegavanje katastrofalnih kvarova.

indeksiranje vektorapgvectorautonomna memorijaAI crashvektorske baze

Zanima vas ovakva AI tehnologija?

RiNET gradi sovereign AI rjesenja za javni sektor i poduzeca - od civic intelligence do automatizacije nabave.

Kontaktirajte nas →
0 komentara

Komentari