Skip to main content

Javob tezligini oshirish (latency)

Javob tezligi

Foydalanuvchi 10 soniya kutadi — chiqib ketadi. AI-ilovalarda tezlik sifat darajasida muhim. Model qanchalik aqlli bo'lmasin, agar javob sekin kelsa — tajriba buziladi. Bu qo'llanmada — AI javob tezligini (latency) oshirish texnikalari.

Latency nima va nimadan iborat?

Ikki asosiy ko'rsatkich:

  • TTFT (Time To First Token) — birinchi token kelguncha vaqt. Foydalanuvchi "javob keldi" deb sezadi.
  • TPS (Tokens Per Second) — generatsiya tezligi. Uzun javobda muhim.

Umumiy latency = TTFT + (tokenlar soni / TPS).

Texnika 1: Streaming

Eng muhim. Javob to'liq tayyor bo'lguncha kutmaslik — token-token ko'rsatish.

with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=2000,
messages=[...]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True) # darhol ekranga

Foydalanuvchi 5 soniya bo'sh ekranga emas, balki darhol oqayotgan matnga qaraydi. TTFT ~0.5s — sezilgan tezlik 10x yaxshi, real vaqt o'zgarmasa ham.

Telegram botda: editMessageText bilan har 0.5–1s xabarni yangilab turish (rate limit'ga ehtiyot — 30 msg/s).

Texnika 2: Model tanlash tezlik uchun

Kichik modellar tezroq. Agar vazifa oddiy bo'lsa — Haiku/Flash TTFT va TPS bo'yicha 3–5x tez.

ModelTTFTTPSMos
Haiku 4.5 / Gemini Flash~0.3s~150Tez, oddiy vazifa
Sonnet 4.6~0.6s~80Balans
Opus 4.7 / GPT-5~1.2s~50Murakkab, tezlik 2-darajali

Real-time chatbot → Haiku/Sonnet. Murakkab tahlil (fon rejimda) → Opus.

Texnika 3: Parallel chaqiruvlar

Ketma-ket emas, parallel. 3 ta mustaqil so'rov bo'lsa — birdaniga yuboring.

import asyncio

async def parallel_calls(queries):
tasks = [client.messages.create(...) for q in queries]
return await asyncio.gather(*tasks)

3 ta so'rov ketma-ket 6s, parallel — 2s. Lekin: rate limit (RPM/TPM) ga ehtiyot bo'ling.

Texnika 4: Prefetch va spekulyativ

Foydalanuvchi nima so'rashini taxmin qilib — oldindan boshlash.

  • Prefetch: foydalanuvchi yozayotganda (typing) — ehtimoliy javobni tayyorlash
  • Spekulyativ: keng tarqalgan savollar uchun — keshlangan javoblar
COMMON = {"narx": "...", "yetkazib berish": "..."}

def answer(q):
cached = semantic_match(q, COMMON) # embedding o'xshashlik
if cached and cached.score > 0.9:
return cached.answer # 0ms, LLM'siz
return llm.answer(q)

Texnika 5: Output qisqartirish

Kam token = tez javob. Modelga "qisqa javob ber" desangiz — TPS o'zgarmaydi, lekin jami vaqt kamayadi (kamroq token generatsiya).

  • max_tokens ni realistik qo'ying (8000 emas, 500)
  • System promtda: "qisqa va aniq javob ber"
  • Structured output — faqat kerakli maydonlar

Texnika 6: Kontekstni kamaytirish (TTFT uchun)

TTFT input hajmiga bog'liq — model avval butun kontekstni "o'qishi" kerak. 200K token input → TTFT sekin.

Texnika 7: Edge va region

Server foydalanuvchiga yaqin bo'lsa — tarmoq latency kam.

  • API region tanlash (mavjud bo'lsa)
  • Telegram bot: webhook server yaqin regionda
  • CDN statik kontent uchun

O'zbekistondan AQSh serveriga ping ~200ms. Yevropa ~80ms. Har so'rovda qo'shiladi.

O'lchash

Optimallashtirishdan oldin — o'lchang:

import time

t0 = time.time()
first_token = None
with client.messages.stream(...) as stream:
for text in stream.text_stream:
if first_token is None:
first_token = time.time() - t0 # TTFT
...
total = time.time() - t0
print(f"TTFT: {first_token:.2f}s, Total: {total:.2f}s")

LangSmith / Helicone — production'da p50/p95/p99 latency kuzatadi.

Real misol: 8s → 2s

Telegram AI bot, javob 8 soniya:

  1. Streaming qo'shildi: foydalanuvchi 0.6s da matnni ko'radi (sezilgan: 8s → 0.6s)
  2. Model: Opus → Sonnet oddiy savollar uchun (real: -2s)
  3. Kontekst: butun tarix → oxirgi 10 xabar + summary (TTFT: -1.5s)
  4. max_tokens: 4000 → 800 (jami: -2.5s)

Natija: real 8s → 2s, sezilgan — deyarli darhol.

Anti-paternlar

  • Streaming'siz uzun javob: foydalanuvchi bo'sh ekranga 8s qaraydi → chiqib ketadi
  • Hamma joyda eng katta model: Opus oddiy savol uchun — sekin va qimmat
  • Ketma-ket mustaqil so'rovlar: parallel qilinishi mumkin bo'lganini ketma-ket yuborish
  • max_tokens cheksiz: model kerak bo'lmasa ham uzun yozadi → sekin
  • Latency o'lchamaslik: "sekin" — bu his. p95 raqam — bu fakt. Avval o'lchang

Keyingi qadamlar