Semanttinen välimuisti LLM-vastauksille
Opitte, miten semanttinen välimuisti käyttää samankaltaisten kyselyiden vastauksia uudelleen merkityksen eikä täsmällisen tekstin perusteella ja vähentää näin LLM:n kustannuksia ja viivettä merkittävästi.
Semanttinen välimuisti LLM-vastauksille on ilmainen LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-oppitunti CoddyKitissä. Tämä on oppitunti 4/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 LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-kurssilla on yhteensä 4 oppituntia.
Tarkan osuman välimuistia pidemmälle
Tavallinen välimuisti osuu vain, kun avain on tavu tavulta identtinen. Mutta 'Mikä on hyvityskäytäntönne?' ja 'Miten hyvitykset toimivat?' tarkoittavat samaa, mutta eivät löydä täsmällistä välimuistiosumaa.
Semanttinen välimuisti tekee osumat merkityksen perusteella, joten parafraasit voivat käyttää samaa vastausta uudelleen.
Miten se toimii
Prosessi:
- Muodostetaan saapuvasta kyselystä vektori upotusmallin avulla
- Etsitään välimuistista lähellä olevaa tallennettua kyselyä
- Jos samankaltaisuus ylittää kynnysarvon, palautetaan välimuistissa oleva vastaus
- Muussa tapauksessa kutsutaan LLM:ää ja tallennetaan uusi pari
Kyselyn upottaminen
Upotusmalli muuntaa jokaisen kyselyn vektoriksi. Merkitykseltään samankaltaiset kyselyt tuottavat lähellä toisiaan olevia vektoreita.
def embed(text):
return [len(text), text.count('refund'), text.count('?')]
print(embed('How do refunds work?'))Kosinisuuntaisuus
Kyselyvektorien välinen samankaltaisuus mitataan yleensä kosinisuuntaisuudella.
import math
def cosine(a, b):
dot = sum(x*y for x, y in zip(a, b))
na = math.sqrt(sum(x*x for x in a))
nb = math.sqrt(sum(y*y for y in b))
return dot / (na * nb)
print(round(cosine([1,2,1],[1,2,0]), 3))Kynnysarvon valitseminen
Samankaltaisuuden kynnysarvo on tärkein säädettävä parametri:
- Liian pieni -> virheellisiä osumia ja vääriä vastauksia
- Liian suuri -> vähän osumia ja vähän säästöjä
Säätäkää arvo oikean liikenteen perusteella ja valitkaa riskialttiilla toimialoilla mieluummin liian tiukka kuin liian löysä arvo.
Minimaalinen semanttinen välimuisti
Upotuksen, samankaltaisuuden ja kynnysarvon yhdistäminen.
cache = []
THRESH = 0.95
def get(query, qvec):
for stored_vec, ans in cache:
if cosine(qvec, stored_vec) >= THRESH:
return ans
return None
def cosine(a, b):
return 1.0 if a == b else 0.0
cache.append(([1,0], 'Refunds take 5 days'))
print(get('q', [1,0]))Milloin välimuistia EI pidä käyttää
Semanttinen välimuisti ei sovi kyselyihin, joiden vastaus riippuu muuttuvasta tai henkilökohtaisesta tilasta:
- 'Mikä on tilini saldo?'
- 'Millainen sää tänään on?'
- Kaikki käyttäjäkohtainen tai ajasta riippuva sisältö
Välimuistia kannattaa käyttää vain vakaaseen ja yleiseen tietoon.
Välimuistin rajaaminen
Jotta yhden käyttäjän data ei vuoda toiselle, rajatkaa välimuistiavaimet vuokraajan, kielen ja muun olennaisen kontekstin mukaan. Personoitujen vastausten globaali välimuisti on tietosuojaongelma.
Poistaminen ja ajantasaisuus
Välimuistissa olevat vastaukset vanhenevat, kun lähdedata muuttuu. Lisätkää TTL-arvot ja mitätöikää merkinnät lähdeasiakirjojen päivittyessä, jotta välimuisti ei tarjoa vanhentuneita vastauksia.
Säästöjen mittaaminen
Seuratkaa osumatiheyttä, säästettyjä kustannuksia ja viiveen paranemista. 40 prosentin semanttinen osumatiheys voi tarkoittaa välimuistikelpoisessa liikenteessä suunnilleen 40 prosentin vähennystä LLM-kuluissa.
Tuotantopino
Tuotantoympäristössä tallentakaa kyselyjen upotukset vektoritietokantaan tai Redis-palveluun, jossa on vektorihaku, määrittäkää viritetty kynnysarvo, rajatkaa haku tenantin mukaan, käyttäkää TTL-arvoja ja seuratkaa osumaprosenttia. Yhdistäkää tähän täsmällinen välimuistitus parhaan kattavuuden saavuttamiseksi.
Pikatesti
Testatkaa, miten hyvin ymmärrätte semanttisen välimuistin.
Kertaus
Opitte, että semanttinen välimuistitus käyttää vastaavia vastauksia uudelleen erimuotoisissa kyselyissä upottamalla kyselyt ja etsimällä niiden väliltä kosinisimilariteetin avulla osumia, jotka ylittävät viritetyn kynnysarvon. Välittäkää välimuistiin vain vakaa tieto, rajatkaa tiedot tenantin mukaan yksityisyyden suojaamiseksi, käyttäkää TTL-arvoja ajantasaisuuden varmistamiseksi ja seuratkaa osumaprosenttia säästöjen määrän arvioimiseksi.
Opi LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti) 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 ”Semanttinen välimuisti LLM-vastauksille” ilmainen?
Kyllä – oppitunnin ”Semanttinen välimuisti LLM-vastauksille” 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 LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-kurssin, päivitä CoddyKit PROhon. LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Semanttinen välimuisti LLM-vastauksille”?
Opitte, miten semanttinen välimuisti käyttää samankaltaisten kyselyiden vastauksia uudelleen merkityksen eikä täsmällisen tekstin perusteella ja vähentää näin LLM:n kustannuksia ja viivettä merkittäv… Harjoittelet LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Semanttinen välimuisti LLM-vastauksille”-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ä LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-oppitunnilla?
Kyllä. Jokainen LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-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
- Hajautettu välimuistitus Redisillä ja Memcachedillä
- Istuntojen hallinta ja kontekstin säilyttäminen
- Edistyneet välimuistin mitätöintistrategiat
- Semanttinen välimuisti LLM-vastauksille