Apa itu pgvector?

pgvector adalah ekstensi untuk PostgreSQL (juga disebut Postgres) yang menyederhanakan pekerjaan dengan vektor, sehingga Anda dapat menyimpan, menelusuri, dan mengindeksnya secara langsung di database relasional Anda.

Dengan pgvector, menambahkan kemampuan lanjutan seperti penelusuran kemiripan ke aplikasi dan agen AI Anda dapat dilakukan dengan mudah dan skalabel, tanpa harus memindahkan data atau mengubah arsitektur aplikasi untuk menghubungkan jenis data vektor baru.

Membangun aplikasi yang didukung AI di Google Cloud dengan pgvector, LangChain & LLM

Poin-poin penting

pgvector adalah ekstensi open source untuk PostgreSQL yang membantu Anda menyimpan, mengindeks, dan menelusuri vektor berdimensi tinggi secara langsung di dalam database PostgreSQL yang ada. pgvector dikenal karena mendukung:

  • Penelusuran kemiripan: Membandingkan pola semantik dalam data, bukan menggunakan pencocokan kata kunci
  • Aplikasi AI: Operasi agen AI dan aplikasi penelusuran, termasuk mesin rekomendasi, chatbot, natural language processing, dan deteksi anomali

Apa itu vektor?

Vektor merepresentasikan data secara numerik dengan cara yang menangkap karakteristik utamanya, memetakannya ke dalam ruang matematika virtual. Di ruang ini, item serupa—seperti kata, gambar, atau objek—ditempatkan berdekatan.

Misalnya, pertimbangkan kata “mantel” dan “jaket”. Penelusuran tradisional berbasis kata kunci tidak akan menghubungkan kedua kata ini sebagai kata yang mirip, karena hurufnya sangat berbeda. Sistem e-commerce yang ingin menggabungkan kata kunci ini harus melakukannya secara manual. Namun, representasi vektor dari kedua kata ini akan sangat mirip karena keduanya memiliki arti yang serupa, sehingga memberikan hasil penelusuran yang lebih akurat bagi pengguna dan menghemat waktu bagi developer.

Demikian pula, jika Anda mengambil dua foto kucing yang berbeda, piksel demi pikselnya mungkin sangat berbeda. Namun, embedding vektornya akan menempatkan keduanya sangat berdekatan dalam ruang matematika, sama seperti manusia yang akan dengan mudah mengidentifikasi keduanya sebagai gambar kucing:

Gambar kucing yang dibuat dari Gemini

Agar hal ini dapat berfungsi, model embedding mengubah data mentah—seperti gambar atau teks—menjadi embedding vektor. pgvector menyimpan embedding ini di database Anda. Saat pengguna mengirimkan kueri, input tersebut juga dikonversi menjadi vektor. pgvector kemudian menghitung jarak antara vektor kueri dan vektor yang disimpan untuk mengidentifikasi "tetangga terdekat" dengan skor kemiripan tertinggi secara efisien.

Ingin tahu berbagai jenis penelusuran tetangga terdekat? Lihat panduan pengembangan aplikasi AI generatif kami.

FAQ seputar pgvector

PostgreSQL adalah sistem manajemen database relasional open source yang tangguh dan dirancang untuk menangani data terstruktur menggunakan tabel, baris, dan kolom.

pgvector adalah ekstensi yang berjalan di dalam PostgreSQL. Ekstensi ini menambahkan “vektor”, jenis data baru, ke database, sehingga memungkinkan penyimpanan dan pemrosesan embedding vektor bersama data operasional standar Anda.

Tidak, pgvector adalah ekstensi yang terintegrasi langsung ke dalam database PostgreSQL yang sudah ada. Hal ini memungkinkan Anda menambahkan kemampuan penelusuran dan AI canggih tanpa mengelola infrastruktur baru atau terpisah.

pgvector di PostgreSQL untuk aplikasi AI dan penelusuran

Dengan kemampuannya menangani vektor berdimensi tinggi, pgvector mendukung berbagai aplikasi canggih.

