Asosiy kontentga o‘tish
AI qo‘llanmalari

LLM inferens muhandisligini asoslardan o‘rganing

Tokenizatsiya, prefill, dekodlash, KV keshlash, rejalashtirish, paketlash, xotirani boshqarish va inferens mexanizmi ichki tuzilmalari bo‘yicha amaliyotga asoslangan o‘quv yo‘lidan boring. Ushbu qo‘llanma repozitoriydagi birinchi mavjud bobdan qanday boshlash va rejalashtirilgan runtime yaratish darslariga tayyorlanishni tushuntiradi.

LLM inferens muhandisligini asoslardan o‘rganing

Inference Engineering Zero to Hero nima?

Inference Engineering Zero to Hero — katta til modellarini ishga tushirish ortidagi runtime tizimlarini tushunishga yordam beradigan amaliy kurs repozitoriysi. U modelni o‘qitish yoki sifatini yaxshilashga emas, so‘rov LLM’ga yetib kelganidan keyin nimalar sodir bo‘lishiga e’tibor qaratadi.

Loyiha eng kichik foydali inference amallaridan boshlanib, asta-sekin ixcham inference runtime’iga olib boradi. Ko‘zda tutilgan ketma-ketlik quyidagicha:

tokenization → prefill → decode → KV cache → sampling → request state → scheduling → continuous batching → memory management → serving-engine internals

Amaliyotga asoslangan yondashuv tensorlar, generatsiya qilingan natijalar, kesh holati va xotira sarfini bevosita tekshirishni ta’kidlaydi. Bu model amallarini latency, throughput, GPU’dan foydalanish darajasi va xotira sarfi kabi amaliy serving masalalari bilan bog‘lashga yordam beradi.

Nimalarni o‘rganasiz

Kurs LLM inference’iga tizimlar nuqtayi nazaridan qarashni rivojlantirish uchun tuzilgan. Asosiy mavzular:

  • Tokenization: prompt model iste’mol qiladigan token ID’lariga qanday aylanishi.
  • Prefill: model dastlabki prompt’ni qanday qayta ishlashi va generatsiya uchun zarur holatni yaratishi.
  • Decode: keyingi tokenlar qanday qilib birma-bir generatsiya qilinishi.
  • KV caching: attention holati qanday kengayishi va keraksiz qayta hisoblashning oldi olinishi.
  • Sampling: model chiqishidagi score’lardan token qanday tanlanishi.
  • Request state: runtime prompt’lar, generatsiya qilingan tokenlar va yakunlanish holatini qanday kuzatishi.
  • Scheduling: engine qaysi so‘rovlarni qayta ishlashni qanday belgilashi.
  • Continuous batching: faol so‘rovlar tizimga kirib-chiqishi davomida qanday samarali birlashtirilishi.
  • Memory management: GPU xotirasi qayerda ishlatilishi va keshni tashkil etish sig‘imga qanday ta’sir qilishi.
  • Serving-engine internals: model bajarilishi samaradorlikni oshiradigan tizimlar bilan qanday o‘ralishi.

Kurs holati va tuzilishi

Repozitoriy Beginner, Intermediate va Advanced darajalariga bo‘lingan. Hozirda Beginner yo‘nalishi ishlab chiqilmoqda. Intermediate va Advanced materiallari hali mavjud emas.

Mavjud bob

  • Chapter 01: Manual LLM Inference From First Principles — beginner/01_manual_llm_inference/ ichida mavjud.

Rejalashtirilgan Beginner boblari

  1. Sampling
  2. Request State
  3. Simple Scheduler
  4. Continuous Batching
  5. KV Cache Management
  6. Paged or Block KV Cache
  7. Prefix Caching
  8. Benchmarking Inference

Yo‘l xaritasi ataylab moslashuvchan tuzilgan. Amaliyot davomida yangi muammolar aniqlanishiga qarab boblar qo‘shilishi, olib tashlanishi, bo‘linishi yoki qayta tartiblanishi mumkin.

