LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti) · Oppitunti

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.

Oppitunti 4/413 vaihetta

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.

Aloita maksutta

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

  1. Hajautettu välimuistitus Redisillä ja Memcachedillä
  2. Istuntojen hallinta ja kontekstin säilyttäminen
  3. Edistyneet välimuistin mitätöintistrategiat
  4. Semanttinen välimuisti LLM-vastauksille
← Takaisin: LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)