Apa itu database vektor?

Database vektor adalah database yang memungkinkan Anda menyimpan, mengindeks, dan membuat kueri embedding vektor, atau representasi numerik data yang tidak terstruktur, seperti teks, gambar, atau audio.

Google Cloud mengintegrasikan kemampuan tingkat perusahaan ini secara langsung ke dalam layanan terkelolanya, termasuk AlloyDB untuk PostgreSQL, Spanner, dan BigQuery yang membantu Anda membangun aplikasi cerdas tanpa mengelola infrastruktur secara terpisah.

Database yang mendukung vektor: hadirkan penelusuran semantik!

Apa itu embedding vektor?

Embedding vektor adalah representasi numerik data, yang biasanya didefinisikan sebagai array bilangan floating-point. Vektor tersebut menerjemahkan data tidak terstruktur yang kompleks, seperti teks, gambar, atau audio ke dalam format yang dapat diproses oleh model machine learning.

Dengan memetakan data ini ke ruang vektor, embedding menangkap makna semantik. Kemudian, item yang mirip ditempatkan lebih berdekatan, sedangkan item yang tidak mirip ditempatkan lebih berjauhan. Hubungan spasial ini membantu sistem mengidentifikasi hubungan antara titik data berdasarkan konteks dan makna, bukan hanya kecocokan kata kunci.

Jenis data lain yang didukung

Meskipun beberapa database khusus hanya mendukung embedding vektor, database yang lain mendukung banyak jenis kueri dan data selain embedding vektor. Hal ini sangat penting untuk membangun aplikasi AI generatif di atas data yang lengkap dan nyata. Dengan semakin jelasnya manfaat kueri semantik menggunakan embedding vektor, sebagian besar database akan menambahkan dukungan vektor. Di masa mendatang, kami yakin bahwa setiap database akan menjadi database vektor.

Pelajari cara penelusuran vektor Vertex AI mendukung pembangunan aplikasi AI generatif berperforma tinggi. Penelusuran vektor Vertex AI didasarkan pada Scalable Nearest Neighbor Search atau ScaNN, sebuah teknologi penelusuran vektor yang skalabel dan efisien yang dikembangkan oleh Tim Riset Google, sehingga ideal untuk menangani set data besar dan persyaratan penelusuran real-time. Pelajari penelusuran vektor dan embedding lebih lanjut di video berikut, serta mulailah dengan panduan memulai ini.

Tonton video untuk mempelajari cara membangun aplikasi yang didukung LLM dengan embedding, penelusuran vektor, dan RAG.

Bagaimana cara kerja database vektor?

Pembuatan kueri secara efisien terhadap sekumpulan besar vektor memerlukan pengindeksan khusus dan strategi penelusuran yang berbeda dari teks tradisional atau kolom numerik. Karena vektor tidak memiliki pengurutan logis tunggal, database vektor mengandalkan mekanisme berikut untuk mengambil data:

  • Penelusuran tetangga terdekat (KNN): Kasus penggunaan yang paling umum adalah mengidentifikasi vektor "k" yang paling dekat dengan vektor kueri. Mekanisme ini menggunakan metrik jarak seperti perkalian titik, kesamaan kosinus, atau jarak Euclidean untuk mengukur kedekatan dalam ruang vektor.
  • Perkiraan tetangga terdekat (ANN): Menghitung jarak yang tepat antara vektor kueri dan setiap vektor lainnya bisa menghabiskan banyak biaya secara komputasi. Untuk membantu mengurangi biaya ini, database menggunakan algoritma ANN. Algoritma ini dapat meningkatkan kecepatan penelusuran secara signifikan dengan mengorbankan sedikit akurasi (recall)—kompromi yang dapat diterima untuk sebagian besar aplikasi penelusuran semantik.
  • Pengindeksan vektor: Untuk mengaktifkan pencarian yang lebih cepat, indeks vektor mengatur data sehingga cluster vektor terdekat dikelompokkan bersama. Struktur umum mencakup daftar (yang mewakili cluster vektor), grafik (menghubungkan vektor ke tetangga), dan pohon (tempat cabang mewakili subset cluster). Setiap jenis indeks menawarkan kompromi yang berbeda terkait kecepatan pencarian, konsumsi memori, dan waktu pembuatan indeks.
  • Pemfilteran metadata: Sebagian besar aplikasi memerlukan lebih dari sekadar kemiripan semantik. Misalnya, pengguna mungkin menelusuri buku yang mirip dengan "kisah mengharukan tentang ikan" (penelusuran vektor) tetapi membatasi hasil ke item "di bawah $20" (filter metadata). Database vektor lanjutan menggabungkan predikat SQL ini dengan kesamaan vektor untuk menjalankan kueri campuran yang canggih.

