Cache Augmented Generation (CAG)

Cache Augmented Generation (CAG) parantaa suurten kielimallien tehokkuutta esilataamalla staattista tietoa, vähentäen viivettä ja yksinkertaistaen arkkitehtuuria staattisiin, matalan viiveen tehtäviin.

Mitä on Cache Augmented Generation (CAG)?

Cache Augmented Generation (CAG) on uudenlainen lähestymistapa suurten kielimallien (LLM) suorituskyvyn ja tehokkuuden parantamiseen hyödyntämällä esiladattua tietoa esilaskettujen avain-arvo (KV) -välimuistien muodossa.

Toisin kuin Retrieval Augmented Generation (RAG), joka hakee ulkoista tietoa dynaamisesti päättelyn aikana, CAG poistaa hakuvaiheen kokonaan upottamalla kaiken olennaisen tiedon suoraan mallin laajennettuun kontekstikkunaan ennen päättelyä. Tämä esilatausstrategia mahdollistaa sen, että LLM-mallit tuottavat vastauksia esilasketun tiedon pohjalta, mikä vähentää merkittävästi viivettä ja yksinkertaistaa järjestelmäarkkitehtuuria.

Tallentamalla käsitellyn tiedon avain-arvo-välimuistiin CAG varmistaa, että mallilla on välitön pääsy tarvittavaan kontekstiin kysymyksiin vastaamista varten. Tämä lähestymistapa on erityisen edullinen tilanteissa, joissa tietopohja on staattinen, suhteellisen pieni tai kun matala viive on ensisijainen tavoite.

Miten CAG toimii?

CAG toimii kolmessa päävaiheessa:

1. Ulkoinen tiedon esilataus

  • Kaikki olennaiset asiakirjat tai tietoaineistot esiladataan mallin kontekstikkunaan ennen päättelyä.

  • Esiladattu sisältö käsitellään avain-arvo (KV) -välimuistiksi, joka tallentaa mallin sisäisen tiedon esityksen. Esimerkiksi:

    def preprocess_knowledge(model, tokenizer, prompt):
        input_ids = tokenizer.encode(prompt, return_tensors="pt").to(model.device)
        past_key_values = DynamicCache()
        outputs = model(input_ids=input_ids, past_key_values=past_key_values, use_cache=True)
        return outputs.past_key_values
    

Tämä vaihe varmistaa, että mallilla on välitön pääsy esikäsiteltyyn tietoon, eikä reaaliaikaista hakua tarvita.

2. Päättely esilasketun välimuistin avulla

  • Kun kysely tehdään, esilaskettu KV-välimuisti yhdistetään kyselyn syötteeseen.

  • Malli tuottaa vastauksen ainoastaan välimuistissa olevan tiedon ja kyselyn pohjalta, välttäen lisälaskennan tiedon haussa. Esimerkiksi:

    def generate_response(model, query, kv_cache):
        input_ids = tokenizer.encode(query, return_tensors="pt").to(model.device)
        output_ids = model(input_ids=input_ids, past_key_values=kv_cache, use_cache=True)
        return tokenizer.decode(output_ids)
    

3. Välimuistin hallinta

  • Kun uusia kyselyitä käsitellään, välimuisti kasvaa. Palautusmekanismi katkaisee välimuistin alkuperäiseen pituuteen suorituskyvyn ylläpitämiseksi ja varmistaakseen, että seuraavat kyselyt arvioidaan oikeassa kontekstissa. Esimerkki välimuistin palautuksesta:

    def clean_up(kv_cache, original_length):
        for i in range(len(kv_cache.key_cache)):
            kv_cache.key_cache[i] = kv_cache.key_cache[i][:, :, :original_length, :]
            kv_cache.value_cache[i] = kv_cache.value_cache[i][:, :, :original_length, :]
    

CAG:n keskeiset edut

  1. Matala viive
    Koska reaaliaikaista hakua ei tarvita, CAG tarjoaa nopeammat vasteajat verrattuna RAG:iin. Tämä tekee siitä ihanteellisen aikakriittisiin sovelluksiin.

  2. Parantunut tarkkuus
    Esilataamalla kaikki olennaiset asiakirjat CAG varmistaa, että malli käsittelee kattavan tietoaineiston, mikä vähentää kontekstin puutteiden tai hakujen virheiden riskiä.

  3. Yksinkertaistettu arkkitehtuuri
    Toisin kuin RAG, joka vaatii monimutkaisen hakuprosessin, CAG:n arkkitehtuuri on virtaviivainen, mikä vähentää järjestelmän monimutkaisuutta ja ylläpitokustannuksia.

  4. Tehokkuus laajassa käytössä
    Kun tieto on esiladattu ja välimuistissa, myöhemmät kyselyt käsitellään minimaalisella laskennallisella kuormalla, mikä tekee CAG:sta tehokkaan toistuviin kyselyihin saman tietopohjan sisällä.

