DI kūrimo terminai

Vektorinė duomenų bazė

Dar vadinama: vector database, vektorių duomenų bazė, vector DB, vektorių saugykla, vector store

Vektorinė duomenų bazė – tai duomenų bazė, kuri saugo tekstų, vaizdų ar kitų objektų embedding vektorius ir greitai suranda artimiausius pagal prasmę. Ji naudojama RAG sistemose, semantinei paieškai ir rekomendacijoms; populiariausi variantai – pgvector, Qdrant, Pinecone ir Weaviate.

Atnaujinta 2026 m. spalio 13 d.

Kas yra Vektorinė duomenų bazė

Svarbiausia trumpai
  • pgvector (v0.8.7) platinamas PostgreSQL licencija ir indeksuoja vector tipą iki 2 000, halfvec – iki 4 000 dimensijų.
  • Qdrant kodas platinamas Apache 2.0 licencija, o Qdrant Cloud siūlo nemokamą klasterį su 0,5 vCPU, 1 GB RAM ir 4 GB disko.
  • 2026-10-13 Pinecone Builder planas kainuoja 20 USD per mėnesį, Standard – nuo 50 USD mėnesio minimumo, Enterprise – nuo 500 USD.
  • Weaviate Cloud Flex planas kainuoja nuo 45 USD per mėnesį su 99,5 % SLA; pagrindinis Weaviate kodas – BSD-3-Clause, enterprise funkcijos – atskira licencija.
  • Mūsų 2026-10-13 matavimu, tiksli paieška tarp 100 000 vektorių (1 536 dimensijų) užtrunka 29 ms ir užima 614 MB atminties, tarp 1 mln. – 216 ms ir 6,1 GB.

Vektorinė duomenų bazė išsamiai

Vektorinė duomenų bazė: kaip veikia įrašymas ir paieškaVektorinė duomenų bazė: įrašymas ir paieška pagal prasmęĮrašymasDokumentaiprekės, DUKEmbedding1 536 skaičiųPaieškaKlausimas„šilti batai vaikui“Embeddingtas pats modelisVektorinė DBVektorius + tekstas + metaduomenysHNSW indeksas: artimiausi kaimynaiFiltrai: kalba, kategorija, teisėsAtstumas: kosinusinis, L2, skaliarinis5 artimiausi gabalai→ į LLM kontekstą (RAG) arba į paieškąMūsų matavimas (Apple M1 Max, 1 536 dim.):10 tūkst. vektorių – 61 MB, 3 ms100 tūkst. – 614 MB, 29 ms1 mln. – 6,1 GB, 216 ms (be indekso)
Dokumentai ir klausimai tuo pačiu embedding modeliu paverčiami vektoriais; duomenų bazė indekso pagalba randa artimiausius gabalus. Paieškos laikai – mūsų matavimas.

Vektorinė duomenų bazė (angl. vector database) – duomenų bazė, kuri saugo tekstų, vaizdų ar kitų objektų embedding vektorius ir greitai suranda artimiausius pagal prasmę. Ji yra RAG sistemų, semantinės paieškos el. parduotuvėje ir rekomendacijų pagrindas. Populiariausi variantai 2026 m.: PostgreSQL su pgvector plėtiniu, Qdrant, Pinecone, Weaviate ir Milvus.

Kaip veikia vektorinė duomenų bazė

Įprasta duomenų bazė ieško tikslių atitikmenų: „kaina < 50“ arba „pavadinimas turi žodį batai“. Vektorinė duomenų bazė ieško artimiausių taškų daugiamatėje erdvėje. Kiekvienas tekstas embedding modeliu paverčiamas skaičių vektoriumi (pvz., OpenAI text-embedding-3-small grąžina 1 536 skaičius). Panašios prasmės tekstai yra arti vienas kito, todėl užklausa „šilti batai vaikui žiemai“ randa prekę „Vaikiški pašiltinti auliniai“, nors bendrų žodžių beveik nėra.

Paieška vyksta trimis žingsniais:

  1. Klausimas paverčiamas vektoriumi tuo pačiu embedding modeliu, kuriuo buvo indeksuoti dokumentai.
  2. Duomenų bazė apskaičiuoja atstumą (dažniausiai kosinusinį) iki saugomų vektorių ir grąžina artimiausius – vadinamąją k artimiausių kaimynų paiešką (angl. k-nearest neighbors, kNN).
  3. Rezultatai filtruojami pagal metaduomenis (kalba, kategorija, sandėlio likutis, vartotojo teisės) ir perduodami toliau – į kalbos modelio kontekstą arba tiesiai į paieškos rezultatus.