Kasus penggunaan database vektor

Embedding vektor menangkap makna semantik data yang kompleks. Jika digabungkan dengan database vektor, yang menyediakan pengindeksan dan pengambilan data secara efisien, developer dapat membangun berbagai aplikasi cerdas dan alat pemrosesan data.

Developer dapat menggunakan database vektor sebagai pusat informasi eksternal untuk model bahasa besar (LLM). Dengan mengambil konteks relevan dan eksklusif sebelum mengirimkan perintah ke model, aplikasi dapat mengurangi halusinasi dan memberikan respons yang akurat secara faktual dan spesifik per domain. Hal ini penting untuk membangun agen dukungan berteknologi AI, penganalisis dokumen hukum, dan sistem pengelolaan informasi internal.

Database vektor memungkinkan developer membangun sistem personalisasi yang melampaui penyaringan kolaboratif. Dengan merepresentasikan perilaku pengguna dan atribut produk sebagai vektor, aplikasi dapat mengidentifikasi item serupa atau mencocokkan pengguna dengan konten yang sesuai dengan preferensi mereka secara real time. Arsitektur ini mendukung saran produk e-commerce, content feed, dan rekomendasi streaming media.

Tidak seperti penelusuran kata kunci tradisional, database vektor memungkinkan aplikasi penelusuran semantik yang memahami maksud pengguna. Developer dapat membangun pengalaman penelusuran yang memungkinkan pengguna membuat kueri berdasarkan konsep, bukan frasa yang tepat. Selain itu, karena vektor dapat merepresentasikan berbagai jenis data dalam ruang yang sama, Anda dapat membangun alat penelusuran multimodal—yang memungkinkan pengguna menelusuri gambar menggunakan deskripsi teks atau menemukan dokumen terkait menggunakan gambar input.

Database vektor dapat membantu mengidentifikasi pola tidak teratur dalam set data besar. Dengan membuat ruang vektor yang merepresentasikan perilaku atau transaksi "normal", developer dapat mendeteksi anomali secara terprogram yang berada jauh dari cluster yang sudah ada. Kemampuan ini sangat penting untuk membangun sistem deteksi penipuan keuangan, alat pemantauan keamanan jaringan, dan health check infrastruktur IT.

Dalam alur kerja data engineering, database vektor dapat membantu membersihkan dan menyatukan set data yang berbeda. Dengan membandingkan embedding dari data pelanggan atau listingan produk, sistem dapat mengidentifikasi entri duplikat meskipun teksnya sedikit berbeda (misalnya, "Jl. Utama" vs. "Jalan Utama"). Hal ini membantu organisasi mempertahankan satu tampilan data yang akurat.

Database vektor di Google Cloud

AlloyDB untuk PostgreSQL

AlloyDB untuk PostgreSQL menggabungkan kompatibilitas PostgreSQL dengan infrastruktur Google yang skalabel. Layanan ini menyertakan dukungan bawaan untuk embedding vektor melalui ekstensi pgvector standar dan meningkatkannya dengan indeks ScaNN Google. Hal ini dapat mempercepat kueri vektor dan memungkinkan "pemfilteran inline", yang dapat membantu mengoptimalkan penelusuran campuran dengan mengevaluasi kemiripan vektor dan filter metadata secara bersamaan untuk performa yang lebih baik.

Contoh: Penelusuran campuran untuk real estat

Sebuah aplikasi real estat tempat pengguna ingin menemukan rumah berdasarkan "suasana" (misalnya, "modern abad pertengahan dengan cahaya alami") sambil tetap mematuhi batasan yang ketat (misalnya, "3 kamar tidur", "di bawah $800 ribu", "di Distrik Sekolah A").

  • Tantangan: Penelusuran vektor standar mungkin menampilkan rumah "pertengahan abad" yang harganya $2 juta atau berada di distrik yang salah. Kueri SQL standar dapat memfilter berdasarkan harga tetapi tidak dapat memahami "nuansa pertengahan abad"
  • Solusi: Pemfilteran inline AlloyDB memindai indeks vektor dan memeriksa filter metadata SQL (harga, lokasi) secara bersamaan dalam satu proses
  • Hasil: Aplikasi menampilkan rumah yang sesuai dengan estetika dan anggaran dalam milidetik, tanpa penalti performa akibat pemfilteran hasil pasca-pemrosesan

