Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uzantı PostgreSQL'e pgvector açık kaynak vektör benzerlik araması ekler.
Bu makalede tarafından pgvectoretkinleştirilen ek özellikler hakkında bilgi verilmektedir. Vektör benzerliği ve ekleme kavramlarını kapsar ve uzantının pgvector nasıl etkinleştirileceğine ilişkin rehberlik sağlar. Vektörleri oluşturma, depolama ve sorgulama hakkında bilgi ediniyoruz.
Projenin resmi BENİOKU bölümüne de başvurmak isteyebilirsiniz.
Uzantıyı etkinleştirme
PostgreSQL için Azure Veritabanı esnek sunucu örneğinizde etkinleştirmeden pgvector önce, PostgreSQL uzantılarını kullanma konusunda açıklandığı gibi bunu izin verilenler listenize eklemeniz ve komutunu çalıştırarak SHOW azure.extensions;doğru eklenip eklenmediğini denetlemeniz gerekir.
Önemli
Tüm PostgreSQL topluluğu bu uzantıya pgvector olarak başvurma eğiliminde olsa da, ikilinin ve uzantının adının basitçe vectorolduğuna dikkat edin. Bunu dikkate alın, çünkü bu ad, create EXTENSION komutu aracılığıyla izin verilenler listesine eklemek veya herhangi bir veritabanında oluşturmak için kullanmanız gereken addır.
Ardından hedef veritabanınıza bağlanıp CREATE EXTENSION komutunu çalıştırarak uzantıyı yükleyebilirsiniz. Uzantının kullanılabilir olmasını istediğiniz her veritabanı için komutu ayrı ayrı yinelemeniz gerekir.
CREATE EXTENSION vector;
Not
Uzantıyı şu anda bağlı olan veritabanından kaldırmak için kullanın DROP EXTENSION vector;.
Kavramlar
Vektör benzerliği
Vektör benzerliği, iki öğenin ne kadar benzer olduğunu ölçmek için kullanılan bir yöntemdir ve bunları sayı dizisi olan vektörler olarak temsil eder. Vektörler genellikle veri noktalarını temsil etmek için kullanılır; burada vektördeki her öğe veri noktasının bir özelliğini veya özniteliğini temsil eder.
Vektör benzerliği genellikle veya Euclidean distance benzerliği gibi cosine uzaklık ölçümleri kullanılarak hesaplanır. Öklid uzaklığı n boyutlu uzayda iki vektör arasındaki düz çizgi mesafesini ölçerken kosinüs benzerliği iki vektör arasındaki açının kosinüsünü ölçer. Benzerlik ölçümlerinin değerleri genellikle ile arasında 0 değişir ve 1higher değerler vektörler arasında daha fazla benzerlik gösterir.
Vektör benzerliği öneri sistemleri, metin sınıflandırması, görüntü tanıma ve kümeleme gibi çeşitli uygulamalarda yaygın olarak kullanılır. Örneğin, öneri sistemlerinde vektör benzerliği, kullanıcının tercihlerine göre benzer öğeleri tanımlamak için kullanılabilir. Metin sınıflandırmasında vektör benzerliği, vektör gösterimlerine göre iki belge veya cümle arasındaki benzerliği belirlemek için kullanılabilir.
Eklemeler
Ekleme, metin, resim, video veya diğer bilgi türlerinin "ilgililiğini" değerlendirme tekniğidir. Değerlendirme, makine öğrenmesi modellerinin veriler arasındaki ilişkileri ve benzerlikleri verimli bir şekilde tanımlamasına ve algoritmaların desenleri tanımlamasına ve doğru tahminlerde bulunmasına olanak tanır. Örneğin, bir yaklaşım analizi görevinde benzer eklemelere sahip sözcüklerin benzer yaklaşım puanlarına sahip olması beklenebilir.
Başlarken
Üç boyutlu vektör temsil eden türde tblvector bir embedding sütuna sahip bir tablo vector(3) oluşturun.
CREATE TABLE tblvector(
id bigserial PRIMARY KEY,
embedding vector(3)
);
OpenAI API gibi bir hizmeti kullanarak bir ekleme oluşturduktan sonra, sonuçta elde edilen vektöri veritabanınızda depolayabilirsiniz.
vector(3) Vektör tanımlama, üç boyutlu düzlemde tanımlanır[x,y,z] coordinates. komutu, sağlanan eklemelerle birlikte tabloya tblvector beş yeni satır ekler.
INSERT INTO tblvector (id, embedding) VALUES (1, '[1,2,3]'), (2, '[4,5,6]'), (3, '[5,4,6]'), (4, '[3,5,7]'), (5, '[7,8,9]');
deyimini kullanarak, ölçütlere INSERT INTO ... ON CONFLICT uyan kayıtları güncelleştirme gibi alternatif bir eylem belirtebilirsiniz. Olası çakışmaları daha verimli ve etkili bir şekilde işlemenizi sağlar.
INSERT INTO tblvector (id, embedding) VALUES (1, '[1,2,3]'), (2, '[4,5,6]')
ON CONFLICT (id) DO UPDATE SET embedding = EXCLUDED.embedding;
komutu, DELETE WHERE yan tümcesinde belirtilen koşullara göre belirtilen tablodan satırları kaldırır. WHERE yan tümcesi olmadığında, tablodaki tüm satırlar silinir.
DELETE FROM tblvector WHERE id = 1;
Vektörleri almak ve benzerliği hesaplamak için deyimleri ve yerleşik vektör işleçlerini kullanın SELECT . Örneğin sorgu, verilen vektör ile tabloda depolanan tblvector vektörler arasındaki Öklid uzaklığı (L2 uzaklığı) hesaplar, sonuçları hesaplanan uzaklıklara göre sıralar ve en yakın beş benzer öğeyi döndürür.
SELECT * FROM tblvector
ORDER BY embedding <-> '[3,1,2]'
LIMIT 5;
Sorgu, çok boyutlu bir alanda iki vektör arasındaki uzaklığı hesaplamak için kullanılan "-<" işlecini kullanır>. Sorgu, [3,1,2] vektörünün uzaklığı 6'dan az olan tüm satırları döndürür.
SELECT * FROM tblvector WHERE embedding <-> '[3,1,2]' < 6;
komut, "tblvector" tablosundan "embedding" sütununun ortalama değerini alır. Örneğin, "ekleme" sütunu bir dil modeli için sözcük eklemeleri içeriyorsa, tümceyi veya belgeyi temsil etmek için bu eklemelerin ortalama değeri kullanılabilir.
SELECT AVG(embedding) FROM tblvector;
Vektör işleçleri
pgvector vektörlerde kullanılabilecek altı yeni işleç sağlar:
| Operator | Açıklama |
|---|---|
| + | öğeye göre ekleme |
| - | öğeye göre çıkarma |
| * | öğeye göre çarpma |
| <-> | Öklid uzaklığı |
| <#> | negatif iç ürün |
| <=> | kosinüs uzaklığı |
Vektör işlevleri
cosine_distance
İki vektör arasındaki kosinüs mesafesini hesaplar.
cosine_distance(vector, vector)
Bağımsız değişkenler
vector
İlk olarak vector.
vector
İkinci vector.
Dönüş türü
double precision sağlanan iki vektör arasındaki uzaklık olarak.
inner_product
İki vektörünün iç çarpımını hesaplar.
inner_product(vector, vector)
Bağımsız değişkenler
vector
İlk olarak vector.
vector
Saniye vector
Dönüş türü
double precision iki vektörünün iç ürünü olarak.
l2_distance
İki vektör arasındaki Öklid mesafesini (L2 olarak da bilinir) hesaplar.
l2_distance(vector, vector)
Bağımsız değişkenler
vector
İlk olarak vector.
vector
Saniye vector
Dönüş türü
double precision iki vektör arasındaki Öklid uzaklığı olarak.
l1_distance
İki vektör arasındaki taksi mesafesini (L1 olarak da bilinir) hesaplar.
l1_distance(vector, vector)
Bağımsız değişkenler
vector
İlk olarak vector.
vector
Saniye vector
Dönüş türü
double precision iki vektör arasındaki taksi mesafesi olarak.
vector_dims(vector)
Belirli bir vektörünün boyutlarını döndürür.
Bağımsız değişkenler
vector
Bir vector.
Dönüş türü
integer verilen vektörünün boyut sayısını temsil eder.
vector_norms(vector)
Belirli bir vektörünün Öklid normunu hesaplar.
Bağımsız değişkenler
vector
Bir vector.
Dönüş türü
double precision verilen vektörünün Öklid normunu temsil eden.
Vektör toplamaları
AVG
İşlenen vektörlerin ortalamasını hesaplar.
Bağımsız değişkenler
vector
Bir vector.
Dönüş türü
vector işlenen vektörlerin ortalamasını temsil eder.
SUM
Bağımsız değişkenler
vector
Bir vector.
Dönüş türü
vector işlenen vektörlerin toplamını temsil eder.
İlgili içerik
- PostgreSQL için Azure Veritabanı esnek sunucusunda pgvector kullanırken performansı iyileştirin.
- PostgreSQL için Azure Veritabanı esnek sunucusunu Azure Bilişsel Hizmetler ile tümleştirin.
- Yerel olarak dağıtılan LLM (Önizleme) ile PostgreSQL için Azure Veritabanı esnek sunucusunda vektör eklemeleri oluşturun.
- PostgreSQL için Azure Veritabanı Azure Machine Learning Services ile tümleştirme.
- PostgreSQL için Azure Veritabanı esnek sunucusunda Azure OpenAI ile vektör eklemeleri oluşturun.
- PostgreSQL için Azure Veritabanı esnek sunucusunda Azure AI uzantısı.
- PostgreSQL için Azure Veritabanı esnek sunucusu ile üretken yapay zeka.
- PostgreSQL için Azure Veritabanı esnek sunucusu ve Azure OpenAI ile Öneri Sistemi.
- PostgreSQL için Azure Veritabanı esnek sunucusu ve Azure OpenAI ile AnlamSal Arama.
- PostgreSQL için Azure Veritabanı esnek sunucusunda pgvector'ı etkinleştirin ve kullanın.