Vektoritietokannat: Pinecone, Weaviate ja pgvector · Oppitunti

Samankaltaisuuskyselyiden suorittaminen

Suorittakaa perustason vektorien samankaltaisuuskyselyitä pgvector-operaattoreilla lähimpien naapureiden löytämiseksi datastanne.

Oppitunti 3/413 vaihetta

Samankaltaisuuskyselyiden suorittaminen on ilmainen Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Vektoritietokannat: Pinecone, Weaviate ja pgvector-kurssilla on yhteensä 4 oppituntia.

Samankaltaisuuskyselyiden käyttöönotto

Tervetuloa! Tässä oppitunnissa tutustumme yhteen vektoritietokantojen tehokkaimmista ominaisuuksista: samankaltaisuuskyselyihin.

Opit pyytämään tietokantaa etsimään kohteita, jotka ovat annettua kohdetta "samankaltaisia" niiden vektoriupotusten perusteella.

Miksi samankaltaisuus on tärkeää

Samankaltaisuuskyselyt ovat monien tekoälysovellusten ytimessä:

  • Suosittelujärjestelmät: Etsi tuotteita, jotka muistuttavat käyttäjän pitämiä tuotteita.
  • Semanttinen haku: Hae merkitykseltään samankaltaisia asiakirjoja, älä pelkästään samoja avainsanoja sisältäviä.
  • Poikkeamien tunnistus: Tunnista datapisteet, jotka ovat epätavallisen "kaukana" muista.

Niiden avulla voimme ymmärtää moniulotteista dataa.

Vektorien etäisyyden mittaaminen

Miten määritämme vektorien "samankaltaisuuden"? Käytämme etäisyysmittareita.

Ajattele vektoreita avaruuden pisteinä. Mitä "lähempänä" kaksi pistettä on toisiaan, sitä samankaltaisempaa niiden taustalla oleva data on. Eri mittarit mittaavat tätä etäisyyttä eri tavoin.

Euklidinen etäisyys (L2-normi)

Euklidinen etäisyys, josta käytetään myös nimitystä L2-etäisyys, on intuitiivisin mittari. Se tarkoittaa kahden pisteen välistä suoraa etäisyyttä euklidisessa avaruudessa.

pgvector-laajennuksessa euklidinen etäisyys lasketaan operaattorilla <->. Pienempi arvo tarkoittaa suurempaa samankaltaisuutta.

Kosinisamankaltaisuus ja kosinietäisyys

Kosinisamankaltaisuus mittaa kahden vektorin välisen kulman kosinia. Se kertoo, osoittavatko vektorit suunnilleen samaan suuntaan niiden suuruudesta eli pituudesta riippumatta.

pgvector käyttää kosinietäisyydelle operaattoria <#>. Kosinietäisyys on 1 - cosine_similarity. Pienempi kosinietäisyys (lähempänä arvoa 0) tarkoittaa, että vektorit ovat paremmin samansuuntaisia ja samankaltaisia.

Tietojen valmistelu kyselyitä varten

Kyselyiden havainnollistamista varten määritetään yksinkertainen taulu, joka sisältää muutamia kolmiulotteisia vektoreita. Näin koodiesimerkit ovat suoraan suoritettavissa.

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]');

Esimerkki euklidisen etäisyyden kyselystä

Etsitään nyt kolme kohdetta, joiden upotukset ovat lähimpänä vektoria [1,2,3] käyttäen euklidista etäisyyttä.

Huomaa, miten operaattoria <-> käytetään!

SELECT
  id,
  embedding,
  embedding <-> '[1,2,3]' AS euclidean_distance
FROM items
ORDER BY euclidean_distance
LIMIT 3;

Euklidisten tulosten tulkitseminen

Kun suoritat kyselyn, tuloksissa näkyy sarake euclidean_distance. Pienimmän etäisyysarvon saaneet kohteet ovat samankaltaisimpia kyselyvektorin [1,2,3] kanssa.

Esimerkiksi vektorilla [1.1,2.1,3.1] pitäisi olla hyvin pieni euklidinen etäisyys, mikä osoittaa suurta samankaltaisuutta.

Esimerkki kosinietäisyyden kyselystä

Seuraavaksi tehdään samankaltaisuushaku kosinietäisyyden avulla. Etsimme jälleen vektoria [1,2,3] muistuttavia kohteita.

Huomaa operaattori <#>. Muista, että se palauttaa kosinietäisyyden, jossa pienemmät arvot tarkoittavat suurempaa samankaltaisuutta.

SELECT
  id,
  embedding,
  embedding <#> '[1,2,3]' AS cosine_distance
FROM items
ORDER BY cosine_distance
LIMIT 3;

Kosinitulosten tulkitseminen

cosine_distance-sarake näyttää, kuinka samansuuntaisia vektorit ovat. Arvo lähellä arvoa 0 tarkoittaa, että vektorit osoittavat lähes samaan suuntaan eli ovat hyvin samankaltaisia.

Arvo lähellä arvoa 2 tarkoittaa, että vektorit osoittavat vastakkaisiin suuntiin eli ovat hyvin erilaisia. Arvot lähellä arvoa 1 tarkoittavat, että vektorit ovat kohtisuorassa toisiaan vastaan.

Sopivan mittarin valitseminen

Mitä mittaria kannattaa käyttää?

  • Euklidinen etäisyys sopii tilanteisiin, joissa vektorin suuruus eli pituus on tärkeä.
  • Kosinisamankaltaisuus tai kosinietäisyys on suositeltava, kun vain vektorin suunta on tärkeä, ei sen pituus. Tämä on yleistä tekstin upotuksissa, joissa vektorin pituus voi vaihdella mutta suunta kuvaa semanttista merkitystä.

Pikatarkistus: operaattorit

Olet oppinut kaksi tärkeää pgvector-operaattoria samankaltaisuuskyselyitä varten. Testataan tietosi!

Kertaus: samankaltaisuuskyselyt

Hienoa työtä! Olet oppinut tekemään samankaltaisuuskyselyitä pgvector-laajennuksella.

  • Käytämme etäisyysmittareita samankaltaisuuden määrittämiseen.
  • Euklidinen etäisyys (<->) mittaa suoraa etäisyyttä.
  • Kosinietäisyys (<#>) mittaa vektorien välistä kulmaa.
  • Sopivan mittarin valinta riippuu siitä, onko datallesi olennaisempaa vektorin suuruus vai suunta.
Aloita maksutta

Opi Vektoritietokannat: Pinecone, Weaviate ja pgvector tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Samankaltaisuuskyselyiden suorittaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppimispolun 3 oppituntia, myös oppitunnin “Samankaltaisuuskyselyiden suorittaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Vektoritietokannat: Pinecone, Weaviate ja pgvector-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Samankaltaisuuskyselyiden suorittaminen”?

Suorittakaa perustason vektorien samankaltaisuuskyselyitä pgvector-operaattoreilla lähimpien naapureiden löytämiseksi datastanne. Harjoittelet Vektoritietokannat: Pinecone, Weaviate ja pgvector-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Vektoritietokannat: Pinecone, Weaviate ja pgvector-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Samankaltaisuuskyselyiden suorittaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppitunnilla?

Kyllä. Jokainen Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. pgvector-laajennuksen käyttöönotto
  2. Vektorien tallentaminen PostgreSQL:ään
  3. Samankaltaisuuskyselyiden suorittaminen
  4. Etäisyysmetriikoiden valinta pgvectorissa
← Takaisin: Vektoritietokannat: Pinecone, Weaviate ja pgvector