Generare Augmentată cu Cache (CAG)

Generarea Augmentată cu Cache (CAG) crește eficiența modelelor lingvistice mari prin preîncărcarea cunoștințelor statice, reducând latența și simplificând arhitectura pentru sarcini statice, cu latență redusă.

Ce este Generarea Augmentată cu Cache (CAG)?

Generarea Augmentată cu Cache (CAG) este o abordare inovatoare pentru îmbunătățirea performanței și eficienței modelelor lingvistice mari (LLM) prin valorificarea cunoștințelor preîncărcate sub formă de cache-uri precompute cu perechi cheie-valoare (KV).

Spre deosebire de Generarea Augmentată prin Regăsire (RAG), care recuperează dinamic cunoștințe externe în timpul inferenței, CAG elimină complet pașii de regăsire prin încorporarea tuturor cunoștințelor relevante direct în fereastra de context extinsă a modelului, înainte de inferență. Această strategie de preîncărcare permite modelului LLM să genereze răspunsuri folosind informațiile precompute, reducând semnificativ latența și simplificând arhitectura sistemului.

Prin stocarea cunoștințelor procesate într-un cache cheie-valoare, CAG asigură că modelul are acces instantaneu la contextul necesar pentru a răspunde la interogări. Această abordare este deosebit de avantajoasă în scenarii unde baza de cunoștințe este statică, relativ mică sau când latența redusă reprezintă o prioritate.

Cum funcționează CAG?

CAG operează prin trei faze principale:

1. Preîncărcarea cunoștințelor externe

  • Toate documentele sau seturile de date relevante sunt preîncărcate în fereastra de context a modelului înainte de inferență.

  • Conținutul preîncărcat este procesat într-un cache cheie-valoare (KV), captând reprezentarea internă a cunoștințelor de către model. De exemplu:

    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
    

Acest pas asigură că modelul are acces imediat la cunoștințele preprocesate, ocolind necesitatea regăsirii în timp real.

2. Inferență cu cache precomputat

  • Când este făcută o interogare, cache-ul KV precomputat este combinat cu inputul interogării.

  • Modelul generează un răspuns bazat exclusiv pe cunoștințele din cache și pe interogare, evitând calcule suplimentare pentru regăsirea cunoștințelor. De exemplu:

    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. Gestionarea cache-ului

  • Pe măsură ce sunt procesate noi interogări, cache-ul crește. Un mecanism de resetare trunchiază cache-ul la lungimea originală pentru a menține performanța și a asigura că interogările următoare sunt evaluate în contextul dorit. Exemplu de resetare a cache-ului:

    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, :]
    

Avantajele cheie ale CAG

  1. Latență redusă
    Deoarece nu este necesară regăsirea în timp real, CAG oferă timpi de răspuns mai rapizi comparativ cu RAG. Acest lucru îl face ideal pentru aplicații sensibile la timp.

  2. Acuratețe îmbunătățită
    Prin preîncărcarea tuturor documentelor relevante, CAG asigură că modelul procesează un set complet de date, reducând riscul de lacune de context sau erori de regăsire.

  3. Arhitectură simplificată
    Spre deosebire de RAG, care necesită un pipeline complex de regăsire, arhitectura CAG este simplificată, reducând complexitatea sistemului și costurile de mentenanță.

  4. Eficiență la scară
    Odată ce cunoștințele sunt preîncărcate și stocate în cache, interogările ulterioare sunt procesate cu un minim de resurse computaționale, făcând CAG eficient pentru interogări repetate în același domeniu de cunoștințe.

Limitările CAG

  1. Dimensiunea ferestrei de context
    CAG se bazează pe fereastra de context a modelului pentru preîncărcarea cunoștințelor. LLM-urile actuale suportă ferestre de context de până la 128.000 de tokeni, ceea ce limitează cantitatea de informație ce poate fi preîncărcată.

  2. Dimensiunea bazei de cunoștințe
    CAG este cel mai potrivit pentru baze de cunoștințe statice și gestionabile. Pentru seturi de date mari sau dinamice, modelul poate avea dificultăți în a încadra toate informațiile relevante în fereastra de context.

  3. Cunoștințe statice
    CAG presupune că baza de cunoștințe rămâne neschimbată în timpul inferenței. Este mai puțin eficient pentru cazuri de utilizare care necesită actualizări în timp real sau integrare dinamică a cunoștințelor.

  4. Implicații de cost
    Ferestrele de context mari cresc costurile computaționale la preîncărcare, făcând CAG mai puțin economic pentru scenarii ce implică actualizări sau modificări frecvente ale bazei de cunoștințe.

Cum este folosit CAG?

Aplicații practice