Google Cloud mengintegrasikan kemampuan penelusuran vektor langsung ke dalam layanan database intinya, sehingga membantu Anda mengoperasionalkan AI generatif menggunakan data dan alur kerja yang ada.

Spanner

Spanner, database Google yang didistribusikan secara global, mendukung penelusuran vektor untuk aplikasi transaksional. Spanner dapat menyediakan penelusuran vektor yang sangat tersedia dan skalabel menggunakan algoritma tetangga terdekat yang tepat dan perkiraan tetangga terdekat. Hal ini memungkinkan aplikasi global menerapkan fitur seperti rekomendasi real-time atau penelusuran semantik sekaligus mempertahankan konsistensi dan keandalan yang ketat.

Contoh: Rekomendasi real-time untuk e-commerce

Platform e-commerce global ingin membangun mesin rekomendasi yang menangani penelusuran pengguna yang tidak jelas seperti "sepatu hiking terbaik untuk cuaca hujan" sekaligus memastikan ketersediaan produk secara langsung.

  • Tantangan: Pencocokan kata kunci tradisional melewatkan produk yang relevan tetapi tidak berisi istilah penelusuran yang sama persis (misalnya, deskripsi yang mengatakan "tahan air" mungkin tidak cocok dengan penelusuran "hujan"). Selain itu, memverifikasi ketersediaan inventaris di database vektor terpisah menciptakan latensi dan risiko konsistensi data selama peristiwa dengan traffic tinggi
  • Solusi: Platform ini menambahkan kolom vektor ke tabel Produk Spanner yang ada dan membuat embedding menggunakan Vertex AI melalui SQL. Penelusuran vektor Spanner ini digunakan untuk menjalankan kueri campuran yang menemukan produk dengan semantis yang mirip sekaligus memberlakukan pemeriksaan inventaris yang ketat (InventoryCount > 0)
  • Hasil: Pelanggan menerima rekomendasi produk yang akurat dan dipersonalisasi yang dijamin tersedia, serta dikirimkan dengan latensi rendah dan konsistensi global yang diperlukan untuk transaksi live

BigQuery

BigQuery dapat memungkinkan Anda melakukan analisis vektor pada set data besar tanpa perlu memindahkan data dari data warehouse Anda. Dengan fungsi VECTOR_SEARCH, Anda dapat menjalankan penelusuran kesamaan menggunakan SQL standar. Hal ini sangat berguna untuk kasus penggunaan analitis, seperti mengelompokkan pelanggan berdasarkan perilaku atau mengidentifikasi tren produk serupa di miliaran baris data.

Contoh: Deteksi ancaman pengamanan cyber dalam skala besar

Tim keamanan perlu menganalisis log server berukuran petabyte untuk mengidentifikasi aktivitas berbahaya. Penyerang sering kali sedikit memodifikasi kode mereka untuk menghindari penelusuran kata kunci dengan pencocokan persis.

  • Tantangan: Penelusuran kata kunci melewatkan variasi halus dari serangan yang diketahui (misalnya, mengubah nama variabel dalam skrip berbahaya)
  • Solusi: Tim menggunakan BigQuery untuk membuat embedding bagi miliaran entri log, lalu mereka menjalankan kueri VECTOR_SEARCH untuk menemukan semua log yang secara semantik serupa dengan tanda tangan eksploitasi yang diketahui, sehingga mengidentifikasi varian serangan baru
  • Hasil: Mereka dapat mendeteksi dan mengelompokkan ancaman zero-day di seluruh data historis selama bertahun-tahun menggunakan SQL sederhana, tanpa perlu memindahkan data ke database vektor khusus

Mengatasi tantangan bisnis Anda dengan Google Cloud

Pelanggan baru mendapatkan kredit gratis senilai $300 untuk dibelanjakan di Google Cloud.
Hubungi spesialis penjualan Google Cloud untuk membahas tantangan unik Anda secara lebih mendetail.

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.