Kodėl reikia indekso: HNSW ir IVFFlat

Tiksli paieška lygina klausimą su kiekvienu saugomu vektoriumi. Mažoms apimtims to užtenka, didelėms – per lėta. Todėl naudojami apytikslės paieškos indeksai (angl. approximate nearest neighbor, ANN), kurie aukoja dalį tikslumo dėl greičio:

  • HNSW – daugiasluoksnis grafas. Pagal pgvector dokumentaciją, jis greitesnis ir tikslesnis nei IVFFlat, bet lėčiau kuriamas ir naudoja daugiau atminties. Indeksą galima sukurti ir tuščiai lentelei.
  • IVFFlat – vektoriai suskirstomi į sąrašus, ieškoma tik artimiausiuose. Greičiau sukuriamas, mažiau atminties, bet prastesnis greičio ir tikslumo santykis; indeksą reikia kurti, kai lentelėje jau yra duomenų.

Pasimatavome, nuo kada indeksas tampa būtinas. 2026-10-13 Apple M1 Max kompiuteryje atlikome tikslią paiešką (visų vektorių palyginimą) su normalizuotais 1 536 dimensijų vektoriais:

Vektorių skaičiusAtmintis (float32)Tiksli paieška vienam klausimuiKą tai reiškia
10 00061 MB3 msIndekso nereikia; tinka bet kuris variantas
100 000614 MB29 msDar priimtina mažam srautui, bet indeksas jau naudingas
1 000 0006,1 GB216 msReikia HNSW indekso ir pakankamai RAM

Išvada: tipinei Lietuvos el. parduotuvei (kelios ar keliolika tūkstančių prekių) specializuota vektorinė duomenų bazė dažnai nereikalinga – užtenka esamos PostgreSQL su pgvector. Ji tampa aktuali, kai vektorių – milijonai, užklausų – šimtai per sekundę arba reikia sudėtingo filtravimo ir kelių klientų atskyrimo.

pgvector, Qdrant, Pinecone ar Weaviate: palyginimas

SprendimasLicencija (2026-10-13)Debesijos kainaKam tinka
pgvector (v0.8.7)PostgreSQL licencija (atviroji)Nemokamas plėtinys; mokate tik už savo PostgreSQL serverįKai jau naudojate PostgreSQL; iki kelių milijonų vektorių
Qdrant (v1.19.2)Apache 2.0Nemokamas klasteris 0,5 vCPU / 1 GB RAM / 4 GB disko; mokami – pagal resursus, apmokama kas valandąDidelės apimtys, sudėtingi filtrai, galima talpinti savo serveryje
PineconeUždaras kodas, tik paslaugaStarter – 0 USD (2 GB); Builder – 20 USD/mėn.; Standard – nuo 50 USD/mėn. minimumo; Enterprise – nuo 500 USD/mėn.Kai nenorite administruoti nieko; greitas startas
Weaviate (v1.40.0)BSD-3-Clause, išskyrus enterprise funkcijas (atskira licencija)Nemokama smėlio dėžė; Flex – nuo 45 USD/mėn., SLA 99,5 %Hibridinė paieška, integruoti embedding moduliai
MilvusApache 2.0Savo serveryje arba per tiekėjų debesijąLabai didelės apimtys (šimtai milijonų vektorių)

Pinecone Standard plane papildomai mokama už naudojimą: saugojimas – 0,33 USD už GB per mėnesį, skaitymo vienetai – 16–18 USD už milijoną, rašymo vienetai – 4–4,50 USD už milijoną (priklauso nuo debesijos ir regiono). Weaviate Flex plane – nuo 0,00465 USD už milijoną vektoriaus dimensijų ir nuo 0,12 USD už GiB saugojimo. Kainos pateiktos JAV doleriais, kaip jas skelbia tiekėjai.

pgvector: ką reikia žinoti prieš pradedant

  • Dimensijų riba indeksui. Tipas vector indeksuojamas iki 2 000 dimensijų, halfvec – iki 4 000, bit – iki 64 000. OpenAI text-embedding-3-large grąžina 3 072 skaičius, todėl jį reikia saugoti kaip halfvec arba sutrumpinti vektorių per API parametrą dimensions.
  • Atstumo operatoriai. Indeksas kuriamas konkrečiam atstumui: vector_cosine_ops (kosinusinis), vector_l2_ops (L2), vector_ip_ops (skaliarinė sandauga). Užklausa turi naudoti tą patį operatorių, kitaip indeksas nenaudojamas.
  • Atmintis indekso kūrimui. HNSW indeksas kuriamas greičiausiai, kai grafas telpa į maintenance_work_mem; kitaip PostgreSQL įspėja ir kūrimas sulėtėja.
  • Atsarginės kopijos ir replikacija veikia kaip įprastai, nes pgvector naudoja PostgreSQL WAL žurnalą.
  • Hibridinė paieška. Lietuviškam tekstui verta derinti vektorinę paiešką su PostgreSQL pilno teksto paieška – ji geriau randa prekių kodus, modelių pavadinimus ir tikslias frazes.

