Inferentsi kulude optimeerimine: promti vahemällu, marsruutimine ja väljundi kontroll
LLM-inferentsi kulud on õigete tehnikatega 60–90% vähendatavad. Promti vahemällu, mudeli marsruutimine, väljundi kontroll, partiide kasutamine ja paar vähem tuntud mustrit. Numbrid, mustrid ja tootmisdistsipliin, mis eristavad hästi juhitud inferentsi paokstotrennast arvest.
- aasta keskpaigaks on kõige levinum AI-arhitektuuri viga, mida me tootmises näeme, inferentsi eest ülemaksmine. Meeskonnad saadavad LLM-funktsioonid välja, näevad et need töötavad, ja saavad siis viiekohalised kuised arved, mis kasutusega kasvavad. Mõned funktsioonid muutuvad kahjumlikuks. Mõned ettevõtted lõikavad maha funktsioone, mis oleksid parema kulude distsipliiniga elujõulised olnud.
Numbrid on selged: enamik LLM-arveid on 60–90% suuremad, kui nad olema peaksid. Säästud ei tule ühest maagilisest tehnikast — need tulenevad liituvate optimeerimiste pakkist, igaüks omaette tagasihoidlik, kuid kumulatiivselt muundav.
See artikkel käsitleb tehnikaid, numbreid ja tootmisdistsipliini. Eeldame, et oled juba teinud põhilise mudeli marsruutimise (käsitletud teises artiklis); läheme sügavamale.
Kulude pakk
LLM-kulud tulenevad:
- Sisendi tokenitest. Mida sa mudelisse saadad. Sisaldab süsteemiprompti, konteksti, kasutaja päringut.
- Väljundi tokenitest. Mida mudel tagastab. Tüüpiliselt 3–10 korda kallim kui sisend.
- Mõtlemise tokenitest. Mõtlemismudelite puhul sisemised "mõtlemise" tokenid. Sageli sama kallid kui väljund.
- Tööriistakutsetest. Kui kasutad tööriistakutsumist, on iga tööriistadefinitsioon sisendtoken.
- Uuestiproovimised. Ebaõnnestunud kutsed maksavad ikka.
Optimeerimine töötab igal kihil.
Tehnika 1: Promti vahemällu
Üksikuna suurim hoob. Enamik moodsaid pakkujaid panevad korduvad sisendprefiksid vahemällu — sa maksad esimesel korral täis hinna, drastiliselt vähem järgnevate kutsete eest sama prefiksiga.
Hinnastus (tüüpiline):
- Anthropic: vahemällu pandud sisend ~10% tavalisest hinnast.
- OpenAI: automaatne prefiksisobitusel, ~50% tavalisest hinnast (mudelist sõltuvalt).
- Google: selgesõnaline vahemällu pandud sisu, sõltub.
Kuidas see töötab: esimene kutse mudelile konkreetse sisendprefiksiga on tavahinnas. Järgnevad kutsed vahemälu akna sees (tüüpiliselt 5–60 minutit, pakkujast sõltuvalt) taaskasutavad vahemällu pandud esitust.
Praktiline rakendamine:
Struktureeri oma promptid nii, et staatiline sisu tuleb esimesena, dünaamiline viimasena:
[CACHED: 10K tokens]
- System prompt
- Tool descriptions
- User's static profile
- Knowledge base snippets unlikely to change per call
[NOT CACHED: 1K tokens]
- Conversation history (changes each turn)
- Current user queryEsimesed 10K tokenit on pärast esimest kutset vahemälus. Järgnevad kutsed maksavad nende eest ~10% ja täis hinna 1K eest.
Säästunäide:
Ilma vahemäluta:
- 11K sisendtokenit × €3/miljon = €0.033 kutse kohta.
- 100K kutset päevas = €3 300/päevas.
Vahemäluga (90% sisendist on vahemälus):
- 1K täishind + 10K vahemälus 10%-l:
- 1K × €3/miljon + 10K × €0.30/miljon = €0.003 + €0.003 = €0.006 kutse kohta.
- 100K kutset päevas = €600/päevas.
82% sääst. Päris numbrid, päris süsteemid.
Rakendamise distsipliin:
- Tuvasta promptides staatilised vs dünaamilised osad.
- Pane staatilised osad esimeseks.
- Kasuta vahemälumärgistust seal, kus pakkuja seda toetab (Anthropic) selgeks kontrolliks.
- Testi vahemälutabamusi — sinu vaatlusvõime peaks näitama vahemälutabamuse määra. Kui see on madal, pole promti struktuur õige.
See on kõrgeima ROI-ga optimeerimine. Rakenda see enne midagi muud.
Tehnika 2: Mudeli marsruutimine
Käsitletud detailsemalt mujal. Lühidalt: erinevad päringud erinevatesse mudelitesse keerukuse põhjal.
- 60% päringutest väikestesse mudelitesse.
- 30% keskmise klassi mudelitesse.
- 10% lipulaeva mudelitesse.
Tüüpiline sääst: 60–80% võrreldes kõigi puhul lipulaeva kasutamisega.
Koos vahemäluga oled 90%+ säästul võrreldes naiivse algjoonega.
Tehnika 3: Väljundi pikkuse kontroll
Väljundtokenid domineerivad enamiku kasutuslugude kuludes. Need on 3–10 korda kallimad kui sisend; need määratakse mudeli ja promti poolt; need on tihti pikemad kui vaja.
Strateegiad:
Selgesõnalised pikkusjuhised.
Respond in at most 100 words.Mudelid järgivad seda mõistlikult. Lõikab väljundkulusid märkimisväärselt.
Struktureeritud väljund.
Kui kasutajale nähtav vastus on lühike struktureeritud andmed (JSON konkreetsete väljadega), on väljund piiratud. Pole tarbetu paljusõnalisuse riski.
`max_tokens` parameeter.
Sea see. Ära jäta vaikimisi. Kui 200 tokenit on piisav, sea max 250-le (väike puhver). Mudel ei saa ületada.
Vorminguplaranged.
"Ainult täpid" või "üks lõik" toodab lühemaid väljundeid kui vabavorm.
Täpid proosa asemel.
Täpid on tüüpiliselt poole rohkem tokeneid kui proosa, mis edastab sama infot. (Märkus: originaalis on vastupidi — täpid on poole vähem tokeneid.)
Ilma sissejuhatuseta.
"Skip introductory phrases. Get straight to the answer." Mudelid alustavad sageli "Great question..." või "Let me explain..." — raisatud tokenid.
Säästunäide:
Kokkuvõtte tööhoo. Vaikimisi väljund: 500 tokenit. Piiratud: 200 tokenit.
- 500 tokenit × €10/miljon = €0.005 kutse kohta.
- 200 tokenit × €10/miljon = €0.002 kutse kohta.
60% sääst väljundil. Vähem muljetavaldav kui vahemälu 90%, kuid suurimal kuluartiklil.
Tehnika 4: Väljundi sämplimine ja varane peatus
Mõne kasutusloo jaoks ei vaja sa täielikku LLM-väljundit — sa vajad otsust või klassifikatsiooni.
Logprobs klassifitseerimiseks.
response = openai.chat.completions.create(
model="gpt-5-mini",
messages=[{"role": "user", "content": prompt}],
logprobs=True,
top_logprobs=5,
max_tokens=1
)
# Read logprobs of first token to determine likely categorySa palud mudelil välja anda ühe tokeni (kategooria). Maksumus on üks sisendipass + 1 väljundtoken. Kiirem, odavam, sageli sama hea kui pikemad vastused.
Logit bias.
Teadaolevate komplektide väljundite jaoks kalda logitsid kehtivate valikute suunas.
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o-mini")
# logit_bias keys are token IDs (as strings), not words.
bias = {str(enc.encode(w)[0]): 100 for w in (" yes", " no", " maybe")}
response = openai.chat.completions.create(
model="gpt-4o-mini",
messages=[...],
logit_bias=bias,
max_tokens=1,
)Suunab mudeli väljastama õiget tüüpi väljundit. Odav ja usaldusväärne klassifitseerimiseks.
Tehnika 5: Partiide kasutamine
Kui töötled palju elemente, paki need kokku.
Asünkroonne partii-API tasemel.
Enamik pakkujaid toetab asünkroonseid või partii-API-sid, mis töötlevad mitut päringut madalama hinnaga.
- OpenAI Batch API: 50% allahindlus, 24-tunnine SLA.
- Anthropic Message Batches: 50% allahindlus, 24-tunnine SLA.
Kui sul on järjekorratöö, mis ei vaja reaalajavastust, käita see partiina. Pool hinnast.
Promti sees pakitamine.
Töötle mitut elementi ühes LLM-kutses, kui võimalik.
Selle asemel et:
[10 separate calls, each classifying one ticket]Tee:
[1 call, classifying 10 tickets in one prompt]Üksikkutsel on rohkem sisendit (10 elementi), aga ainult üks fikseeritud üldkulude komplekt (süsteemiprompt, tööriistakirjeldused). Kokku tokeneid vähem kui 10 eraldi kutse puhul.
Hoiatus: kvaliteet võib langeda liiga paljude elementidega ühes promtis. Testi enda kasutusloo magus koht. Tavaliselt 5–20 elementi promti kohta sobib.
Tehnika 6: Väiksemad mudelid kitsaste ülesannete jaoks
Lisaks standardsele marsruutimisele — kaalu, kas ülesanne tegelikult vajab suurt mudelit.
Klassifitseerimine: GPT-5 Nano (€0.05/M tokenit) on lihtsa klassifitseerimise puhul sageli sama hea kui GPT-5 (€2/M). 40-kordne sääst.
Väljavõte: Keskmise klassi mudelid töötavad struktureeritud väljavõtte puhul. Hoia lipulaev nende juhtude jaoks, mis ebaõnnestuvad.
Tõlge: Spetsialiseeritud tõlkimudelid või väiksemad LLM-id käsitlevad enamikku juhte.
Vektoriseerimine: Kasuta vektoriseerimisspetsialiseeritud mudeleid, mitte üldotstarbelisi LLM-e vektoriseerimiseks.
Muster: tuvasta oma "lihtsad, kitsad" töökoormused. Marsruudi need väikseima mudeli juurde, mis tööd piisavalt teeb. Hoia lipulaev keerukate, otsusterohkete tööde jaoks.
Tehnika 7: Peenhäälestatud väikesed mudelid
Väga suure mahu kitsaste ülesannete jaoks peenhäälesta väike mudel.
Näide: 100K klassifitseerimispäringut päevas.
- GPT-5 muutmata: €30/päevas API-kuludena.
- Peenhäälestatud 8B mudel pühendatud inferentsil: €5–10/päevas inferentsiks, pluss ühekordne peenhäälestamise kulu.
Piisava mahu juures tasub peenhäälestatud väike mudel kiiresti ära. Matemaatika sõltub sinu mahust.
Käsitlesime seda peenhäälestamise artiklis. Põhimõte: kui skaala ja kitsus joonduvad, on peenhäälestamine kulukulu hoob.
Tehnika 8: Eelfiltreerimine
Mitmesammuliste LLM-tööhoode jaoks püüab odav filtreerimine ilmsed juhud enne kulukat töötlust.
Näide: klienditoe klassifitseerimine + vastus.
Odav eelfilter:
- "Kas see on tegelik tugiküsimus või müra/rämps?" (1-tokeniline klassifitseerimine väikesel mudelil.)
- "Kas see on teadaolev KKK?" (Vektoriotsing; odav.)
Ainult filtrist läbi tulnud päringud jõuavad kuluka vastuse genereerimiseni.
Sääst: kui 30% sissetulevatest päringutest on müra või KKK-st leitav, on see 30% kallitest kutsetest kõrvaldatud.
Eelfilter on odav (€0.0001 kutse kohta) võrreldes vastuse genereerimisega (€0.05 kutse kohta). Lihtne ROI.
Tehnika 9: Vahemällu salvestamine üle promti vahemälu
Lisaks mudelipakkuja promti vahemälule rakenduse tasandi vahemällu salvestamine:
Vastuste vahemällu. Sama päring, sama kontekst, sama vastus. Salvesta vahemällu ja tagasta ilma mudelit kutsumata.
def cached_call(prompt, model, ttl=3600):
cache_key = hash(prompt + model)
cached = redis.get(cache_key)
if cached:
return cached
response = call_llm(prompt, model)
redis.set(cache_key, response, ttl=ttl)
return responseIdempotentsete päringute jaoks kõrvaldab see dubleerivad kutsed täielikult.
Vektoriseeringute vahemällu. Arvutatud vektorid vahemälus.
Otsingu tulemuste vahemällu. Päringu otsingutulemused lühiajaliselt vahemälus.
Tööriistatulemuste vahemällu. Tööriistakutsete tulemused vahemälus, kui aluseks olevad andmed sageli ei muutu.
Vahemälu tasandid kuhjuvad. Igal kihil säästad kutseid.
Tehnika 10: Spekulatiivne täitmine
Latentsustundlike voogude jaoks, kus saad järgmist sammu ennustada, kutsu spekulatiivselt ette.
Näide: klienditoe agent. Tead, et järgmine samm on tavaliselt "tee probleemist kokkuvõte" pärast seda kui klient seda kirjeldab. Alusta seda kokkuvõtet paralleelselt kasutajale kinnituse näitamisega.
Kui ennustus on õige, on vastus valmis siis, kui vaja. Kui vale, raiskasid ühe kutse.
See on rohkem latentsuse kui kulu optimeerimine, kuid mõne voo jaoks parandab UX-i märkimisväärselt.
Tehnika 11: Pakkuja-arbitraaž
Erinevad pakkujad küsivad sarnaste mudelite eest erinevalt. Kasuta seda ära.
Avatud lähtekoodiga mudelid odavatel inferentsipakkujatel.
Llama 4 70B Together AI-l: ~€0.30/M sisend, €0.50/M väljund. Samaväärne kvaliteet Anthropicu Claude 4 Sonnet'ilt: ~€2/M sisend, €15/M väljund.
Ülesannete jaoks, kus Llama 4 70B on piisav, säästad 5–30 korda.
Sama mudel erinevatel pakkujatel.
Mõned avatud mudelid majutatud mitme pakkuja poolt erineva hinnastusega. Vaata ringi.
Iseohoidmine skaalal.
Piisava mahu juures (näiteks €10K+/kuus konkreetsel mudelil) muutub isemajutamine API-kutsetest odavamaks. Vajab operatsioonilist võimekust.
Pakkuja-arbitraaž nõuab keerukust. Mitme pakkuja marsruutimine tagavaraga. Kvaliteeditestid igal pakkuja variandil. Suurel skaalal seda tasub teha.
Tehnika 12: Inferentsi kiirendus
Iseohoitavate jaoks: inferentsikihi enda optimeerimine.
vLLM, TGI, SGLang. Optimeeritud inferentsiserverid. 2–10 korda läbilask vs naiivsed rakendused.
Kvantimine. Käita mudeleid madalamal täpsusel (4-bit, 8-bit). 2–4 korda läbilask, kerge kvaliteedikulu.
Flash Attention, paged attention. Arhitektuurilised optimeerimised, mis on moodsates serverites lubatud.
Pidev partiide moodustamine. Serverid, mis pakitavad lennus päringuid parema GPU kasutuse jaoks.
Meeskondade jaoks, kes hoiavad isemajutavalt skaalal, on see oluline. API-sid kasutavate meeskondade jaoks tegeleb pakkuja sellega.
Tehnika 13: Voogesitamine
Voogesitamine ei vähenda tokenite arvu, kuid parandab UX-i, mis on oluline kulutõhususe taju jaoks.
Pikkade väljundite jaoks näevad kasutajad sisu kohe ilmumas. Nad saavad lugeda, kuna genereerimine lõpeb. Tundub palju kiiremana kui täis vastuse ootamine.
Agentide jaoks annab vahesammude voogesitus kasutajatele nähtavuse edenemisesse.
Rakendamine: iga moodne API toetab voogesitust. Kasuta seda kasutaja suunaliste voogude jaoks.
Tehnika 14: Eelarvepiired
Lisaks optimeerimisele jõusta kõvad eelarved, et ennetada paokstotrennast kulu.
Päringu eelarve. Päringu maksimaalsed tokenid. Peata, kui ületatud.
Kasutaja eelarve. Päevane või kuine kulupiir kasutaja kohta. Pidurda, kui ligineb.
Funktsiooni eelarve. Igal funktsioonil on eelarve. Automaatne väljalülitus 10-kordsel päevasel keskmisel.
Globaalne eelarve. Kogu päevane/kuine piir. Peatab mitteolulise töö piiride lähedal.
Need ei säästa otse raha, kuid hoiavad ära katastroofid. Üks viga või rünnak võib ilma piireteta kulusid kiiresti üles ajada.
Praktiline näide: päris kulude vähendamine
Klienditoe AI-d käitanud meeskonnal oli €12 000/kuus arve. Kuus kuud hiljem, rakendatud tehnikatega, oli see €1 800/kuus — 85% vähenemine.
Muudatused:
- Promti vahemällu. Promptid ümberstruktureeritud, et maksimeerida staatilist prefiksit. ~70% sisendist nüüd vahemälus. Säästis ~30%.
- Mudeli marsruutimine. Klassifitseerimine ja piletite triaaž liikusid Claude Sonnet'ilt Claude Haikule. Säästis ~15%.
- Väljundi pikkuse kontroll. Vastused piiratud 250 sõnaga eelnevast 800–1500-st. Säästis ~25%.
- Eelfiltreerimine. Odav klassifitseerimine püüab KKK-tüüpi piletid, serveeritud vahemälust. ~20% piletitest kõrvaldatud kallist voost. Säästis ~10%.
- Vastuste vahemällu KKK jaoks. Identsed küsimused tagastavad vahemällu pandud vastused. Säästis ~5%.
Liituvate efektide tõttu on kogusääst rohkem kui osade summa protsendi alusel — iga sääst kehtib ülejäänud kulu peal.
Kvaliteet: iga mõõdetud mõõdiku järgi (kliendi rahulolu, vastuse korrektsus, lahendamise määr) oli kvaliteet muutumatu või veidi parem.
Operatsiooniline kulu: ~80 tundi inseneritööd 3 kuu jooksul. ROI: tasus end 2 nädalaga.
Levinud vead
Mõned mustrid, mida me näeme:
Viga 1: Kulude jälgimine puudub. Meeskonnal pole nähtavust, mis iga funktsioon, kasutaja või kutse maksab. Optimeerimine on võimatu ilma mõõtmiseta.
Viga 2: Vale asja optimeerimine. Kulutas nädalaid sisendtokenite 5% vähendamisele, kui väljundtokenid olid 80% arvest. Mõõda kõigepealt; optimeeri suurimaid panustajaid.
Viga 3: Kvaliteedi taandareng. Kulude lõiked saadetud välja ilma kvaliteedi monitoorimiseta. Säästsid raha, kaotasid kasutajaid. Paari kulu töö alati eval-komplektidega.
Viga 4: Üle-marsruutimine. Agressiivne marsruutimine väikestesse mudelitesse ülesannete jaoks, millega need tegelikult hakkama ei saa. Vale sääst.
Viga 5: Vahemälu reostumine. Vahemälu täitub haruldaste päringutega. Enamik vahemälu kirjeid kasutatakse korra. Vahemälu möödalask domineerib. Vajalik on parem vahemälu strateegia.
Viga 6: Batch API vahelejätmine. Reaalajas, kui partii ajaks ära. Pool hinnast jäi laual.
Viga 7: Üle-konstrueerimine. Keerukate kulu optimeerimiste ehitamine niikuinii kahjumlikele funktsioonidele. Mõnikord on õige vastus "tapa funktsioon."
Viga 8: Eelarvepiired puuduvad. Üks viga toodab paokstotrennast olukorra. Katastroof, mitte väike ebamugavus.
Kultuuriline osa
Kulude distsipliin on osaliselt kultuuriline. Meeskonnad, kes õnnestuvad:
- Suhtuvad kulusse mõõdikuna, mitte tagamõttena.
- Kellelgi on selle omanik (sageli keegi inseneri/finantsi piiril).
- Vaatavad kulusid iganädalaste mõõdikute hulgas.
- Uurivad kõikumisi koheselt.
- Seavad eelarved funktsiooni kohta; hoiatavad läve ületamisel.
- Teevad kompromisse selgesõnaliselt (kulu vs kvaliteet vs latentsus).
Meeskonnad, kes ei õnnestu:
- Kohtlevad kulu kellegi teise probleemina.
- Avastavad arve kuu lõpus.
- Reageerivad kõikumistele tagantjärele.
- Pole eelarvekontseptsiooni.
- Jätavad kompromisside arutelu vahele; optimeerivad ühe mõõtme korraga.
Kultuurimuutus on raskem kui tehniline muutus. Aga just see paneb tehnilised muutused püsima.
Hinnastuse trajektoor
Märkus laiema trendi kohta.
LLM-inferentsi kulud langevad 5–10 korda aastas. Mudel, mis täna maksab €5/M tokenit, on aasta pärast tõenäoliselt €0.50–€1/M.
See tähendab:
- Mõned optimeerimised on aja jooksul vähem olulised (absoluutne hind langeb niikuinii).
- Mõned praegu kahjumlikud töökoormused muutuvad kasumlikuks.
- Ehita pikaks distantsiks: puhas arhitektuur > iga sendi pigistamine praegu.
Sellegipoolest: isegi langevate hindade puhul on optimeerimine oluline. Ebatõhusad süsteemid raiskavad raha igal hinnatasandil. Ja konkurentsieelis läheb sageli meeskondadele, kes käitavad tõhusaid operatsioone madalama kuluga.
90-päevane kulude optimeerimise plaan
Meeskonnale, kes alustab "meil on AI-funktsioon, kulud on suuremad kui oodatud":
Nädalad 1–2: Mõõda.
- Mõõdista kulud kõne kohta.
- Ehita funktsiooni ja kasutaja kaupa armatuurlauad.
- Tuvasta suurimad kulude panustajad.
Nädalad 3–4: Kiired võidud.
- Luba promti vahemällu seal, kus toetatud.
- Struktureeri 3 enim kutsutud prompti ümber, et maksimeerida vahemälu tabamuse määra.
- Sea max_tokens kõikidel kutsetel.
- Rakenda eelarvehoiatused.
Nädalad 5–6: Marsruutimine.
- Tuvasta lihtsad ülesanded, mis praegu on lipulaeval.
- Ehita marsruuter 3–5 enim kutsutud lõpp-punkti jaoks.
- Testi kvaliteedi taandarengu suhtes.
Nädalad 7–8: Väljund ja vahemälu.
- Piira väljundi pikkusi seal, kus pole kasutajale nähtav.
- Lisa rakenduse tasandi vastuste vahemälu levinud päringutele.
- Lisa eelfilterid kõrgeima mahuga voogudele.
Nädalad 9–10: Edasijõudnud.
- Batch API mitte-reaalaja töö jaoks.
- Pakkuja alternatiivid hinnatud.
- Vektoriseeringute vahemälu, otsingu vahemälu.
Nädalad 11–12: Kõvenemine.
- Eelarvepiired igal funktsioonil.
- Kulude armatuurlauad regulaarses meeskonna ülevaates.
- Mustrite dokumenteerimine tulevaste funktsioonide jaoks.
90 päeva lõpuks: 50–80% kulu vähendamine on realistlik. Kvaliteet monitooritud. Distsipliin sisse põimitud.
Kokkuvõte
LLM-kulud on vähendatavad — tavaliselt 60–90% — ilma kvaliteedikadudeta. Tehnikad on hästi tuntud: vahemällu, marsruutimine, väljundi kontroll, partiide kasutamine, eelfiltreerimine, vastuste vahemällu, mudeli valik, eelarvepiired.
Eraldi tehtuna säästab iga tagasihoidlikult. Koos tehtuna kuhjuvad need dramaatiliste säästudeni.
Meeskonnad, kes selle õigesti teevad, muudavad kahjumlikud AI-funktsioonid kasumlikuks. Meeskonnad, kes ei tee, peavad lõpuks lõikama maha funktsioone, mis oleksid pidanud elujõulised olema.
Mõõda kõigepealt. Optimeeri suurimad panustajad. Hoia kvaliteedi monitooring. Ehita kulude distsipliin meeskonna regulaarsesse töösse.
Tulemus: AI-funktsioonid, mis skaaleeruvad majanduslikult, mitte ainult tehniliselt. See on see, mis teeb AI-st jätkusuutliku osa tootest, mitte ainult lansseerimise pealkirja.