O‘rnatish va sozlash

Repozitoriy README faylida aniq dependency o‘rnatish buyrug‘i yoki muhit spetsifikatsiyasi berilmagan. Avval repozitoriyni yuklab oling yoki klonlang, keyin biror narsani o‘rnatish yoki ishga tushirishdan oldin 1-bob bilan birga kelgan fayllar va ko‘rsatmalarni ko‘rib chiqing.

  1. GitHub repozitoriysining mahalliy nusxasini oling.
  2. Terminal, editor yoki notebook muhitida repozitoriy katalogini oching.
  3. beginner/01_manual_llm_inference/ katalogiga o‘ting.
  4. Bobga xos ko‘rsatmalarni o‘qing va shu katalogdagi notebook’ni aniqlang.
  5. Faqat bob materiallarida so‘ralgan dependency’larni o‘rnating.
  6. Notebook’ni oching va uning kataklarini tartib bilan bajaring.
beginner/01_manual_llm_inference/

README’da paketlarning aniq versiyalari, apparat talablari yoki o‘rnatish buyruqlari ko‘rsatilmaganligi sababli, runtime sozlamalari uchun bob notebook’ini asosiy manba sifatida ishlating.

Asosiy foydalanish: Manual Inference jarayonini bajaring

1-bob boshlash uchun tavsiya etiladi. Uning maqsadi generatsiyani to‘liq serving API’si ortiga yashirish emas, balki LLM inference’ini dastlabki tamoyillardan boshlab qo‘lda ko‘rib chiqishdir.

1-qadam: Notebook’ni ketma-ket bajaring

Notebook’ni boshidan oxirigacha ishga tushiring. Sozlash yoki tekshirish kataklarini tashlab ketmang, chunki keyingi amallar avvalroq yaratilgan model obyektlari, tokenizatsiya qilingan kirishlar yoki keshlangan holatga bog‘liq bo‘lishi mumkin.

2-qadam: Prompt’ni kuzating

Kirish prompt’i inference jarayonidan o‘tishi davomida qanday o‘zgarishini kuzating. Foydali konseptual ketma-ketlik:

prompt text
→ token IDs
→ prompt processing or prefill
→ next-token scores
→ selected token
→ updated sequence
→ repeated decoding

Notebook ularni ko‘rsatgan joylarda tensor shakllari va tokenlar sonini qayd eting. Bu butun prompt’ni qayta ishlash bilan bitta qo‘shimcha token generatsiya qilish o‘rtasidagi farqni ko‘rishni osonlashtiradi.

3-qadam: Prefill va Decode’ni ajrating

Prefill prompt’ni qayta ishlab, generatsiya uchun zarur holatni yaratadi. Decode qo‘shimcha tokenlarni bosqichma-bosqich hosil qiladi. Ularni alohida bosqichlar sifatida ko‘rish muhim, chunki ularning hisoblash va xotira xususiyatlari farq qiladi.

Notebook’ni ishga tushirayotganda quyidagilarni so‘rang:

  • Prefill vaqtida nechta kirish tokeni qayta ishlanadi?
  • Har bir decode bosqichida qanday kirish uzatiladi?
  • Yangi token generatsiya qilingandan so‘ng qaysi tensorlar o‘zgaradi?
  • Qaysi holatdan qayta hisoblamasdan foydalanish mumkin?

4-qadam: Natijalarni bevosita tekshiring

Token ID’larini dekodlangan matn bilan taqqoslang va notebook imkon bergan joylarda oraliq natijalarni tekshiring. Maqsad shunchaki matn hosil qilish emas, balki shu matn uchun javobgar amallar ketma-ketligini tushunishdir.

Runtime modelini tushunish

Repozitoriyni o‘rganishning foydali usuli — generatsiyani bitta model chaqiruvi emas, balki holatga ega sikl sifatida ko‘rishdir:

