Vahemälu küsimine mitme mudeli API lüüsis: stabiilsed eesliited, rentnike isoleerimine ja vahemälu tabamuse analüüs
Praktiline lüüsiarhitektuur kiire vahemälu tabamusmäärade kaitsmiseks OpenAI, Anthropic ja Gemini-stiilis API-de vahel: stabiilsed viibapiirkonnad, pakkuja mõõdiku normaliseerimine, rentnike isoleerimine, arvelduse omistamine ja levitamise kontrollid.
Kiire vahemällu salvestamine on lihtne raisata. Meeskonnal võib olla 40 000 märgiga süsteemiviip, tööriistaskeem, poliitikaplokk, hoidla kaart või agendi mälu, mis peaks olema korduvkasutatav, ja seejärel pange viipa ülaossa kogemata ajatempli, päringu ID, kasutajanime, toomislõigu või juhusliku tööriistajärjestuse. Teenusepakkuja näeb teist eesliidet, vahemälu jääb vahele, latentsusaeg suureneb ja arve tundub segane.
Ühe teenusepakkuja rakenduses saate selle rakenduse mallis parandada. Mitme mudeliga lüüsis on probleem suurem: iga pakkuja paljastab erinevad vahemälu juhtelemendid, lubade läved, kasutusaja käitumise, kasutusväljad ja arvelduse semantika. Lüüs vajab vahemälu ohutute viipade koostamiseks, vahemälu käitumise mõõtmiseks, rentnike isoleerimiseks ja kulude omistamiseks kaasaskantavat juhttasandi mustrit.
Selles artiklis kirjeldatakse võrdlusarhitektuuri. See ei ole kliendi juhtumiuuring ja ei pretendeeri võrdlustulemustele. Allpool toodud faktid pärinevad teenusepakkuja dokumentatsioonist ja avalikust uuringust; kujundussoovitused on lüüsi tasemel kasutusjuhised.
Tõrkerežiim: vahemälu lõhkuv viip
Viibade vahemällu salvestamine premeerib üldiselt korduvate viipade eesliiteid. Täpne mehaanika on pakkujati erinev, kuid praktiline tähendus on ühtlane: kui viiba esiosa muutub, kannatab korduvkasutamine.
Levinud vahemälu murdjad on järgmised:
- Taotluse metaandmed ülaosas: ajatemplid, jälgimis-ID-d, seansi ID-d, juurutamise ID-d või loodud päringusildid.
- Eesliites olevad kasutajapõhised andmed: nimed, konto atribuudid, load või privaatsed eelistused, mis asetatakse enne korduvkasutatavaid eeskirju või tööriistaplokke.
- Ebastabiilne tööriistade serialiseerimine: tööriistaskeemid väljastatakse mittedeterministlikus järjekorras, muutuvate tühikute või loodud ID-dega.
- Kinnitükkide toomine liiga vara: RAG-kontekst on sisestatud enne stabiilseid süsteemijuhiseid või jagatud hoidla konteksti.
- Malli triiv: väikesed sõnastuse muudatused avaldatakse sageli ilma versioonide loomise või vahemälu diagnostikata.
Lüüs ei saa ebastabiilset eesliidet võluväel vahemällu salvestatavaks muuta, kuid see võib jõustada viivitamatu montaažilepingu ja muuta vahemälu puudujäägid nähtavaks.
Pakkumise faktid kujundamiseks
Üksikasjad on olulised, sest lüüs peab käitumist normaliseerima, ilma et teeselks, et pakkujad on identsed.
- OpenAI: OpenAI on dokumenteerinud viipade vahemällu salvestamise pikima varem arvutatud viipa eesliite jaoks. See algab 1024 märgist, suureneb 128 märgi kaupa ja paljastab vahemällu salvestatud märgide arvu kasutusväljadel. OpenAI väidab ka, et viipade vahemälud tühjendatakse tavaliselt pärast 5–10-minutilist tegevusetust ja eemaldatakse alati ühe tunni jooksul pärast vahemälu viimast kasutamist.
- Antroopiline: antroopset viipa vahemällu saab taotleda funktsiooniga
cache_control. Selle dokumentatsioon kirjeldab vahemälu vastendamist viipade komponentide (nt tööriistad, süsteemi sisu ja sõnumid) vahel kuni vahemälu juhtimisega tähistatud plokini. Anthropic dokumenteerib lühiajalise vahemälu, mis sisaldab 5-minutilist kestust ja 1-tunnise lisatasu eest. - Gemini: Google Gemini konteksti vahemällu salvestamine paljastab vahemälu tabamuste arvu kasutusmetaandmete kaudu, nagu
total_cached_tokens, ja selle dokumentatsioonis on loetletud minimaalsed sisendmärgid mudelite kaupa. - Andmete juhtimise mõju: OpenAI API andmejuhtimise dokumentatsioon märgib, et laiendatud viipade vahemällu salvestamine nõuab võtme/väärtuste tensorite salvestamist rakenduse olekuna GPU-kohalikku salvestusruumi. Isegi kui pakkujad säilitavad isolatsioonigarantiid, peaksid lüüsid käsitlema vahemälu käitumist tundliku infrastruktuurina, mitte jagatud rakenduste andmehoidlana.
- Uurimissignaal: avalikud uuringud on uurinud, kas lüüsilaadsed arhitektuurid võivad tuua kaasa kiire vahemällu salvestamise turvaauke, mis lähevad mööda pakkujataseme vahemälu isoleerimise eeldustest. See ei tõesta, et konkreetne lüüs on haavatav, kuid see toetab üürnike konservatiivset isolatsioonikujundust.
Soovitus: kasutage vahemälu juhtimist selgesõnaliste eeskirjadega lüüsi funktsioonina, mitte korduvate viipade juhusliku kõrvalmõjuna.
Kolme piirkonnaga viivitamatu montaažileping
Kõige olulisem kujundusotsus on eraldada stabiilne ja muutlik sisu enne, kui päring jõuab pakkuja adapterini.
Piirkond 1: stabiilne eesliide
Stabiilne eesliide on sisu, mis peaks jääma identseks paljude sama rakenduse, mudeli marsruudi ja viipamalli versiooni taotluste puhul. Näited:
- põhisüsteemi juhised;
- ohutus- ja poliitikablokeeringud;
- tööriistaskeemid;
- staatiline tootedokumentatsioon;
- kodeerivate agentide hoidlakaardid;
- parandatud väljundvormingu juhised.
See piirkond peaks olema deterministlik. Lüüs peaks selle üles ehitama versioonimallide, kanoonilise JSON-i ja stabiilsete järjestusreeglite põhjal. Kui tööriistaregister on kaasatud, sortige tööriistad stabiilse tööriista ID järgi. Kui JSON-skeemid on kaasatud, jada need deterministliku võtmejärjestuse ja genereeritud ajatempliteta.
Piirkond 2: poolstabiilne rentniku või tööruumi kontekst
Poolstabiilne piirkond muutub harvemini kui üksikud taotlused, kuid seda ei jagata globaalselt. Näited:
- üürnikupõhised reeglite alistamised;
- tööruumi taseme tööriistade lubatud loendid;
- kliendispetsiifiline terminoloogia;
- meeskonna kodeerimise kokkulepped;
- pikaealise projekti kontekst.
See piirkond peaks hõlmama rentniku, tööruumi või rakenduse piiri. See võib siiski olla vahemällu salvestatav, kuid lüüs ei tohiks kunagi eeldada, et mõni teine rentnik saab seda ohutult uuesti kasutada.
Piirkond 3: muutlik järelliide
Püsiva järelliide on päringupõhine osa:
- kasutaja sõnum;
- otsis selle päringu jaoks katkendeid;
- praegune ajatempel, kui see on tõesti vajalik;
- taotleda ID-d ja jälgimise metaandmeid, kui need on üldse viipale lisatud;
- lühiajalised vestlused;
- käitusaja tööriista tulemused.
Enamik rakenduse kujundusest tingitud vahemälu vahelejäämisi juhtub seetõttu, et prefiksi sisestatakse kogemata lenduvad sufiksi andmed. Lüüsipoolne ehitaja peaks selle keeruliseks tegema.
Rakenduse muster: stabiilsete eesliidete koostajad
Praktiline lüüsi rakendamine võib paljastada viipa koosteliidese, selle asemel et aktsepteerida igast rakendusest ühte läbipaistmatut viipastringi.
Seejärel renderdab lüüs teenusepakkujapõhise päringu. See annab lüüsile koha reeglite jõustamiseks:
- keeldu ajatemplid stabiilsetel eesliideväljadel;
- tööriistaskeemide kanoniseerimine;
- räsi iga piirkond eraldi;
- kinnitage vahemälu juhtelemendid, kui teenusepakkuja neid toetab;
- säilitage lenduva materjali hilisemal teisaldamisel kiire semantika;
- salvestage diagnostika jaoks malli ja eesliide sõrmejäljed.
Pärandrakenduste puhul, mis saadavad ainult töötlemata sõnumeid, võib lüüs siiski pakkuda ebemerežiimi: kontrollida sõnumite järjekorda, arvutada eesliidete sõrmejäljed ja teatada tõenäolistest vahemälu rikkujatest ilma viipa algselt ümber kirjutamata.
Pakkuja adapterikiht: normaliseerige vahemälu kasutus erinevusi peitmata
Mitme mudeliga lüüs ei tohiks arendajatele avaldada kolme omavahel mitteseotud vahemälu aruannet. Samuti ei tohiks see teenusepakkujapõhist majandust nii agressiivselt lamendada, et arveid oleks võimatu seletada.
Looge normaliseeritud vahemälu pearaamat järgmiste väljadega:
Adapter jagab pakkuja kasutuse normaliseeritud kategooriatesse:
- Vahemälu sisendmärgid: ilma vahemälu lugemise allahindluse või vahemälu lugemise arvestuseta töödeldud märgid.
- Vahemällu kirjutamise märgid: märgid, mis lõid või värskendasid pakkujapoolse vahemälu kirje, kui pakkuja sellest erinevusest teatab.
- Vahemälu lugemise märgid: vahemälust edastatavad või pakkuja kasutuse metaandmed loetakse vahemällu salvestatuks.
- Väljundmärgid: loodud märgid, mis peaksid jääma vahemälu viipade ökonoomikatest eraldi.
- TTL-valik: valitud vahemälu kestuse klass, kus pakkuja pakub valikuvõimaluse.
Soovitus: salvestage toores pakkujakasutus redigeeritud, skeemiversiooniga kujul koos normaliseeritud väljadega. Normaliseerimine on kasulik armatuurlaudade jaoks; töötlemata väljad on lepitamiseks vajalikud, kui pakkuja semantika muutub.
Vahemälu jälgitavus: armatuurlauad, mis selgitavad möödalaskmisi
Kasulik vahemälu armatuurlaud teeb enamat kui ainult vahemällu salvestatud märkide kuvamise. See peaks aitama meeskondadel vastata: „Milline töökoormus rikub eesliidet ja mis muutus?”
Jälgige vahemälu mõõdikuid:
- üürnik;
- tööruum või rakendus;
- marsruudi mudel;
- pakkuja ja mudel;
- viipamalli versioon;
- stabiilne prefiksi räsi;
- poolstabiilne konteksti räsi;
- API-võti või teenusekonto, kui see on asjakohane;
- ajaaken, eriti seetõttu, et vahemälu TTL-id on paljude töökoormuste jaoks lühikesed.
Kasulikud tuletatud mõõdikud on järgmised:
- Vahemälu lugemiskiirus: vahemällu salvestatud sisendmärgid jagatud vahemällu salvestamiseks sobivate sisendmärkide koguarvuga.
- Eesliite räsi: kindlate stabiilsete eesliidete räside arv malli versiooni kohta tunnis.
- Malli triivimine: vahemälu tabamus muutub pärast malli vabastamist.
- Külmkäivituskulu: vahemällu kirjutamise või vahemällu salvestamata sisendi kulu esimese sarivõtte päringu jaoks.
- Marsruudi võrdlus: tabamusmäärad pakkuja marsruutidel sama loogilise töökoormuse korral.
Ärge salvestage vaikimisi silumiseks töötlemata viipasid. Eelistage räsisid, piirkonna pikkusi, malli ID-sid, kanoniseerimise hoiatusi ja redigeeritud erinevusi. Kui meeskond vajab põhjalikumat silumist, nõudke selgesõnalisi juurdepääsu juhtelemente ja säilituspiiranguid.
Üürniku isoleerimise eeskirjad: ärge kujundage üürnikeüleseks taaskasutamiseks
Ohutuim lüüsi eeldus on lihtne: vahemällu salvestatav käitumine peaks olema üürniku ulatusega. Isegi kui kaks üürnikku jagavad identset avaliku korra plokki, ei tohiks lüüs tahtlikult liiklust suunata ega kujundada, et ära kasutada rentnikevahelist vahemälu taaskasutamist.
Konservatiivne poliitika hõlmab järgmist:
- Üürnikuteadlik marsruutimine: vahemällu salvestatava liikluse suunamine rentniku, tööruumi ja rakenduste piire kasutades.
- Jagatud saladust kandvaid eesliiteid pole: ärge kunagi asetage üürniku saladusi, mandaate, privaatseid dokumente ega kasutajaspetsiifilisi andmeid korduvkasutatavasse jagatud eesliidese.
- Eraldi eesliidete sõrmejäljed: arvutage sõrmejäljed lüüsi pearaamatusse kaasatud rentniku ulatusega, isegi kui renderdatud tekst on identne.
- Organisatsioonitaseme juhtelemendid: võimaldavad administraatoritel keelata teenusepakkuja vahemälu funktsioonid tundlike töökoormuste jaoks.
- Pakkuja isoleerimine ei ole toote funktsioon, mida edasi müüa: käsitlege pakkuja vahemälu isoleerimist kui baaskaitset, mitte kui luba luua klientidevahelist vahemälu koondamist.
Prognoos: kui pika kontekstiga agendid muutuvad üha tavalisemaks, muutub vahemälu käitumine osaks turvaülevaatest, mitte ainult kulude ülevaatustest. Lüüsid, mis võivad tõestada, et üürniku ulatusega vahemälupoliitikad on lihtsamini hallatavad.
Arvelduse omistamine: eraldi vahemälu lugemis-, kirjutamis- ja tavalised märgid
Kui kõik sisendmärgid kuvatakse ühe numbrina, võib viipe vahemällu salvestamine muuta arvete mõistmise raskemaks. Arveldusraamat peaks säilitama vähemalt viis kategooriat:
- vahemällu salvestamata sisendmärgid;
- vahemällu kirjutamise märgid;
- vahemälu lugemise märgid;
- väljundmärgid;
- teenusepakkujapõhised TTL-i või vahemälu juhtimise tasud.
See on oluline, kui üks pakkuja vähendab vahemällu salvestatud lugemist, teine võtab vahemällu kirjutamise eest erinevat tasu ja teine pakub pikemat TTL-i valikut. Kliendiarve peaks suutma selgitada, miks kahel sarnase sisendmärgiga päringul olid erinevad kulud.
Sisemise tagasimakse jaoks omistage vahemäluefektid taotluse esitanud rentnikule ja rakendusele. Vältige vahemälu lugemise eeliste jagamist ühelt üürnikult teisele. Kui stabiilne viipamall kuulub jagatud siseplatvormi meeskonnale, teatage mallitaseme vahemälu toimivusest rentniku arvetest eraldi.
Vahemälu täitmise kontroll-loend
Enne vahemälu jõustamise lubamist käivitage viipade mallid ebeme kontroll-loendi kaudu.
- Stabiilsed süsteemijuhised kuvatakse enne muutlikku kasutajasisendit.
- Tööriistaskeemid sorteeritakse stabiilse ID või nime järgi.
- JSON on serialiseeritud deterministlikult.
- Stabiilses eesliites ei kuvata ajatempleid, juhuslikke ID-sid, päringu ID-sid ega jälgimise ID-sid.
- Jagatud korduvkasutatavates plokkides ei kuvata kasutajapõhiseid saladusi.
- RAG-lõigud paigutatakse korduvkasutatavate eeskirjade ja tööriistade osade järele, välja arvatud juhul, kui selleks on tahtlik põhjus.
- Viipmallidel on selgesõnalised versioonid.
- Mallide väljalaskeid saab korreleerida vahemälu tabamussageduse muutustega.
- Pakkuja vahemälu juhtelemente kasutatakse ainult adapteri koodi, mitte hajutatud rakendusloogika kaudu.
- Toores viipade logimine on vaikimisi keelatud või kaitstud rangete säilitamis- ja juurdepääsureeglitega.
Avaldamise plaan
1. Jälgige enne viipade muutmist
Alustage olemasoleva liikluse jaoks pakkuja kasutusväljade ja normaliseeritud vahemälu mõõdikute kogumisega. Arvutage eesliidete sõrmejäljed esimese N märgi või lüüsi määratletud viibapiirkondade jaoks. Eesmärk on leida suure mahuga, pika kontekstiga marsruute, millel on suur eesliidete katkestus.
2. Liigitage töökoormusi
Grupeeri liiklus kategooriatesse: agendiseansid, kodeerimisabilised, RAG, tugiautomaatika, dokumendianalüüs, paketttööd ja lühike vestlus. Kiire vahemälutöö pöörab tavaliselt kõige rohkem tähelepanu pika kontekstiga ja korduvate eesliidetega töökoormustele. Pakkuja lävedest allapoole jäävatest lühikestest viipadest ei pruugi kasu olla.
3. Tutvustage stabiilse eesliidete koostajaid
Teisaldage üks töökoormus töötlemata kiirelt ehitamiselt piirkonnapõhisele koostamisele. Hoidke renderdatud pakkuja päring semantiliselt samaväärsena. Ärge kombineerige seda muudatust mudeli migratsiooni, tööriistade ümberkujundamise või suurte viipade ümberkirjutamisega, vastasel juhul ei saa te teada, mis mõõdiku muutusi põhjustas.
4. Kanaari üks marsruut
Lubage vahemälu juhtelemendid ühe rentniku või sisemise rakenduse väikese osa jaoks. Võrrelge vahemälu lugemise määra, eesliidete katkestamist, aega esimese märgini, veamäära ja kulukategooriaid. Vältige säästude taotlemist, kuni teenusepakkuja arved on kooskõlastatud lüüsi pearaamatutega.
5. Jõusta järk-järgult
Pärast kanaarilindu muutke ebemehoiatused eeskirjade kontrollimiseks. Näiteks hoiatage alguses ebastabiilse tööriistajärjestuse eest, seejärel lükake tagasi uued malliversioonid, mis sisaldavad stabiilses eesliites lenduvaid metaandmeid.
Mööndused
- Kõrgem vahemälu tabamusmäär võrreldes viipade paindlikkusega: stabiilsed eesliited parandavad taaskasutust, kuid meeskonnad võivad hiljem dünaamilisi juhiseid teisaldada või malle ümber kujundada.
- Pakkuja oma vahemälu vs teisaldatavus: iga pakkuja vahemälu juhtelementide kasutamine võib parandada ökonoomsust, kuid läved, TTL-id, väljad ja hinnakujunduse semantika erinevad.
- Vaatlus vs tundlik logimine: viipade erinevused aitavad siluda vigu, kuid räsid ja redigeeritud diagnostika on turvalisemad vaikeseaded.
- Üürniku isoleerimine vs. maksimaalne taaskasutus: laiaulatuslik taaskasutus võib tunduda atraktiivne, kuid üürniku ulatusega käitumine on turvalisem ja hõlpsamini seletatav.
- Pikem säilitamine vs. kulu ja poliitika keerukus: pikemad TTL-i valikud võivad aidata agendiseanssidel, kuid võivad kaasa tuua erinevaid hinnakujunduse ja andmete kontrollimise kaalutlusi.
Tehtitav järeldus
Käitke viipade vahemällu salvestamist lüüsi juhttasandi probleemina, mitte teenusepakkuja märkeruuduna. Praktiline muster on järgmine: määratlege stabiilsed, poolstabiilsed ja muutlikud kiired piirkonnad; muuta need deterministlikult; kohandada teenusepakkujapõhiseid vahemälu juhtelemente ühe liidese taga; normaliseerida vahemälu kasutus pearaamatusse; paljastada vahemälu tabamuste diagnostika rentniku, rakenduse, marsruudi ja malli versiooni järgi; ja jõustada üürniku ulatusega eeldused.
Esimene kasulik samm ei ole ümberkirjutamine. Lisage oma pikimatele viipadele vahemälu jälgitavus, tuvastage eesliidete tühjendamine ja muutke malle, mis põhjustavad kõige rohkem möödalaskmisi. Kui saate vahemälu käitumist selgitada, saate seda turvaliselt optimeerida.
Seotud lugemine
- koostage vahemälu tundvad kategooriad arveldusraamatusse>
- href="https://model-gate.com/en/blog/llm-observability-multi-model-api-gateway-traces-token-ledgers-safe-prompt-logging-9/">liituge vahemälu mõõdikutega turvalise LLM-i jälgitavusega
- hoidke RAG-töökoormustes otsingukonteksti rentniku ulatusega