Melaksanakan Pertanyaan Keserupaan
Laksanakan pertanyaan keserupaan vektor asas menggunakan operator pgvector untuk mencari jiran terdekat dalam data anda.
Melaksanakan Pertanyaan Keserupaan ialah pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pangkalan Data Vektor: Pinecone, Weaviate & pgvector merangkumi sejumlah 4 pelajaran.
Membuka Kunci Pertanyaan Keserupaan
Selamat datang! Dalam pelajaran ini, kita akan mendalami salah satu ciri paling hebat pangkalan data vektor: pertanyaan keserupaan.
Anda akan belajar cara meminta pangkalan data mencari item yang 'serupa' dengan item tertentu berdasarkan pembenaman vektornya.
Mengapa Keserupaan Penting
Pertanyaan keserupaan menjadi teras kepada banyak aplikasi AI:
- Sistem Pengesyoran: Cari produk yang serupa dengan produk yang disukai pengguna.
- Carian Semantik: Dapatkan dokumen yang mempunyai makna serupa, bukan sekadar padanan kata kunci.
- Pengesanan Anomali: Kenal pasti titik data yang luar biasa 'jauh' daripada titik lain.
Pertanyaan ini membantu kita memahami data berdimensi tinggi.
Mengukur Jarak Vektor
Bagaimanakah kita mentakrifkan 'keserupaan' bagi vektor? Kita menggunakan metrik jarak.
Bayangkan vektor sebagai titik dalam ruang. Semakin 'dekat' dua titik, semakin serupa data yang diwakilinya. Metrik yang berbeza mengukur jarak ini dengan cara yang berbeza.
Jarak Euclid (Norma L2)
Jarak Euclid, yang juga dikenali sebagai jarak L2, ialah metrik yang paling mudah difahami. Jarak ini ialah jarak garis lurus antara dua titik dalam ruang Euclid.
Dalam pgvector, anda menggunakan operator <-> untuk mengira jarak Euclid. Nilai yang lebih kecil bermakna keserupaan yang lebih tinggi.
Keserupaan / Jarak Kosinus
Keserupaan kosinus mengukur kosinus sudut antara dua vektor. Ia memberitahu anda sama ada vektor menunjuk ke arah yang lebih kurang sama, tanpa mengira magnitudnya (panjangnya).
pgvector menggunakan operator <#> untuk jarak kosinus. Jarak kosinus ialah 1 - cosine_similarity. Jarak kosinus yang lebih kecil (lebih hampir kepada 0) bermakna vektor lebih sejajar dan serupa.
Menyediakan Data untuk Pertanyaan
Untuk menunjukkan cara pertanyaan berfungsi, mari kita sediakan jadual ringkas dengan beberapa vektor berdimensi 3. Ini memastikan coretan kod kita boleh dijalankan.
CREATE EXTENSION IF NOT EXISTS vector;
DROP TABLE IF EXISTS items;
CREATE TABLE items (
id serial PRIMARY KEY,
embedding vector(3)
);
INSERT INTO items (embedding) VALUES ('[1,2,3]');
INSERT INTO items (embedding) VALUES ('[1.1,2.1,3.1]');
INSERT INTO items (embedding) VALUES ('[10,20,30]');
INSERT INTO items (embedding) VALUES ('[0.9,1.9,2.9]');
INSERT INTO items (embedding) VALUES ('[1.2,2.2,3.2]');Contoh Pertanyaan Jarak Euclid
Kini, mari kita cari 3 item yang pembenamannya paling hampir dengan [1,2,3] menggunakan jarak Euclid.
Perhatikan operator <-> sedang digunakan!
SELECT
id,
embedding,
embedding <-> '[1,2,3]' AS euclidean_distance
FROM items
ORDER BY euclidean_distance
LIMIT 3;Mentafsir Hasil Euclid
Apabila anda menjalankan pertanyaan itu, anda akan melihat lajur euclidean_distance. Item dengan nilai jarak paling kecil ialah yang paling serupa dengan vektor pertanyaan anda [1,2,3].
Contohnya, [1.1,2.1,3.1] sepatutnya mempunyai jarak Euclid yang sangat kecil, menandakan keserupaan yang tinggi.
Contoh Pertanyaan Jarak Kosinus
Seterusnya, mari kita lakukan carian keserupaan menggunakan jarak kosinus. Sekali lagi, kita akan membuat pertanyaan untuk mencari item yang serupa dengan [1,2,3].
Perhatikan operator <#>. Ingat, operator ini mengembalikan jarak kosinus, dengan nilai yang lebih rendah bermakna keserupaan yang lebih tinggi.
SELECT
id,
embedding,
embedding <#> '[1,2,3]' AS cosine_distance
FROM items
ORDER BY cosine_distance
LIMIT 3;Mentafsir Hasil Kosinus
Lajur cosine_distance menunjukkan sejauh mana vektor itu sejajar. Nilai yang hampir dengan 0 bermakna vektor menunjuk ke arah yang hampir sama (sangat serupa).
Nilai yang hampir dengan 2 bermakna vektor menunjuk ke arah bertentangan (sangat tidak serupa). Nilai yang hampir dengan 1 bermakna vektor tersebut ortogon.
Memilih Metrik yang Tepat
Metrik manakah yang patut anda gunakan?
- Jarak Euclid sesuai apabila magnitud (panjang) vektor adalah penting.
- Keserupaan/jarak kosinus lebih sesuai apabila hanya arah vektor yang penting, bukan panjangnya. Ini biasa untuk pembenaman teks, apabila panjang vektor mungkin berbeza tetapi arah mewakili makna semantik.
Semakan Ringkas: Operator
Anda telah mempelajari dua operator pgvector utama untuk pertanyaan keserupaan. Mari uji pengetahuan anda!
Ulang Kaji: Pertanyaan Keserupaan
Syabas! Anda telah mempelajari cara melakukan pertanyaan keserupaan dengan pgvector.
- Kita menggunakan metrik jarak untuk mengukur keserupaan.
- Jarak Euclid (
<->) mengukur jarak garis lurus. - Jarak kosinus (
<#>) mengukur sudut antara vektor. - Pemilihan metrik yang tepat bergantung pada sama ada magnitud atau arah vektor lebih berkaitan dengan data anda.
Pelajari Pangkalan Data Vektor: Pinecone, Weaviate & pgvector dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Melaksanakan Pertanyaan Keserupaan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector, termasuk “Melaksanakan Pertanyaan Keserupaan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pangkalan Data Vektor: Pinecone, Weaviate & pgvector merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Melaksanakan Pertanyaan Keserupaan”?
Laksanakan pertanyaan keserupaan vektor asas menggunakan operator pgvector untuk mencari jiran terdekat dalam data anda. Anda berlatih Pangkalan Data Vektor: Pinecone, Weaviate & pgvector menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pangkalan Data Vektor: Pinecone, Weaviate & pgvector?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Melaksanakan Pertanyaan Keserupaan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector ini?
Ya. Setiap pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menyediakan Sambungan pgvector
- Menyimpan Vektor dalam PostgreSQL
- Melaksanakan Pertanyaan Keserupaan
- Memilih Metrik Jarak dalam pgvector