Apa itu vector database?

Jawapan Ringkas

Vector database ialah pangkalan data yang dibina untuk menyimpan embedding, iaitu senarai nombor yang dihasilkan oleh model AI untuk mewakili makna, dan memulangkan item tersimpan yang paling hampir dengan pertanyaan dalam masa milisaat. Ia adalah langkah carian dalam chat dengan dokumen anda dan carian semantik. Anda memerlukannya apabila teks terlalu besar untuk dihantar kepada model secara keseluruhan.

Vector database menjawab satu soalan sahaja, dengan sangat pantas

Berikan ia senarai nombor dan ia akan memulangkan senarai tersimpan yang paling hampir dengannya. Itu sahaja keseluruhan antara muka.

Senarai ini ialah embedding. Model embedding menukar satu petikan, penerangan produk atau imej kepada beberapa ratus hingga beberapa ribu nombor, diletakkan supaya makna yang serupa berada berdekatan antara satu sama lain, dan apa itu embedding dalam AI menerangkan caranya. Vector database adalah tempat senarai ini disimpan apabila anda mempunyai banyak daripadanya. Ia menyimpan setiap satu dengan ID dan beberapa metadata, membina indeks ke atasnya, dan menjawab carian jiran terdekat: "ini vektor pertanyaan, berikan saya sepuluh yang paling hampir."

Bahagian yang sukar ialah perkataan pantas. Membandingkan satu pertanyaan dengan sejuta vektor tersimpan yang masing-masing mempunyai 1,536 nombor adalah 1.5 bilion pendaraban, dan melakukannya pada setiap ketukan kekunci tidak boleh berskala. Jadi vector database menggunakan indeks jiran terdekat anggaran, yang paling biasa ialah HNSW, satu struktur graf daripada kertas kerja 2016 oleh Malkov dan Yashunin yang melawat beberapa ratus calon sahaja berbanding sejuta, dan memulangkan jawapan yang betul hampir setiap kali. "Hampir" itulah pertukarannya: sedikit ketepatan (recall) untuk kelajuan seribu kali ganda.

Pangkalan data sedia ada anda memadankan perkataan; vector database memadankan makna

Pangkalan data relasi mencari baris yang nilainya sepadan: WHERE customer_id = 4127. Indeks teks penuh mencari dokumen yang mengandungi perkataan: refund AND policy. Vector database mencari item yang maknanya hampir: pertanyaan "macam mana saya nak dapatkan balik duit saya" memulangkan petikan bertajuk "Returns and refunds" walaupun kedua-duanya tidak berkongsi sebarang perkataan.

Pangkalan data relasiCarian teks penuhVector database
BertanyaBaris mana yang sepadan dengan nilai ini?Dokumen mana yang mengandungi perkataan ini?Item mana yang maknanya hampir dengan ini?
IndeksB-tree pada lajurIndeks songsang pada termaGraf atau kluster ke atas vektor (HNSW, IVF)
Tepat?YaYaBiasanya anggaran
Bagus untukID, tarikh, jumlah, joinNama, kod, frasa tepatSinonim, parafrasa, silang bahasa, imej
Lemah untukMaknaMaknaRentetan tepat, mengira, penapisan mengikut nilai
ContohPostgres, MySQL, SQLiteElasticsearch, LucenePinecone, Weaviate, Qdrant, Milvus, Chroma, pgvector

Baris terakhir menunjukkan betapa kaburnya kategori ini. pgvector menambah lajur vektor dan indeks HNSW kepada Postgres biasa, dan Elasticsearch telah membawa medan vektor sejak versi 7.0 pada 2019 dan carian HNSW sejak 8.0 pada 2022. "Vector database" selalunya adalah keupayaan di dalam pangkalan data yang anda sudah jalankan, bukannya produk baharu, dan produk berdiri sendiri bersaing dari segi skala dan kehalusan operasi, bukan melakukan sesuatu yang Postgres tidak mampu.

Chat dengan dokumen anda ialah carian vektor dengan model di penghujungnya

Retrieval-augmented generation, yang diterangkan dalam apa itu RAG, mempunyai langkah carian dan langkah penulisan. Vector database adalah langkah carian.

  1. Pecahkan setiap dokumen kepada petikan sebanyak beberapa ratus hingga seribu token.
  2. Embed setiap petikan dan simpan vektor tersebut, bersama teks petikan dan sumbernya, dalam vector database.
  3. Apabila satu soalan tiba, embed soalan itu dan minta pangkalan data untuk petikan yang paling hampir.
  4. Serahkan petikan tersebut kepada model bahasa bersama soalan, dan biarkan ia menulis jawapan.