Pencocokan kata kunci dalam database relasional tradisional sering kali gagal mengidentifikasi koneksi yang bermakna dalam data. Penelusuran kemiripan membandingkan kedekatan vektor menggunakan metrik seperti jarak Euclidean dan jarak kosinus untuk menemukan pola yang lebih dalam, yang penting untuk aplikasi seperti pengenalan citra dan penelusuran semantik, yang hasilnya diberi peringkat berdasarkan makna. Dalam e-commerce, misalnya, penelusuran kesamaan memungkinkan rekomendasi produk dengan menganalisis perilaku pengguna dan menemukan item terkait.

Natural language processing berbasis vektor memungkinkan agen AI memahami konteks, sehingga menghasilkan percakapan yang lebih dipersonalisasi dan respons yang lebih akurat. Dukungan multibahasa meningkatkan performa mereka sebagai asisten virtual dan platform layanan pelanggan.

pgvector meningkatkan alur kerja AI dengan memungkinkan penyimpanan dan kueri embedding vektor, yang penting untuk mengidentifikasi pola yang tidak biasa dalam data. Dengan menganalisis kedekatan vektor, pgvector membantu mendeteksi anomali secara real time untuk pencegahan penipuan, keamanan jaringan, atau kontrol kualitas.

Analisis sentimen menganalisis maksud pesan, sehingga Anda dapat merutekan komentar negatif dengan tepat untuk tindakan yang lebih cepat, sehingga menghasilkan resolusi yang disesuaikan.

Untuk database tunggal yang unggul dalam kueri SQL tradisional dan penelusuran vertex modern, pertimbangkan AlloyDB untuk PostgreSQL. AlloyDB menggunakan algoritma penelusuran kemiripan vektor ScaNN (Scalable Nearest Neighbor) yang dikembangkan oleh Google, sehingga memberikan performa yang jauh lebih tinggi dibandingkan layanan PostgreSQL berbasis cloud lainnya untuk workload transaksional dan analitis dalam database besar.

Pelajari cara AlloyDB melakukan penelusuran simultan pada data terstruktur dan tidak terstruktur.

Cara mengaktifkan dan menggunakan pgvector di database Google Cloud

Cloud SQL dan AlloyDB untuk PostgreSQL mendukung pgvector, sehingga Anda dapat menyimpan dan mengkueri embedding vektor menggunakan perintah SQL standar.

1. Menghubungkan ke instance

Gunakan klien PostgreSQL pilihan Anda (seperti psql, pgAdmin, atau Konsol Google Cloud) untuk terhubung ke instance Cloud SQL atau AlloyDB Anda.

2. Mengaktifkan ekstensi pgvector

Jalankan perintah SQL berikut untuk mengaktifkan ekstensi di database Anda. Anda hanya perlu melakukan ini sekali per database.

  • SQL
Memuat...

3. Membuat tabel dengan kolom vektor

Buat tabel baru (atau ubah tabel yang sudah ada) untuk menyertakan kolom bagi data vektor. Anda harus menentukan dimensi vektor. Misalnya, untuk membuat tabel guna menyimpan embedding 3 dimensi:

  • SQL
Memuat...

4. Menyisipkan data vektor

Anda dapat menyisipkan embedding vektor seperti data standar. Vektor diformat sebagai array yang diapit tanda kurung.

  • SQL
Memuat...

5. Membuat kueri menggunakan penelusuran kemiripan

Anda kini dapat mengkueri data untuk menemukan tetangga terdekat. Operator <-> menghitung jarak Euclidean (jarak L2), yang umum digunakan untuk menemukan item yang paling mirip.

  • SQL
Memuat...

6. Menambahkan indeks untuk performa

Untuk set data yang lebih besar, menambahkan indeks dapat mempercepat performa penelusuran secara signifikan. Indeks HNSW dan ScaNN adalah opsi yang umum digunakan. Berikut contoh HNSW:

  • SQL
Memuat...

Mengatasi tantangan bisnis Anda dengan Google Cloud

Pelanggan baru mendapatkan kredit gratis senilai $300 untuk dibelanjakan di Google Cloud.

Langkah selanjutnya

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