Kasu:
- Selgitage kiire vahemällu salvestamise eesliidete sobitamise loogikat
- Suurendab vahemälu tabamust, asetades fikseeritud konteksti esikohale ja muutuva konteksti pärast seda
- Oskab arvutada vahemällu kirjutamise/lugemise ökonoomikat ja tasuvuspunkti
LLM-toode näeb prototüübina odav välja; Kui astud skaalale, üllatab arve. Enamiku töökoormuste puhul pärineb suurem osa arvest samast fikseeritud kontekstist, mis saadetakse ikka ja jälle iga päringuga: pikk süsteemiviip, reegliteraamat, viitedokumentatsioon. Kiire vahemällu salvestamine kõrvaldab täpselt selle raiskamise. Selles üksuses saate teada, kuidas vahemälu töötab, kuidas korraldada viipa tabamiseks ja kuidas arvutada vahemälu säästmise tasuvuspunkti. Kui see on õigesti paigaldatud, võib see üksi vähendada teie arve poole võrra või isegi madalamale.
Kuidas vahemälu töötab? Üks muutumatu reegel
Kiire vahemällu salvestamine on eesliite vaste. Teenusepakkuja salvestab ajutiselt žetoonid, mida ta on teie viipa algusest peale töödeldud. Kui viip algab järgmise päringu puhul sama eesliitega, siis seda ühisosa ümber ei arvutata; Seda on palju odavam lugeda kui vahemälu.
Sellest tuleneb üks muutumatu reegel: kui üks bait muutub ükskõik millises prefiksis, muutub kogu vahemälu sellest hetkest kehtetuks. See tähendab, et fikseeritud sisu peaks olema alguses ja muutuv sisu peaks olema lõpus. Kui paned süsteemiviipa algusesse rea, mis muutub iga päringuga, näiteks "Tänane kuupäev: 18.07.2026", siis kõik selle taga ei saa vahemällu siseneda.
Töötlemise järjekord on tavaliselt: tööriistad → süsteemiviip → teated. Asetate vahemälupunkti (murdepunkti) fikseeritud jaotise lõppu.
Vahemälu majandus
Vahemällul on kolm hinnataset:
- Vahemällu kirjutamine: salvestatakse esimest korda. ~1,25x tavaline sisendhind (5 minuti hoiustamise eest).
- Vahemälu lugemine: järgmiste taotluste lugemine. Tavalisest sisendhinnast ~0,1 korda – ehk kümnendiku võrra.
- Tavaline sisend: osa, mis ei sisene vahemällu ja mida töödeldakse iga kord täishinnaga.
Tasuvuspunkt: esimene taotlus maksab lisatasu (1,25×). Alates teisest päringust tuleb mängu näit (0,1×). Ligikaudselt on teil kahel nõudmisel kaela ja kaela. Pärast seda on see puhas sääst. Mida suurem on fikseeritud kontekst ja mida rohkem taotlusi seda uuesti kasutatakse, seda suuremaks muutub võimendus.
Stsenaarium
Kas vahemälu töötab?
Suur fikseeritud süsteemiviip, tuhanded päringud
Jah – kõrgeim sissetulek
Palju küsimusi samade viitedokumentide kohta
Jah
Iga päringu jaoks täiesti erinev lühike tekst
Ei – kirjutamisboonus on raisatud
Ühekordne taotlus
Ei – ei loe üldse
Kuupäev/ID muutub iga päringu korral süsteemiviibal
Ei – eesliide on katki, tabamus on null
Samm-sammult: kuidas seadistada tabamusviip?
- Eraldi konstant ja muutuja. Milline sisu ei muutu kunagi (süsteemiviip, reegliraamat, dokumentatsioon)? Mis muutub iga päringu korral (kasutaja küsimus, kuupäev, ID)?
- Pange konstant algusesse. Töötlemise ajal peab esikohal olev osa (tööriistad, süsteem) olema stabiilne.
- Pange muutuja lõppu. Kasutaja praegune küsimus, viimane.
- Asetage silt piiri lõppu. Asetage vahemälu punkt fikseeritud osa viimasesse plokki.
- Kinnitage tabamus. Kontrollige, kas vastuse kasutusväljal on väärtus cache_read_input_tokens suurem kui null. Kui see on null, on eesliites peidetud segaja.
{ "süsteem": [ { "tüüp": "tekst", "tekst": "{{large_constant_system_promptu_and_rules}}", "cache_control": { "tüüp": "efemeraalne" } } ], "sõnumid": [ { "role": "kasutaja", "sisu": "{{kasutaja_praegune]}}"_
Näpunäide. Ärge arvake vahemälu tabamust, vaid mõõtke neid. Kui usage.cache_read_input_tokens on järjestikuste päringute puhul ikka veel null, töötab vaikne kaitselüliti (datetime.now() süsteemiviibal, järjestamata JSON, iga päringu korral muutuvate tööriistade loend). Võrrelge kahe päringu töötlemata viipa baithaaval ja leidke erinevus.
Vaiksed segajad
Tüüpilised mustrid, mis teadmatult rikuvad vahemälu:
# BREAKER: teabe manustamine süsteemiviipale, mis muutub iga päringuga "Tänane kuupäev: {{nüüd}}. Olete assistent..." ← eesliide muutub iga päringuga, tabamus on null# TRUE: liigutage muutuja sõnumisüsteemi: "Olete assistent..." ← konstant siseneb vahemälu kirjadesse: [{roleTo:}. ..."}] ← muutuja lõpus
Muud kaitselülitid: JSON sorteeritakse iga päringu korral erinevalt (hoidke võtmed fikseeritud järjekorras), tööriistade loend on kasutajati erinev (tööriistad töödeldakse kõigepealt; vahemällu ei lähe midagi, kui need muutuvad), mudeli muutmine vestluse ajal (vahemälud on mudelipõhised).
Nõrk viip / tugev viip (vahemälusõbralik struktuur)
# WEAK (cache busting build)süsteem: "Kuupäev: 18.07.2026 14:32. Kasutaja: Ahmet (id 8842). Olete tugibot. Reeglid: ...(2000 märgid)..."
# TUGEV (vahemälusõbralik struktuur)süsteem: "Olete tugibot. Reeglid: ...(2000 tokenit, ei muutu kunagi)..." [vahemälu märk]teated: [ { roll: kasutaja, sisu: "Kuupäev: 18.07.2026 14:32. Kasutaja ID: 8842. Küsimus: kuidas algatada oma tagasimakse?" }]
Nõrgas versioonis töödeldakse 2000 märgist koosnevat reegliplokki iga taotluse korral täishinnaga. Tugevas versioonis kirjutatakse sama plokk üks kord ja loetakse kõikidel järgnevatel päringutel kümnendiku hinna eest.
Kolm miniümbrist
Juhtum 1 – reegliraamatu vahemällu salvestamine. Raamatupidamise automatiseerimine lisab igale arvele 12 000 märgi reegliraamatu; 5000 taotlust päevas. Vahemäluvaba sisend maksab ~180 dollarit päevas. Nad hoidsid reegliraamatut konstantsena ja salvestasid selle vahemällu: esimeste päringute eest maksti kirjutamistasu, järgnevate lugemiste eest 0,1 ×. Sisendkulu langes ~90% kuni ~18 dollarini päevas.
Juhtum 2 – peidetud kuupäevarea maksumus. Üks meeskond seadistas vahemälu, kuid ei saanud tabamusi; cache_read_input_tokens oli alati null. Põhjus: süsteemiviipa esimesel real oli datetime.now(), eesliide muutus iga päringuga. Kui teisaldasime kuupäeva kasutaja sõnumisse, tõusis tabamusmäär ootamatult 0%-lt 94%-le.
Juhtum 3 – valesti paigutatud vahemälu. Otsingurakendus saatis iga päringuga täiesti erinevad lühikesed päringud; Nad lisasid innukalt vahemälu märgi. Ühise eesliideta maksis iga päring ainult kirjutamise lisatasu, lugemist ei toimunud – see suurendas kulusid. Nad eemaldasid märgi. Õppetund: vahemälu maksab ainult siis, kui on suur ja püsiv eesliide, mida taaskasutatakse.
Levinud vead
- Konstandi ja muutuja segamine: kui muutuja sisu on eesliites, lähtestatakse tabamus.
- Kuupäeva/ID manustamine süsteemiviipale: kõige tavalisem vaikne segaja.
- Tabamust ei mõõdeta: kui cache_read_input_tokens pole märgitud, siis jäätmeid ei märgata.
- Vahemälu lisamine avaliku eesliide puudumisel: maksate ainult kirjutamise lisatasu, kulud suurenevad.
- Sõidukite nimekirja või mudeli muutmine: eesliide on algusest peale katki; kõik on ümber kirjutatud.
- Vahemälu minimaalse suuruse unustamine: väga lühikesed vahemälud (olenevalt mudelist alla ~1–4 000 märgid) ei sisene vahemällu vaikselt.
Sügavam: vahemälu kujundamine töökoormuse tüübi järgi
Vahemällu salvestamise tegelik tasuvus sõltub teie töökoormuse iseloomust; nii et tutvuge kõigepealt oma liiklusega. Kolm tüüpilist mustrit ja õige paigaldus:
Ühine süsteemiviip, erinevad küsimused. Levinuim ettevõtte muster: suur süsteemiviip (roll, reeglid, võib-olla viitedokument) sadade erinevate kasutajaküsimustega. Siin on fikseeritud osa (süsteem) algselt vahemällu salvestatud; iga uus küsimus maksab täishinda ainult oma väikese osa eest. Kasum on väga suur, sest suurt osa loetakse korduvalt ette kümnendiku hinnaga.
Mitmevooruline monoloog. Vestluse venimisel tugineb iga uus voor kogu varasemale ajaloole. Kui panete vahemälu lipu viimase vooru lõppu, kasutab iga päring uuesti eelmist vestluse eesliidet; tabamustes koguneb vestluse kasvades. See piirab dramaatiliselt pikkade assistendiseansside kulusid.
Jagatud eesliide on viimane muudatus. Mitmel päringul on suur hulk fikseeritud eelsõnu (näidiskomplekt, juhised), kuid neid eraldab lõpus üks küsimus. Paned vahemälukursori jagatud osa lõppu; Vastasel juhul kirjutaks iga päring eraldi vahemällu ja ühtki neist ei loeta.
Üks hoiatus: vahemälu sõltub mudelist ja teatud minimaalsest suurusest. Väga väikesed prefiksid (alla mõne tuhande märgi, olenevalt mudelist) ei sisene vaikselt vahemällu isegi siis, kui need märgistate – cache_creation_input_tokens jääb nulliks. Samuti muudab mudeli muutmine vestluse ajal kogu vahemälu kehtetuks; Kui teistsugune ülesanne nõuab odavat mudelit, hoidke põhivoogu ühes mudelis ja lisage kõrvaltöö eraldi kõnesse.
Kokkuvõttes
Kiire vahemällu salvestamine on eesliite vaste: fikseeritud sisu peaks olema alguses, muutuv sisu peaks olema lõpus. Suure taaskasutatud konteksti puhul on lugemise maksumus kümnendik täishinnast, mis ületab ligikaudu kahe päringu korral. Kõige tavalisem viga on eesliite rikkumine, manustades süsteemiviipale muutuvaid andmeid; Kinnitate tabamust, mõõtes seda kasutusväljal.
Rakenduse ülesanne
Valige töökoormus. (1) Jagage sisu kahte veergu: "ei muutu kunagi" ja "muutub iga taotluse korral". (2) Joonistage kiire struktuur ümber, pannes konstantse osa algusesse ja muutuva osa lõppu. (3) Hinnake fikseeritud osa märgi suurust ja võrrelge igakuist kulu vahemäluga/ilma. (4) Pange tähele, milliselt väljalt (cache_read_input_tokens) te tabamust kinnitate.
kontrollnimekiri
- [ ] Võin selgitada, et vahemälu on eesliidete sobitamine ja ainus muutumatu reegel.
- [ ] Täpsust saan tõsta, pannes fikseeritud sisu algusesse ja muutuja lõppu.
- [ ] Ma tean kirjutamis-/lugemisõpetust ja kahe taotluse tasuvuspunkti.
- [ ] Tunnen ära vaikivad segajad (kuupäev, järjestamata JSON, muutuv sõidukite loend).
- [ ] Saan tabamust kinnitada funktsiooniga usage.cache_read_input_tokens.