esemény
AI-alkalmazások és -ügynökök létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációEzt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
pgvector
A KÖVETKEZŐKRE VONATKOZIK: Azure Cosmos DB for PostgreSQL (a Citus adatbázisbővítménye a PostgreSQL-re)
A pgvector
bővítmény egy nyílt forráskódú vektoros hasonlósági keresést ad hozzá a PostgreSQL-hez.
Ez a cikk bemutatja azokat az extra képességeket, amelyeket pgvector
a .. engedélyez. Ismerteti a vektorok hasonlóságának és beágyazásának fogalmait, és útmutatást nyújt a pgvector
bővítmény engedélyezéséhez. Megismerjük a vektorok létrehozását, tárolását és lekérdezését.
Érdemes lehet a projekt hivatalos README-jára is hivatkozni.
A PostgreSQL-bővítményeket engedélyezni kell az adatbázisban, mielőtt használhatja őket. A bővítmény engedélyezéséhez futtassa a parancsot a psql-eszközről a csomagolt objektumok adatbázisba való betöltéséhez.
SELECT CREATE_EXTENSION('vector');
Megjegyzés
Bővítmény használatának letiltása drop_extension()
A vektoros hasonlóság a két elem hasonlóságának mérésére szolgáló módszer, amely vektorokként jelöli őket, amelyek számsorok. A vektorokat gyakran használják adatpontok ábrázolására, ahol a vektor minden eleme az adatpont valamely funkcióját vagy attribútumát jelöli.
A vektorok hasonlóságát általában távolsági metrikák, például Euclidean distance
hasonlóság cosine
alapján számítják ki. Az euklideszi távolság az n dimenziós tér két vektora közötti egyenes vonalat méri, míg a koszinusz hasonlósága a két vektor közötti szög koszinuszát méri. A hasonlósági metrikák értékei általában között 0
és 1
között mozognak, és higher
a vektorok közötti nagyobb hasonlóságot jelző értékek.
A vektoros hasonlóságot széles körben használják különböző alkalmazásokban, például javaslati rendszerekben, szövegbesorolásban, képfelismerésben és fürtözésben. A javaslati rendszerekben például a vektoros hasonlóság használható a hasonló elemek azonosítására a felhasználó beállításai alapján. A szövegbesorolásban a vektoros hasonlóság két dokumentum vagy mondat közötti hasonlóság meghatározására használható vektorábrázolások alapján.
A beágyazás a szöveg, képek, videók vagy más típusú információk "kapcsolódóságának" kiértékelésére szolgáló technika. Az értékelés lehetővé teszi a gépi tanulási modellek számára az adatok közötti kapcsolatok és hasonlóságok hatékony azonosítását, lehetővé téve az algoritmusok számára a minták azonosítását és a pontos előrejelzések készítését. Egy hangulatelemzési feladatban például a hasonló beágyazású szavak várhatóan hasonló hangulatpontszámmal rendelkeznek.
Hozzon létre egy táblázatot tblvector
egy embedding
háromdimenziós vektort képviselő típusú vector(3)
oszlopmal.
CREATE TABLE tblvector(
id bigserial PRIMARY KEY,
embedding vector(3)
);
Miután létrehozott egy beágyazást egy olyan szolgáltatással, mint az OpenAI API, tárolhatja az eredményként kapott vektort az adatbázisban. Vektor definiálása három dimenziós [x,y,z] coordinates
síkban kijelöltkéntvector(3)
. A parancs öt új sort szúr be a tblvector
táblába a megadott beágyazásokkal.
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]');
Az utasítás használatával INSERT INTO ... ON CONFLICT
megadhat egy másik műveletet, például a feltételeknek megfelelő rekordok frissítését. Lehetővé teszi a lehetséges ütközések hatékonyabb és hatékonyabb kezelését.
INSERT INTO tblvector (id, embedding) VALUES (1, '[1,2,3]'), (2, '[4,5,6]')
ON CONFLICT (id) DO UPDATE SET embedding = EXCLUDED.embedding;
A DELETE
parancs eltávolítja a sorokat egy megadott táblából a WHERE záradékban megadott feltételek alapján. Ha a WHERE záradék nem található, a rendszer törli a tábla összes sorát.
DELETE FROM tblvector WHERE id = 1;
A vektorok lekéréséhez és a hasonlóság kiszámításához használja SELECT
az utasításokat és a beépített vektoroperátorokat. A lekérdezés például kiszámítja az euklideszi távolságot (L2 távolság) az adott vektor és a tblvector
táblázatban tárolt vektorok között, az eredményeket a számított távolság alapján rendezi, és a legközelebbi öt hasonló elemet adja vissza.
SELECT * FROM tblvector
ORDER BY embedding <-> '[3,1,2]'
LIMIT 5;
A lekérdezés a "<->" operátort használja, amely egy többdimenziós tér két vektora közötti távolság kiszámításához használt "távolság operátor". A lekérdezés az összes sort visszaadja, amelynek távolsága kisebb, mint 6 a vektortól [3,1,2].
SELECT * FROM tblvector WHERE embedding <-> '[3,1,2]' < 6;
A parancs lekéri a "beágyazás" oszlop átlagos értékét a "tblvector" táblából. Ha például a "beágyazás" oszlop szóbeágyazást tartalmaz egy nyelvi modellhez, akkor a beágyazások átlagos értéke a teljes mondatot vagy dokumentumot ábrázolhatja.
SELECT AVG(embedding) FROM tblvector;
pgvector
hat új operátort vezet be, amelyek vektorokon használhatók:
Operátor | Leírás |
---|---|
+ | elemalapú hozzáadás |
- | elem-bölcs kivonás |
* | elemalapú szorzás |
<-> | Euklideszi távolság |
<#> | negatív belső termék |
<=> | koszinusz távolság |
Kiszámítja a két vektor közötti koszinusz távolságot.
cosine_distance(vector, vector)
Először vector
.
Második vector
.
double precision
a két megadott vektor közötti távolságként.
Két vektor belső szorzatát számítja ki.
inner_product(vector, vector)
Először vector
.
Második vector
double precision
a két vektor belső termékeként.
Kiszámítja az euklideszi távolságot (más néven L2) két vektor között.
l2_distance(vector, vector)
Először vector
.
Második vector
double precision
mint a két vektor közötti euklideszi távolság.
Kiszámítja a taxikák távolságát (más néven L1) két vektor között.
l1_distance(vector, vector)
Először vector
.
Második vector
double precision
a két vektor közötti taxikák közötti távolság.
Egy adott vektor dimenzióit adja vissza.
A vector
.
integer
az adott vektor dimenzióinak számát jelöli.
Kiszámítja egy adott vektor euklideszi normát.
A vector
.
double precision
az adott vektor euklideszi normát képviseli.
Kiszámítja a feldolgozott vektorok átlagát.
A vector
.
vector
a feldolgozott vektorok átlagát jelöli.
A vector
.
vector
a feldolgozott vektorok összegét jelöli.
További információ a teljesítményről, az indexelésről és a korlátozásokról a használatával pgvector
.
esemény
AI-alkalmazások és -ügynökök létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációOktatás
Modul
Szemantikai keresés engedélyezése az Azure Database for PostgreSQL-ben - Training
Megtudhatja, hogyan engedélyezheti a szemantikai keresést az Azure Database for PostgreSQL-ben.
Tanúsítvány
Microsoft Certified: Azure Cosmos DB fejlesztői specializáció - Certifications
Hatékony lekérdezések írása, indexelési szabályzatok létrehozása, erőforrások kezelése és kiépítése az SQL API-ban és az SDK-ban a Microsoft Azure Cosmos DB-vel.