CAG:n rajoitteet

  1. Kontekstikkunan koko
    CAG perustuu mallin kontekstikkunaan tiedon esilatauksessa. Nykyiset LLM-mallit tukevat kontekstikkunoita jopa 128 000 tokeniin asti, mikä rajoittaa esiladattavan tiedon määrää.

  2. Tietopohjan koko
    CAG soveltuu parhaiten staattisille ja hallittaville tietopohjille. Suurten tai dynaamisten aineistojen kohdalla mallin voi olla vaikea mahduttaa kaikkea olennaista tietoa kontekstikkunaan.

  3. Staattinen tieto
    CAG olettaa, että tietopohja pysyy muuttumattomana päättelyn aikana. Se on vähemmän tehokas käyttötapauksissa, joissa tarvitaan reaaliaikaisia päivityksiä tai dynaamista tiedon integraatiota.

  4. Kustannusvaikutukset
    Suuret kontekstikkunat lisäävät laskentakustannuksia esilatausvaiheessa, mikä tekee CAG:sta vähemmän taloudellisen usein päivittyvissä tai muuttuvissa tietopohjissa.

Miten CAG:ta käytetään?

Käytännön sovellukset

CAG:ta sovelletaan yleisesti tilanteissa, joissa tietopohja on staattinen, hallittavan kokoinen ja matala viive on kriittistä:

  • Asiakaspalveluchatbotit
    Esimerkki: Ohjelmistotuotteiden yleisten vianmääritysohjeiden esilataus, jotta käyttäjät saavat välittömät vastaukset.
    Hyöty: Poistaa hakujen virheet ja nopeuttaa vastausaikoja.

  • Asiakirja-analyysi
    Esimerkki: Rahoituslaitokset analysoimassa neljännesvuosikatsauksia tai lakifirmat kyselemässä sääntelydokumentteja.
    Hyöty: Varmistaa johdonmukaiset ja tarkat vastaukset esilataamalla kaikki olennaiset asiakirjat malliin.

  • Terveydenhuollon avustajat
    Esimerkki: Lääketieteellisten ohjeiden esilataus potilaskysymyksiin vastaamista varten.
    Hyöty: Ylläpitää jatkuvuutta monikierroksisissa keskusteluissa ja varmistaa oikeat viittaukset.

  • Koulutus ja perehdytys
    Esimerkki: Usein kysyttyihin kysymyksiin vastaaminen yrityskoulutuksissa.
    Hyöty: Yksinkertaistaa käyttöönottoa ja varmistaa johdonmukaiset vastaukset.

Vertailu Retrieval Augmented Generationiin (RAG)

OminaisuusCAGRAG
Tiedon käsittelyEsilataa tiedon kontekstikkunaan.Hakee tiedon dynaamisesti suorituksen aikana.
Järjestelmän monimutkaisuusYksinkertaistettu, ei erillistä hakuprosessia.Vaatii lisäkomponentteja hakua varten.
ViiveMatala, koska hakuvaihe poistettu.Korkeampi reaaliaikaisen haun vuoksi.
SkaalautuvuusRajoittuu kontekstikkunan kokoon.Skaalaa hyvin suuriin, dynaamisiin aineistoihin.
VirheriskitEi hakuvirheitä.Alttiina haku- ja järjestysvirheille.
Parhaat käyttötapauksetStaattiset, matalan viiveen tehtävät.Dynaamiset, suuret tai usein päivittyvät tehtävät.

Käyttöesimerkkejä

CAG käytännössä

  1. HR-järjestelmät
    Yritys käyttää CAG:ta esilataamaan henkilöstöohjeet malliin. Työntekijät voivat kysyä järjestelmältä tiettyjä ohjeita, ja vastaukset tuotetaan välittömästi.

  2. Lakiasiantuntija
    Lakiasiantuntija esilataa relevantit ennakkotapaukset mallin kontekstiin tarjotakseen nopeita vastauksia lainopillisiin kysymyksiin ilman erillistä hakujärjestelmää.

  3. Asiakaspalvelu
    SaaS-tuotteen chatbot esilataa usein kysytyt kysymykset ja vianmääritysoppaat, mikä varmistaa sujuvan ja nopean asiakaspalvelun.

RAG dynaamisiin tilanteisiin

  1. Uutiskoosteet
    Uutissovellus käyttää RAG:ia hakeakseen ja tiivistääkseen tuoreimmat artikkelit, hakien dynaamisesti käyttäjän kysymyksiin relevanttia tietoa.

  2. Verkkokauppahaku
    RAG:ia käytetään tuote- ja saatavuustietojen hakemiseen laajasta ja usein päivittyvästä tuotevalikoimasta.

  3. Tutkimusalustat
    Tieteellinen tutkimusalusta hyödyntää RAG:ia hakeakseen relevantteja julkaisuja ja tutkimuksia suurista ulkoisista tietokannoista.