prepare request
process prompt
store reusable state
select next token
update request state
repeat until completion

Bu nuqtayi nazar sizni keyingi boblar uchun tayyorlaydi. Sampling qaysi token tanlanishini belgilaydi, so‘rov holati har bir generatsiyani kuzatib boradi, rejalashtirish bajariladigan ishni tanlaydi, continuous batching esa bir nechta faol so‘rovlardagi ishlarni birlashtiradi.

Ilg‘or o‘rganish bo‘yicha maslahatlar

Shakllar, holat va xotirani birgalikda kuzating

Tensorlarni alohida holda tekshirmang. Har bir muhim amal uchun kirish shakli, chiqish shakli, ketma-ketlik uzunligi, kesh holati va xotiraning kutilayotgan o‘sishini qayd eting. Bu matematik model bajarilishini tizim xatti-harakati bilan bog‘laydi.

Prompt uzunligi va dekodlash uzunligini taqqoslang

Bob kirish ma’lumotlarini o‘zgartirishga imkon berganda, qisqa va uzun promptlarni, shuningdek qisqa va uzun generatsiyalarni taqqoslang. Qaysi xarajatlar prefill paytida yuz berishini va qaysilari dekodlash davomida to‘planishini kuzating. O‘lchovlaringiz ko‘rsatganidan tashqari xulosalarni benchmark natijalariga asosan taxmin qilmang.

So‘rov holati jadvalini tuzing

So‘rov holatiga bag‘ishlangan bob mavjud bo‘lishidan oldin kuzatuvlarni quyidagi maydonlar yordamida tartibga solishingiz mumkin:

  • Kiritilgan token identifikatorlari
  • Generatsiya qilingan token identifikatorlari
  • Joriy ketma-ketlik uzunligi
  • Kesh holati
  • Generatsiya holati

Bu joriy repository va’da qilgan xususiyat emas, balki o‘rganish usulidir. U nima sababdan inference engine’lariga modelning o‘zi atrofida tizimlar kerakligini ko‘rsatishga yordam beradi.

Optimallashtirishdan oldin o‘lchang

Yo‘l xaritasida inference benchmarking’iga bag‘ishlangan rejalashtirilgan bob mavjud. U mavjud bo‘lguncha tajribalarni nazorat ostida olib boring: har safar faqat bitta kirish yoki generatsiya shartini o‘zgartiring, kuzatuvlarni qayd eting va o‘lchangan xatti-harakatni taxminlardan ajrating.

Avvalgi boblarni qayta ko‘rib chiqing

Sampling, rejalashtirish, batching va keshni boshqarish boblari qo‘shilgach, qo‘lda inference jarayonini qayta ko‘rib chiqing. Har bir yangi abstraksiyani token generatsiyasining dastlabki sikli bilan bog‘lang, shunda optimallashtirishlar haqiqiy model bajarilishiga asoslangan bo‘lib qoladi.

Joriy cheklovlar

Hozirda faqat Beginner bo‘limining birinchi bobi mavjud sifatida ko‘rsatilgan. Sampling, scheduler’lar, continuous batching, keshni boshqarish strategiyalari, benchmarking hamda Intermediate va Advanced yo‘nalishlari rejalashtirilgan. Shuning uchun repository’ni to‘liq inference-engine freymvorki emas, balki rivojlanib borayotgan kurs sifatida ko‘rish kerak.

Xulosa

Inference Engineering Zero to Hero LLM’larning runtime tomonini o‘rganish uchun amaliy yo‘lni taklif etadi. beginner/01_manual_llm_inference/ papkasidan boshlang, notebook’ni tartib bilan ishga tushiring va promptlar, tokenlar, tensorlar hamda qayta ishlatiladigan holat generatsiya jarayonida qanday harakatlanishiga e’tibor qarating. Bu poydevor rejalashtirilgan rejalashtirish, batching, xotira va serving-engine ichki tuzilishiga oid darslarni tushunishni osonlashtiradi.