Kaip pasirinkti vektorinę duomenų bazę

  1. Suskaičiuokite apimtį. Vektorių skaičius = dokumentų gabalų skaičius. 5 000 prekių po 3 gabalus – 15 000 vektorių, tai yra apie 92 MB su 1 536 dimensijomis.
  2. Patikrinkite, ką jau turite. Jei svetainė ar sistema jau veikia su PostgreSQL, pgvector nereikalauja naujo serverio, naujos sutarties ir naujo duomenų tvarkytojo.
  3. Įvertinkite filtrus ir teises. Jei kiekvienas klientas turi matyti tik savo dokumentus, reikia patikimo filtravimo pagal metaduomenis arba atskirų vardų erdvių (angl. namespaces).
  4. Nuspręskite dėl duomenų vietos. Savo serveryje (pgvector, Qdrant, Weaviate, Milvus) duomenys lieka jūsų infrastruktūroje; valdomoje paslaugoje pasirinkite ES regioną, jei tiekėjas jį siūlo.
  5. Išbandykite su savo klausimais. Paieškos kokybę dažniau lemia embedding modelis ir dokumentų skaidymas, o ne duomenų bazė.

Kur naudojama vektorinė duomenų bazė versle

  • RAG pokalbių robotai ir vidiniai asistentai – atsakymai iš jūsų taisyklių, katalogo ir instrukcijų (pokalbių robotas, DI asistentas).
  • Semantinė prekių paieška – klientas rašo savais žodžiais, net su klaidomis ar be diakritikų.
  • Panašios prekės ir rekomendacijos – „klientai, žiūrėję šią prekę, dar domėjosi“ pagal aprašymo ar nuotraukos panašumą.
  • Dublikatų paieška – vienodų prekių kortelių, užklausų ar dokumentų radimas.
  • Klientų užklausų grupavimas – kokios temos dažniausios, kurie klausimai neturi atsakymo DUK.
  • DI agentų atmintis – agentas išsisaugo ankstesnių užduočių išvadas ir randa jas vėliau.

Vektorinės paieškos diegimą el. parduotuvėse ir vidinėse sistemose aprašome paslaugos puslapyje DI integracijos. Embedding ir kalbos modelių kainas palyginsite įrankyje DI modelių API kainos.

Pavyzdys: 15 000 ir 1 mln. vektorių – kiek kainuoja saugojimas per mėnesį

Situacija: el. parduotuvė su 5 000 prekių nori semantinės paieškos ir RAG pokalbių roboto. Kiekviena prekė suskaidoma į 3 gabalus (aprašymas, savybės, DUK) – iš viso 15 000 vektorių po 1 536 dimensijas (text-embedding-3-small), apie 92 MB neapdorotų duomenų. Antras scenarijus – dokumentų archyvas su 1 mln. vektorių (6,1 GB). Kainos – oficialūs kainoraščiai 2026-10-13, 1 EUR = 1,1181 USD (ECB 2026-10-12), be PVM.

Variantas15 000 vektorių, € / mėn.1 mln. vektorių, € / mėn.Pastaba
pgvector esamoje PostgreSQL0 (papildomai)Serverio RAM padidinimas1 mln. vektorių HNSW indeksui reikia kelių GB laisvos RAM
Qdrant Cloud, nemokamas klasteris0Netelpa (1 GB RAM)Didesniam – mokamas klasteris pagal resursus
Pinecone Starter0Netelpa (2 GB)Iki 1 mln. skaitymo vienetų per mėnesį
Pinecone Builder17,89Netelpa (10 GB, bet riboti skaitymai)Fiksuota 20 USD kaina
Pinecone Standard44,72 (minimumas)nuo 44,726,1 GB saugojimas – tik ~2 USD, bet taikomas 50 USD minimumas
Weaviate Flex40,25 (minimumas)nuo 40,251 mln. × 1 536 dimensijų – apie 7,14 USD dimensijų mokesčio, bet taikomas 45 USD minimumas