CAG este aplicat frecvent în scenarii unde baza de cunoștințe este statică, gestionabilă ca dimensiune, iar latența redusă este critică:

  • Chatbot-uri pentru suport clienți
    Exemplu: Preîncărcarea pașilor obișnuiți pentru depanarea produselor software, pentru a oferi răspunsuri instant utilizatorilor.
    Beneficiu: Elimină erorile de regăsire și accelerează timpii de răspuns.

  • Analiză de documente
    Exemplu: Instituții financiare care analizează rapoarte trimestriale sau firme juridice ce interoghează documente de reglementare.
    Beneficiu: Asigură răspunsuri consistente și precise prin preîncărcarea tuturor documentelor relevante în model.

  • Asistenți în domeniul sănătății
    Exemplu: Preîncărcarea ghidurilor medicale pentru a răspunde interogărilor pacienților.
    Beneficiu: Menține coerența pe parcursul dialogurilor multi-turn și asigură referințe precise.

  • Educație și training
    Exemplu: Răspunsuri la întrebări frecvente în programe de training corporativ.
    Beneficiu: Simplifică implementarea, asigurând răspunsuri consistente.

Comparații cu Generarea Augmentată prin Regăsire (RAG)

CaracteristicăCAGRAG
Gestionarea cunoștințelorPreîncarcă cunoștințele în fereastra de context.Recuperează cunoștințele dinamic la momentul execuției.
Complexitatea sistemuluiSimplificată, nu necesită pipeline de regăsire.Necesită componente suplimentare pentru regăsire.
LatențăRedusă, deoarece pașii de regăsire sunt eliminați.Mai mare, din cauza proceselor de regăsire în timp real.
ScalabilitateLimitată de dimensiunea ferestrei de context.Scalabilă cu seturi mari de date dinamice.
Riscuri de eroareFără erori de regăsire.Vulnerabil la erori de regăsire și clasificare.
Cele mai bune cazuri de utilizareSarcini statice, cu latență redusă.Sarcini dinamice, mari sau frecvent actualizate.

Exemple de cazuri de utilizare

CAG în acțiune

  1. Sisteme HR
    O companie utilizează CAG pentru a preîncărca politicile interne pentru angajați în model. Angajații pot interoga sistemul pentru anumite reguli, iar răspunsurile sunt generate instantaneu.

  2. Asistență juridică
    Un asistent juridic preîncarcă jurisprudența relevantă în contextul modelului, pentru a oferi răspunsuri rapide la întrebări juridice fără a utiliza un sistem de regăsire.

  3. Servicii pentru clienți
    Chatbot-ul unui produs SaaS folosește CAG pentru a preîncărca FAQ-uri și ghiduri de depanare, asigurând interacțiuni rapide și fără întreruperi cu clienții.

RAG pentru scenarii dinamice

  1. Agregare de știri
    O aplicație de știri folosește RAG pentru a prelua și rezuma cele mai noi articole, regăsind dinamic cele mai relevante informații pentru interogările utilizatorilor.

  2. Căutare e-commerce
    RAG este folosit pentru a regăsi detalii despre produse și disponibilitate dintr-un catalog mare și actualizat frecvent.

  3. Platforme de cercetare
    O platformă de cercetare științifică utilizează RAG pentru a regăsi lucrări și studii relevante din baze de date externe vaste.

Exemplu de implementare: Preîncărcarea cunoștințelor în Python

Următorul fragment de cod Python demonstrează cum poate fi preîncărcată cunoașterea într-un model pentru CAG:

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

Acest mecanism de preîncărcare asigură că modelul procesează interogările fără a necesita regăsire externă, permițând performanță eficientă și cu latență redusă.

Când se folosește CAG

  1. Baze de cunoștințe statice
    Ideal pentru cazurile în care baza de cunoștințe nu se modifică frecvent.

  2. Aplicații cu latență redusă
    Potrivit pentru suport clienți, educație sau sisteme de sănătate unde răspunsurile rapide sunt necesare.

  3. Scenarii eficiente din punct de vedere al costurilor
    Benefic când cunoștințele preîncărcate rămân constante pe parcursul mai multor interogări, reducând resursele computaționale.

CAG este o alternativă eficientă la RAG pentru sarcini ce necesită viteză, simplitate și consistență. Totuși, este limitat de dimensiunea și natura statică a bazei de cunoștințe.

Cercetare privind Generarea Augmentată cu Cache (CAG)

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

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

Această lucrare abordează provocările întâmpinate în implementarea modelelor lingvistice mari (LLM) la marginea rețelei mobile, precum resurse computaționale limitate și latență mare la regăsire. Propune un cadru Adaptive Contextual Caching (ACC), care utilizează învățarea prin întărire profundă (DRL) pentru a optimiza politicile de înlocuire a cache-ului, luând în considerare contextul utilizatorului, similaritatea documentelor și costurile de cache miss. Rezultatele experimentale arată că ACC atinge rate de cache hit de peste 80% după 11 episoade de antrenament, reducând semnificativ latența de regăsire cu până la 40% comparativ cu metodele tradiționale. Mai mult, minimizează costurile locale de cache cu până la 55%, făcându-l potrivit pentru servicii LLM scalabile și cu latență redusă în medii cu resurse limitate. Lucrarea evidențiază potențialul ACC de a crește eficiența sistemelor LLM la margine.
Vezi lucrarea aici

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

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

