pgvector Kullanım Kılavuzu
pgvector
, PostgreSQL için üçüncü taraf bir eklenti modülüdür ve vektör veri türü ile IVFFlat ve HNSW erişim yöntemlerini sağlar. Makine öğrenimi, görüntü işleme ve doğal dil işleme gibi vektör verilerini verimli bir şekilde işleme gerektiren senaryolar için uygundur. Bu makalede, pgvector
'ı ServBay'de nasıl kuracağınız ve kullanacağınız ayrıntılı olarak açıklanacaktır.
pgvector Kurulumu
ServBay, pgvector
uzantı modülünü zaten içermektedir, sadece veritabanında etkinleştirmeniz yeterlidir. İşte pgvector
'ı etkinleştirme adımları:
PostgreSQL veritabanına bağlanın:
bashpsql -U your_username -d your_database
1Uzantıyı oluşturun:
sqlCREATE EXTENSION vector;
1Kurulumu doğrulayın:
sql\dx
1
pgvector Yapılandırması
pgvector
ı etkinleştirdikten sonra, vektör verileri oluşturabilir ve yönetebilir, çeşitli erişim yöntemleri kullanarak işlemler yapabilirsiniz.
Vektör Veritabanı Tablosu Oluşturma
Aşağıda, vektör verilerini içeren bir tablo nasıl oluşturulacağına dair bir örnek yer almaktadır.
Tablo oluşturun:
sqlCREATE TABLE embeddings ( id SERIAL PRIMARY KEY, vector VECTOR(3) );
1
2
3
4Örnek veri ekleyin:
sqlINSERT INTO embeddings (vector) VALUES ('[0.1, 0.2, 0.3]'), ('[0.4, 0.5, 0.6]'), ('[0.7, 0.8, 0.9]');
1
2
3
4
Vektör İndeksi Oluşturma
Sorgu performansını artırmak için vektör sütununa indeks oluşturmanız önerilir.
IVFFlat İndeksi oluşturun:
sqlCREATE INDEX idx_ivfflat_vector ON embeddings USING ivfflat (vector) WITH (lists = 100);
1HNSW İndeksi oluşturun:
sqlCREATE INDEX idx_hnsw_vector ON embeddings USING hnsw (vector) WITH (m = 16, ef_construction = 200);
1
pgvector Kullanarak Vektör Sorguları
Aşağıda bazı yaygın vektör sorgularına örnekler yer almaktadır.
En Yakın Komşu Sorgusu
- En yakın vektörü sorgulayın:sql
SELECT id, vector FROM embeddings ORDER BY vector <-> '[0.2, 0.3, 0.4]' LIMIT 5;
1
2
3
Vektör Benzerlik Sorgusu
- Vektör benzerliğini sorgulayın:sql
SELECT id, vector, (vector <-> '[0.2, 0.3, 0.4]') AS similarity FROM embeddings ORDER BY similarity LIMIT 5;
1
2
3
Vektör Verilerini Görselleştirme
pgvector
içindeki vektör verilerini görselleştirmek için çeşitli veri görselleştirme araçlarını (örneğin Matplotlib) kullanabilirsiniz.
Matplotlib Kullanarak
Matplotlib'i yükleyin:
bashpip install matplotlib
1Python betiği oluşturun:
pythonimport psycopg2 import matplotlib.pyplot as plt # PostgreSQL veritabanına bağlanın conn = psycopg2.connect( dbname="your_database", user="your_username", password="your_password", host="localhost" ) cur = conn.cursor() # Vektör verilerini sorgula cur.execute("SELECT vector FROM embeddings") vectors = cur.fetchall() # Vektör koordinatlarını çıkar x = [v[0][0] for v in vectors] y = [v[0][1] for v in vectors] z = [v[0][2] for v in vectors] # 3D dağılım grafiği oluştur fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.scatter(x, y, z) ax.set_xlabel('X Etiketi') ax.set_ylabel('Y Etiketi') ax.set_zlabel('Z Etiketi') plt.show() # Veritabanı bağlantısını kapat cur.close() conn.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Özet
pgvector
, basit yapılandırma ve kullanım ile PostgreSQL'de verimli vektör veri depolama ve sorgulama gerçekleştirmenizi sağlayan güçlü bir vektör uzantı modülüdür. ServBay, pgvector
uzantı modülünü zaten içerir, sadece bu makaledeki adımları takip ederek kurulumu ve yapılandırmayı gerçekleştirebilirsiniz. Çeşitli vektör sorgulama ve analiz özellikleri sayesinde, vektör verilerini daha iyi kullanabilir ve uygulamanız için güvenilir bir veritabanı desteği sağlayabilirsiniz.