Embedding sąnaudos abiem atvejais mažos: visas 5 000 prekių katalogas su text-embedding-3-small perskaičiuojamas už kelis euro centus (žr. embedding). Išvada: 15 000 vektorių parduotuvei pigiausias ir paprasčiausias kelias – pgvector esamoje duomenų bazėje arba nemokamas valdomos paslaugos planas. Mokami planai prasmingi, kai vektorių – milijonai, reikia SLA, kelių aplinkų ir komandos prieigos. Tikroji projekto kaina – ne duomenų bazė, o duomenų paruošimas, paieškos kokybės testavimas ir indekso atnaujinimas keičiantis prekėms.

Dažniausios klaidos

  1. Rinktis specializuotą vektorinę duomenų bazę tūkstančiui dokumentų. Mūsų matavimu, 10 000 vektorių tiksli paieška užtrunka 3 ms – tai išsprendžia esama PostgreSQL be naujo tiekėjo.
  2. Keisti embedding modelį neperindeksavus visų dokumentų. Skirtingų modelių vektoriai nesuderinami, ir paieška grąžins atsitiktinius rezultatus.
  3. Kurti HNSW indeksą su vienu atstumo operatoriumi, o užklausoje naudoti kitą. Tada indeksas nenaudojamas ir paieška tampa lėta.
  4. Bandyti indeksuoti 3 072 dimensijų vektorius pgvector vector tipu. Indeksui riba – 2 000 dimensijų; reikia halfvec arba sutrumpinto vektoriaus.
  5. Nesaugoti metaduomenų šalia vektoriaus. Be kalbos, kategorijos, datos ir prieigos žymų negalėsite filtruoti, o RAG robotas gali parodyti ne tam vartotojui skirtą informaciją.
  6. Pasikliauti vien vektorine paieška lietuviškame kataloge. Prekių kodai, EAN ir modelių pavadinimai geriau randami žodine paieška, todėl reikia hibridinės paieškos.
  7. Pamiršti ištrinti vektorius kartu su šaltiniu. Jei pašalinate asmens duomenis ar prekę, ištrinkite ir jų vektorius, kitaip jie toliau dalyvaus paieškoje.

Vektorinė duomenų bazė Lietuvoje

Lietuviškam tekstui vektorinė duomenų bazė viena pati neišsprendžia fleksijos ir diakritikų problemų – „grąžinimas“, „grąžinti“ ir „grazint“ turi būti randami kartu. Tam reikia daugiakalbio embedding modelio, patikrinto su lietuviškais klausimais, ir hibridinės paieškos. Mūsų bandymas parodė, kad mažesnis OpenAI embedding modelis lietuviškus sinonimus atpažįsta prasčiau nei didesnis (žr. embedding).

Jei vektoriai sukurti iš asmens duomenų (klientų laiškų, užsakymų, CV), jie taip pat laikytini asmens duomenimis pagal BDAR: reikia teisinio pagrindo, saugojimo termino ir galimybės ištrinti pagal prašymą. Pasirinkus valdomą paslaugą už ES ribų, reikia duomenų perdavimo pagrindo ir sutarties su duomenų tvarkytoju. Priežiūros institucija – Valstybinė duomenų apsaugos inspekcija (VDAI). Atvirojo kodo sprendimus (pgvector, Qdrant, Weaviate, Milvus) galima talpinti Lietuvos ar ES duomenų centre – žr. Hetzner ir kitus mūsų technologijų įrašus.

Susiję terminai