Langkah 1 dan 2 berlaku sekali sahaja, apabila dokumen ditambah. Langkah 3 dan 4 berlaku pada setiap soalan. Model bahasa tidak pernah melihat keseluruhan koleksi; ia hanya melihat lima atau sepuluh petikan yang dipilih oleh pangkalan data. Itulah sebabnya jawapan hanya sebagus carian itu sendiri: jika vektor paling hampir adalah petikan yang salah, model akan menjawab soalan yang salah dengan yakin, yang mana apa itu halusinasi AI mengelaskannya sebagai kegagalan capaian (retrieval) dan bukannya rekaan.

Bila anda memerlukannya, dan bila menghantar keseluruhan fail lebih baik

Keputusan ini bergantung pada saiz. Model hanya boleh mempertimbangkan tetingkap konteks miliknya pada satu masa, dan setiap token di dalamnya dibayar pada setiap giliran. Vector database wujud untuk meletakkan hanya bahagian yang berkaitan di hadapan model. Untuk satu dokumen yang muat, capaian (retrieval) adalah langkah yang boleh dilangkau; untuk koleksi yang tidak muat, itulah satu-satunya pilihan.

Bandingkan kos kedua-dua reka bentuk ini pada laporan 300,000 token, beberapa ratus muka surat, ditanya sepuluh soalan, dengan mendapatkan semula lima petikan 1,000 token setiap soalan. Menghantar keseluruhan fail setiap kali adalah 3 juta token input. Mendapatkan semula lima petikan 1,000 token setiap soalan adalah 50,000. Pada kadar input tersenarai dalam indeks kos model AI, diambil daripada OpenRouter pada 2026-08-20, jurangnya ialah 60x pada setiap model. Caching prompt, di mana penyedia menawarkannya, mengenakan bayaran bacaan semula fail yang sama pada satu persepuluh hingga separuh daripada kadar tersenarai, yang mengecilkan jurang kepada kira-kira 6x hingga 30x. Capaian (retrieval) masih menang, tetapi dengan margin yang lebih kecil.

Sepuluh soalan pada laporan 300,000 token berkos 60 kali lebih mahal jika fail dihantar setiap kali
petikan diambil semulakeseluruhan fail setiap giliran$0$5$10$15harga tersenarai, sepuluh soalanGPT-5.6 Luna$0.01$0.6060xGemini 3.7 Flash$0.019$1.1360xClaude Sonnet 5$0.10$6.0060xClaude Opus 5$0.25$15.0060x

Reka bentuk keseluruhan fail memberikan sesuatu untuk wang itu apabila fail muat dalam bajet: satu kontrak 60 muka surat, kira-kira 40,000 token, membolehkan model menjawab soalan yang memerlukan keseluruhan dokumen sekali gus, seperti "adakah sesuatu di sini bercanggah dengan klausa 14", yang tidak boleh ditanya oleh capaian (retrieval) kerana ia tidak pernah melihat klausa 14 dan percanggahan itu dalam kelompok yang sama. Peraturan yang terhasil: satu dokumen, atau beberapa dokumen sahaja, dihantar secara keseluruhan; sebuah perpustakaan melalui vector database. Antara kedua-dua, pecahkan muat naik mengikut topik supaya model mendapat bahagian yang diperlukannya.

Whizi menghantar teks itu sendiri, sehingga giliran 40,000 token

Whizi tidak menjalankan vector database untuk chat anda. Apabila anda melampirkan fail, laluan muat naik dokumen mengekstrak teks tersebut dan menghantarnya kepada model sebagai teks prompt, sehingga bajet tetap 40,000 token setiap giliran; muat naik yang lebih panjang akan dipotong, dengan satu toast dan penanda dalam mesej yang menyatakannya. Fail projek berfungsi dengan cara yang sama: ciri projek menyematkan sehingga 10 fail dan membina semula teks fail-fail tersebut ke dalam prompt pada setiap mesej, dihadkan pada 32,000 aksara setiap fail dan 120,000 untuk keseluruhan blok projek.