Toteutusesimerkki: Tiedon esilataus Pythonilla

Seuraava Python-koodinpätkä havainnollistaa tiedon esilatausta malliin CAG:ia varten:

def preprocess_knowledge(model, tokenizer, prompt):
    input_ids = tokenizer.encode(prompt, return_tensors="pt").to(model.device)
    past_key_values = DynamicCache()
    outputs = model(input_ids=input_ids, past_key_values=past_key_values, use_cache=True)
    return outputs.past_key_values

Tämä esilatausmekanismi varmistaa, että malli käsittelee kyselyt ilman ulkoista hakua, mahdollistaen tehokkaan ja matalan viiveen suorituskyvyn.

Milloin käyttää CAG:ta

  1. Staattiset tietopohjat
    Ihanteellinen, kun tietopohja muuttuu harvoin.

  2. Matalan viiveen sovellukset
    Sopii asiakaspalveluun, koulutukseen tai terveydenhuoltoon, joissa nopeat vastaukset ovat tarpeen.

  3. Kustannustehokkaat tilanteet
    Hyödyllinen, kun esiladattu tieto pysyy samana useissa kyselyissä, mikä vähentää laskentakuormaa.

CAG on tehokas vaihtoehto RAG:lle tehtäviin, joissa vaaditaan nopeutta, yksinkertaisuutta ja johdonmukaisuutta. Sitä kuitenkin rajoittaa tietopohjan koko ja staattisuus.

Tutkimusta Cache Augmented Generationista (CAG)

1. Adaptive Contextual Caching for Mobile Edge Large Language Model Service

Kirjoittajat: Guangyuan Liu, Yinqiu Liu, Jiacheng Wang, Hongyang Du, Dusit Niyato, Jiawen Kang, Zehui Xiong

Tämä artikkeli käsittelee haasteita mobiiliverkon reunalla tapahtuvassa suurten kielimallien (LLM) käytössä, kuten rajallisia laskentaresursseja ja korkeaa hakuviipeettä. Siinä ehdotetaan Adaptive Contextual Caching (ACC) -kehystä, joka käyttää syvävahvistusoppimista (DRL) optimoimaan välimuistin vaihtokäytännöt käyttäjäkontekstin, asiakirjojen samankaltaisuuden ja välimuistin ohitusviiveen perusteella. Kokeelliset tulokset osoittavat, että ACC saavuttaa yli 80 % välimuistiosumia 11 koulutuskierroksen jälkeen, vähentäen hakuviipeetä jopa 40 % verrattuna perinteisiin menetelmiin. Lisäksi paikallisen välimuistin kuormaa pienennettiin jopa 55 %, mikä tekee siitä sopivan skaalautuviin, matalan viiveen LLM-palveluihin resurssirajoitteissa ympäristöissä. Työ korostaa ACC:n mahdollisuuksia tehostaa reunalaskennan LLM-järjestelmiä.
Lue artikkeli täältä

2. Towards More Economical Context-Augmented LLM Generation by Reusing Stored KV Cache

Kirjoittajat: Hanchen Li, Yuhan Liu, Yihua Cheng, Kuntai Du, Junchen Jiang

Tämä tutkimus tarkastelee avain-arvo (KV) -välimuistien uudelleenkäyttöä esitäyttöviiveiden vähentämiseksi LLM-sovelluksissa, erityisesti toistuville syöteille. Siinä tutkitaan, onko tällainen uudelleenkäyttö myös taloudellisesti kannattavaa käytettäessä julkisia pilvipalveluita tallennukseen ja prosessointiin. Kirjoittajat ehdottavat validoitua analyyttista mallia pilvikustannusten (laskenta, tallennus, verkko) arvioimiseksi KV-välimuistien tallennuksessa ja uudelleenkäytössä eri työkuormaparametreilla. Tutkimus osoittaa, että KV-välimuistin uudelleenkäyttö säästää sekä viivettä että pilvikustannuksia pitkissä konteksteissa, kannustaen taloudellisempien kontekstiavusteisten LLM-järjestelmien kehittämistä.
Lue artikkeli täältä

3. MPIC: Position-Independent Multimodal Context Caching System for Efficient MLLM Serving

Kirjoittajat: Shiju Zhao, Junhao Hu, Rongxiao Huang, Jiaqi Zheng, Guihai Chen