Embedding (vektorinis įterpinys)Embedding (vektorinis įterpinys) – tai teksto pavertimas skaičių vektoriumi, kuriame panašios prasmės tekstai yra arti vienas kito. Jis…RAG (paieška papildytas generavimas)RAG (angl. retrieval-augmented generation) – tai būdas, kai prieš atsakydamas kalbos modelis gauna iš jūsų dokumentų surastas aktualias…LLM (didelis kalbos modelis)LLM (didelis kalbos modelis) – tai neuroninis tinklas, išmokytas iš milžiniško teksto kiekio nuspėti kitą teksto žetoną, todėl gebantis…DI asistentasDI asistentas (angl. AI assistant) – tai programa, kuri, remdamasi dideliu kalbos modeliu, padeda žmogui natūralia kalba rašyti,…Pokalbių robotas (AI chatbot)Pokalbių robotas (AI chatbot) – tai programa, kuri rašytine ar balso kalba bendrauja su žmogumi: atsako į klausimus, padeda rasti prekę,…DI agentas (AI agent)DI agentas – tai sistema, kurioje kalbos modelis pats sprendžia, kokius veiksmus atlikti tikslui pasiekti: kviečia įrankius, skaito…Konteksto langasKonteksto langas (angl. context window) – tai didžiausias žetonų kiekis, kurį kalbos modelis gali apdoroti per vieną užklausą: instrukcijos,…Tokenas (DI žetonas)Tokenas (DI žetonas) – tai mažiausias teksto gabalėlis, į kurį kalbos modelis suskaido įvestį ir išvestį: žodis, jo dalis ar simbolis.…Mašininis mokymasisMašininis mokymasis (angl. machine learning) – tai dirbtinio intelekto sritis, kurioje kompiuteris taisykles išmoksta iš duomenų pavyzdžių,…
Ką darome šioje srityje
  • Įvertiname jūsų duomenų apimtį ir parenkame paprasčiausią tinkamą sprendimą – dažnai pgvector esamoje duomenų bazėje.
  • Suprojektuojame dokumentų skaidymą, metaduomenis, prieigos filtrus ir hibridinę paiešką lietuvių kalbai.
  • Įdiegiame automatinį indekso atnaujinimą, kai keičiasi prekės, kainos ar dokumentai.
  • Sukuriame paieškos kokybės testų rinkinį iš jūsų tikrų klientų klausimų.
Plačiau apie paslaugą

Dažni klausimai

Kas yra vektorinė duomenų bazė paprastai?

Tai duomenų bazė, kuri saugo tekstų ar vaizdų prasmę skaičių vektoriais ir greitai suranda panašiausius. Taip galima ieškoti pagal prasmę, o ne pagal tikslius žodžius.

Kas yra pgvector?

pgvector – atvirojo kodo PostgreSQL plėtinys, pridedantis vektorių tipą, atstumų operatorius ir HNSW bei IVFFlat indeksus. Jis platinamas PostgreSQL licencija ir leidžia vektorinę paiešką daryti esamoje duomenų bazėje.

Ar Qdrant nemokamas?

Qdrant kodas yra atvirasis (Apache 2.0) ir nemokamas savo serveryje. Qdrant Cloud siūlo nemokamą klasterį su 0,5 vCPU, 1 GB RAM ir 4 GB disko; didesni klasteriai apmokami pagal resursus kas valandą.

Kiek kainuoja Pinecone?

2026-10-13 Pinecone Starter planas nemokamas (iki 2 GB), Builder kainuoja 20 USD per mėnesį, Standard turi 50 USD mėnesio minimumą ir mokestį už naudojimą, Enterprise – nuo 500 USD.

Ar reikia vektorinės duomenų bazės RAG sistemai?

Reikia vietos vektoriams saugoti ir paieškai, bet nebūtinai atskiros duomenų bazės. Daugumai MVĮ užtenka PostgreSQL su pgvector, o mažam dokumentų rinkiniui – net paieškos atmintyje.

Kuo vektorinė paieška skiriasi nuo įprastos?

Įprasta paieška ieško žodžių atitikmenų, vektorinė – prasmės artumo. Geriausi rezultatai lietuviškai gaunami jas derinant hibridinėje paieškoje.

Kiek vietos užima vektoriai?

Vienas 1 536 dimensijų vektorius float32 formatu užima 6 144 baitus, todėl 100 000 vektorių – apie 614 MB, neskaičiuojant indekso ir metaduomenų.

Kuri vektorinė duomenų bazė geriausia?

Universalaus atsakymo nėra. Jei turite PostgreSQL – pradėkite nuo pgvector; jei reikia didelės apimties ir savo serverio – Qdrant ar Milvus; jei nenorite administruoti – valdoma paslauga, pvz., Pinecone ar Weaviate Cloud.

Šaltiniai

  1. pgvector – pgvector (GitHub)
  2. Qdrant – Qdrant (GitHub)
  3. Pricing for Cloud and Vector Database Solutions – Qdrant
  4. Pricing – Pinecone
  5. Vector Database Pricing – Weaviate
  6. Weaviate LICENSE – Weaviate (GitHub)
  7. Milvus – Milvus (GitHub)
  8. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs – arXiv (Malkov, Yashunin)
  9. Vector embeddings – OpenAI
  10. Euro foreign exchange reference rates – Europos centrinis bankas
Reikia pagalbos su projektu?

Pasiūlymas su kaina ir terminais raštu, prieš pradedant darbus.

Gauti pasiūlymą