Had ini adalah sempadan reka bentuk. Fail yang disematkan melebihi 32,000 aksara akan dipendekkan, lampiran yang melebihi bajet giliran 40,000 token akan dipotong, dan projek adalah folder, bukan perpustakaan yang boleh dicari. Pertukaran ini disengajakan: untuk kontrak atau kertas kerja yang muat dalam bajet giliran, memiliki teks itu hadir lebih baik daripada mencarinya, dan pemeriksaan yang penting, iaitu meminta model memetik petikan yang digunakannya, berfungsi kerana petikan itu memang ada. Untuk seribu dokumen, vector database adalah alat yang betul dan aplikasi chat adalah alat yang salah.

Dua tabiat terbawa daripada mekanisme ini. Namakan fail dalam soalan anda apabila beberapa fail dilampirkan, kerana model akan memilih secara senyap jika tidak. Dan untuk mana-mana jawapan yang akan anda gunakan, minta petikan itu. Sistem capaian boleh memulangkan petikan yang salah; sistem fail-penuh boleh menjawab daripada ingatannya dan bukan daripada fail. Petikan itu menangkap kedua-duanya.

Senarai Semak
  • Hantar satu dokumen secara keseluruhan; letakkan koleksi di sebalik vector database
  • Pecahkan muat naik yang panjang mengikut topik supaya model mendapat bahagian yang diperlukan oleh soalan
  • Minta model memetik petikan yang digunakannya sebelum bergantung pada jawapan
  • Gunakan carian teks biasa untuk ID, kod dan frasa tepat; carian vektor memadankan makna, bukan aksara
  • Anggap kegagalan capaian sebagai masalah carian: embed semula dengan model yang lebih baik atau petikan yang lebih kecil sebelum menyalahkan model penulis

Soalan Lazim

Apakah vector database dalam bahasa mudah?

Satu storan untuk senarai nombor yang digunakan oleh model AI untuk mewakili makna, dibina untuk mencari padanan paling hampir dengan pantas. Anda berikan embedding satu soalan dan ia memulangkan embedding, serta teks di sebaliknya, yang bermaksud sesuatu yang serupa. Ia adalah separuh carian dalam chat dengan dokumen anda apabila koleksi terlalu besar untuk dihantar secara keseluruhan.

Adakah saya perlukan vector database untuk menggunakan AI dengan dokumen saya?

Hanya jika dokumen tidak muat dalam tetingkap konteks model. Satu laporan atau kontrak sahaja boleh dihantar kepada model secara keseluruhan, dan itulah yang dilakukan oleh Whizi dengan lampiran dan fail projek yang disematkan. Sebuah perpustakaan dengan ribuan dokumen memerlukan capaian (retrieval), dan capaian memerlukan indeks vektor, sama ada dalam produk khusus atau sambungan Postgres seperti pgvector.

Apakah perbezaan antara vector database dan pangkalan data biasa?

Pangkalan data biasa memadankan nilai: ID ini, tarikh ini, perkataan tepat ini. Vector database memadankan makna, memulangkan item tersimpan yang embeddingnya paling hampir dengan embedding pertanyaan. Ia biasanya anggaran, menggunakan indeks seperti HNSW yang memeriksa beberapa ratus calon sahaja berbanding setiap item, dan ia lemah pada padanan tepat yang dilakukan dengan baik oleh pangkalan data biasa.

Vector database mana yang paling banyak digunakan?

Pinecone, Weaviate, Qdrant, Milvus dan Chroma adalah produk berdiri sendiri yang biasa digunakan, dan pgvector menambah keupayaan yang sama kepada Postgres. Elasticsearch dan OpenSearch turut menyediakan carian vektor. Pilihan biasanya bersifat operasi, iaitu tentang skala dan hosting, kerana kesemuanya melaksanakan idea jiran terdekat anggaran yang sama.

Berapa banyak yang dijimatkan oleh capaian (retrieval) berbanding menghantar keseluruhan fail?

Sepuluh soalan pada laporan 300,000 token berkos $6.00 pada Claude Sonnet 5 jika fail dihantar pada setiap giliran dan $0.10 jika lima petikan 1,000 token diambil semula sebagai gantinya, pada kadar tersenarai OpenRouter yang diambil pada 2026-08-20. Pada GPT-5.6 Luna, pasangan yang sama ialah $0.60 berbanding $0.01. Nisbahnya ialah 60x pada setiap model kerana kedua-dua reka bentuk membayar kadar setiap token yang sama.