Tässä artikkelissa esitellään MPIC, Position-Independent Multimodal Context Caching -järjestelmä, joka ratkaisee tehottomuuksia multimodaalisten suurten kielimallien (MLLM) päättelyssä. Perinteiset järjestelmät laskevat koko KV-välimuistin uudelleen, vaikka kontekstissa olisi vain pieniä eroja, mikä johtaa tehottomuuteen. MPIC tarjoaa sijainnista riippumattoman välimuistijärjestelmän, joka tallentaa KV-välimuistit paikallisesti tai etänä ja rinnastaa välimuistin laskennan ja latauksen päättelyn aikana. Integroitu uudelleenkäyttö- ja uudelleenlaskentamekanismi lieventää tarkkuusheikkenemistä ja saavuttaa jopa 54 % lyhyemmät vasteajat verrattuna nykyisiin menetelmiin. Tämä työ osoittaa mahdollisuudet parantaa tehokkuutta multimodaalisissa LLM-palveluissa.
Lue artikkeli täältä

Usein kysytyt kysymykset

Mitä on Cache Augmented Generation (CAG)?

Cache Augmented Generation (CAG) on menetelmä, joka parantaa suurten kielimallien (LLM) suorituskykyä esilataamalla staattista tietoa esilaskettuun avain-arvo (KV) -välimuistiin. Toisin kuin Retrieval Augmented Generation (RAG), joka hakee ulkoista tietoa reaaliajassa, CAG upottaa kaiken olennaisen tiedon etukäteen, mikä vähentää viivettä ja yksinkertaistaa tekoälyjärjestelmän arkkitehtuuria.

Miten CAG eroaa RAG:sta?

CAG esilataa kaiken tarvittavan tiedon mallin kontekstikkunaan ennen päättelyä ja poistaa tarpeen reaaliaikaiselle haulle, varmistaen matalan viiveen. RAG puolestaan hakee relevanttia tietoa dynaamisesti suorituksen aikana, mikä voi aiheuttaa hakuvikoja ja korkeampaa viivettä, mutta soveltuu paremmin dynaamisiin tai usein päivittyviin tietopohjiin.

Mitkä ovat CAG:n edut?

CAG:n keskeisiä etuja ovat matala viive, parempi tarkkuus kattavan esilatauksen ansiosta, yksinkertaistettu järjestelmäarkkitehtuuri sekä tehokkuus toistuvissa kyselyissä staattisilla tietopohjilla.

Mitkä ovat CAG:n rajoitteet?

CAG:n rajoitteena on mallin kontekstikkunan maksimikoko (tällä hetkellä jopa 128 000 tokenia), ja se soveltuu parhaiten staattisille ja hallittaville tietopohjille. Se on tehottomampi dynaamisten tietoaineistojen tai usein päivittyvien tilanteiden kohdalla. Suuret kontekstikkunat voivat myös kasvattaa laskentakustannuksia esilatauksessa.

Missä CAG on hyödyllisimmillään?

CAG on ihanteellinen staattisissa, matalan viiveen sovelluksissa, kuten asiakaspalveluchatboteissa, asiakirja-analyysissä, terveydenhuollon avustajissa, koulutuksen FAQ:ssa, henkilöstöhallinnon ohjeistuksissa ja lakiasiantuntijan roolissa—kaikissa tilanteissa, joissa tietopohja muuttuu harvoin ja välittömät vastaukset ovat tarpeen.

Aloita tehokkaiden tekoälyprosessien rakentaminen

Koe CAG:n ja muiden tekoälytyökalujen voima FlowHuntin avulla. Varaa esittely ja näe, miten matalan viiveen, välimuistilla tehostetut ratkaisut voivat muuttaa liiketoimintaasi.

Lue lisää

Kysymyksiin vastaaminen
Kysymyksiin vastaaminen

Kysymyksiin vastaaminen

Kysymyksiin vastaaminen Retrieval-Augmented Generation (RAG) -menetelmällä yhdistää tiedonhakua ja luonnollisen kielen generointia parantaakseen suurten kielima...

4 min lukuaika
AI Question Answering +4
Retrieval Augmented Generation (RAG)
Retrieval Augmented Generation (RAG)

Retrieval Augmented Generation (RAG)

Retrieval Augmented Generation (RAG) on kehittynyt tekoälykehys, joka yhdistää perinteiset tiedonhakujärjestelmät generatiivisiin suuriin kielimalleihin (LLM:t)...

3 min lukuaika
RAG AI +4
LazyGraphRAG
LazyGraphRAG

LazyGraphRAG

LazyGraphRAG on innovatiivinen lähestymistapa Retrieval-Augmented Generationiin (RAG), joka optimoi tehokkuuden ja vähentää kustannuksia tekoälypohjaisessa tied...

3 min lukuaika
RAG AI +4