Acest studiu explorează reutilizarea cache-urilor cheie-valoare (KV) pentru reducerea întârzierilor de preumplere în aplicațiile LLM, în special pentru texte de intrare repetate. Se investighează dacă o astfel de reutilizare a cache-ului poate fi și viabilă economic când sunt utilizate servicii cloud publice pentru stocare și procesare. Autorii propun un model analitic validat pentru a evalua costurile cloud (de calcul, stocare și rețea) asociate stocării și reutilizării cache-urilor KV în diverse scenarii de lucru. Studiul demonstrează că reutilizarea cache-urilor KV economisește atât timp, cât și costuri cloud pentru sarcini cu contexte lungi, încurajând eforturi suplimentare pentru dezvoltarea unor sisteme LLM context-augmentate mai economice.
Vezi lucrarea aici

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

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

Această lucrare introduce MPIC, un sistem de cache multimodal independent de poziție, conceput pentru a aborda ineficiențele în inferența modelelor lingvistice mari multimodale (MLLM). Sistemele tradiționale recalculează întregul cache KV chiar și pentru diferențe minore de context, ceea ce duce la ineficiență. MPIC oferă un sistem independent de poziție care stochează cache-uri KV local sau la distanță și paralelizează calculul și încărcarea cache-ului în timpul inferenței. Mecanismele integrate de reutilizare și recalculare atenuează degradarea acurateței, obținând în același timp o reducere a timpului de răspuns cu până la 54% comparativ cu metodele existente. Această lucrare evidențiază potențialul pentru o eficiență crescută în sistemele de servire MLLM.
Vezi lucrarea aici

Întrebări frecvente

Ce este Generarea Augmentată cu Cache (CAG)?

Generarea Augmentată cu Cache (CAG) este o metodă care îmbunătățește performanța modelelor lingvistice mari (LLM) prin preîncărcarea cunoștințelor statice într-un cache precomputat cu perechi cheie-valoare (KV). Spre deosebire de Generarea Augmentată prin Regăsire (RAG), care recuperează cunoștințe externe la momentul execuției, CAG încorporează toate informațiile relevante în prealabil, reducând latența și simplificând arhitectura sistemului AI.

Cum diferă CAG de RAG?

CAG preîncarcă toate cunoștințele necesare în fereastra de context a modelului înainte de inferență și elimină necesitatea regăsirii în timp real, asigurând latență redusă. RAG, pe de altă parte, recuperează informația relevantă dinamic, la momentul execuției, ceea ce poate introduce erori de regăsire și o latență mai mare, dar este mai potrivit pentru baze de cunoștințe dinamice sau actualizate frecvent.

Care sunt avantajele utilizării CAG?

Avantajele cheie ale CAG includ latență redusă, acuratețe îmbunătățită datorită preîncărcării complete, arhitectură de sistem simplificată și eficiență pentru interogări repetate în domenii cu cunoștințe statice.

Care sunt limitările CAG?

CAG este limitat de dimensiunea maximă a ferestrei de context a modelului (în prezent până la 128.000 de tokeni), este potrivit pentru baze de cunoștințe statice și gestionabile și este mai puțin eficient pentru seturi de date dinamice sau scenarii care necesită actualizări frecvente. Ferestrele de context mari pot crește, de asemenea, costurile computaționale în timpul preîncărcării.

Unde este CAG cel mai util?

CAG este ideal pentru aplicații statice, cu latență redusă, precum chatbot-uri pentru suport clienți, analiză de documente, asistenți medicali, FAQ-uri educaționale, interogări despre politici HR și asistenți juridici — oriunde baza de cunoștințe se schimbă rar și sunt necesare răspunsuri instantanee.

Începe să construiești fluxuri de lucru AI eficiente

Experimentează puterea CAG și a altor unelte AI cu FlowHunt. Programează o demonstrație pentru a vedea cum soluțiile cu cache și latență redusă pot transforma afacerea ta.

Află mai multe

Întrebări și răspunsuri
Întrebări și răspunsuri

Întrebări și răspunsuri

Întrebările și răspunsurile cu Generare Augmentată prin Regăsire (RAG) combină regăsirea informațiilor și generarea de limbaj natural pentru a îmbunătăți modele...

6 min citire
AI Question Answering +4
Generare Augmentată prin Recuperare (RAG)
Generare Augmentată prin Recuperare (RAG)

Generare Augmentată prin Recuperare (RAG)

Generarea Augmentată prin Recuperare (RAG) este un cadru AI avansat care combină sistemele tradiționale de recuperare a informațiilor cu modele generative mari ...

4 min citire
RAG AI +4