Upotusten luominen text-embedding-3:lla
Muuntaa merkkijonot 1536- tai 3072-ulotteisiksi vektoreiksi OpenAI:n text-embedding-3-small/large-mallien avulla.
Upotusten luominen text-embedding-3:lla on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
OpenAI-upotusmallit
OpenAI tarjoaa kaksi tuotantokäyttöön tarkoitettua upotusmallia:
- text-embedding-3-small — 1536 ulottuvuutta, edullinen ja nopea
- text-embedding-3-large — 3072 ulottuvuutta, parempi laatu ja hitaampi
Käyttäkää small-mallia useimmissa tapauksissa ja large-mallia vain silloin, kun laatu on kustannuksia tärkeämpää.
Ensimmäinen upotuksenne
Yksi rivi SDK-koodia:
from openai import OpenAI
client = OpenAI()
resp = client.embeddings.create(
model='text-embedding-3-small',
input='Hello, world!'
)
vector = resp.data[0].embedding
print(len(vector)) # 1536Upotusten muodostaminen erissä
API tukee luetteloita, mikä on paljon nopeampaa kuin kutsujen tekeminen yksi kerrallaan:
texts = ['cat', 'dog', 'pizza', 'sushi']
resp = client.embeddings.create(
model='text-embedding-3-small',
input=texts
)
vectors = [d.embedding for d in resp.data]
# vectors[0] is for 'cat', vectors[1] for 'dog', etc.Tokenirajat
Jokaisella syötteellä on tokenien enimmäisraja (8192 text-embedding-3-mallissa). Pitkät asiakirjat on jaettava osiin ensin.
Ulottuvuuksien vähentäminen
Voitte pyytää pienempää ulottuvuuksien määrää (Matryoshka-upotukset), mikä on hyödyllistä tallennustilan säästämiseksi:
resp = client.embeddings.create(
model='text-embedding-3-large',
input='Hello',
dimensions=512 # default would be 3072
)Kustannukset
Tämän kirjoitushetkellä:
- text-embedding-3-small: $0.02 / 1M tokenia
- text-embedding-3-large: $0.13 / 1M tokenia
Miljoonan sanan upottaminen small-mallilla maksaa noin $0.025 — käytännössä ei mitään.
Upota kerran, käytä uudelleen aina
Upotukset eivät muutu, kun muodostatte ne uudelleen — voitte laskea ne kerran ja tallentaa ne. Välimuisti on välttämätön kaikissa tuotantojärjestelmissä.
Vektorien normalisointi
OpenAI-upotukset on jo normalisoitu L2-normilla (pituus = 1). Tämä tarkoittaa, että kosinisamankaltaisuus = pistetulo, mikä säästää laskentaa:
import numpy as np
a = np.array(vec_a)
b = np.array(vec_b)
sim = np.dot(a, b) # since |a| = |b| = 1Asynkroninen upotus
Käyttäkää suuren läpimenon tapauksessa asynkronista asiakasta:
from openai import AsyncOpenAI
import asyncio
client = AsyncOpenAI()
async def embed_batch(texts):
resp = await client.embeddings.create(
model='text-embedding-3-small',
input=texts
)
return [d.embedding for d in resp.data]
vectors = asyncio.run(embed_batch(['a', 'b', 'c']))Yritä uudelleen virheen jälkeen
Upotuskutsut epäonnistuvat muiden HTTP-kutsujen tavoin. Käärikää ne uudelleenyritykseen ja kasvavaan viiveeseen:
from tenacity import retry, wait_exponential, stop_after_attempt
@retry(wait=wait_exponential(multiplier=1, max=10), stop=stop_after_attempt(5))
def safe_embed(text):
return client.embeddings.create(model='text-embedding-3-small', input=text)Upotusten tallentaminen
Kolme yleistä tallennusvaihtoehtoa:
- SQLite ja
sqlite-vec-laajennus - Postgres ja
pgvector-laajennus - erillinen vektoritietokanta (Pinecone, Qdrant, Weaviate)
Kustannusten huomioiminen
Kuinka paljon miljoonan sanan upottaminen text-embedding-3-small-mallilla maksaa suunnilleen?
Yhteenveto
Valitkaa text-embedding-3-small, tehkää kutsut erissä, tallentakaa vektorit, ja teillä on semanttisen haun perusta.
Opi Tekoälyagentit 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
- 60
- Oppitunnit
- 239
Usein kysytyt kysymykset
Onko oppitunti ”Upotusten luominen text-embedding-3:lla” ilmainen?
Kyllä – oppitunnin ”Upotusten luominen text-embedding-3:lla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Upotusten luominen text-embedding-3:lla”?
Muuntaa merkkijonot 1536- tai 3072-ulotteisiksi vektoreiksi OpenAI:n text-embedding-3-small/large-mallien avulla. Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Upotusten luominen text-embedding-3:lla”-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ä Tekoälyagentit-oppitunnilla?
Kyllä. Jokainen Tekoälyagentit-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
- Mitä upotukset ovat (vektorimuotoiset esitykset)
- Upotusten luominen text-embedding-3:lla
- Kosinisamankaltaisuus hakua varten
- Upotusmallien vertailu (OpenAI, Cohere ja OSS)