Vibecoding · 15-dars · 10–11-sinflar (Senior)
Fan: AI Engineering · Axborot qidiruvi Kohorta: Senior 10–11 Hafta: 4 (1-soat)

RAG va Embeddinglar: Modelga O'z Bilimingizni Berish

13-darsda biz modelning ichki tuzilishini (kontekst oynasi, sampling, system prompt) o'rgandik, 14-darsda unga qo'l berdik (Tool Calling). Lekin bitta jiddiy muammo qoldi: model sizning hujjatlaringizni, maktabingiz qoidalarini yoki kompaniyangiz bazasini bilmaydi. Bugun biz eng keng tarqalgan sanoat yechimini quramiz — RAG (Retrieval-Augmented Generation) va uning yuragi bo'lgan vektor qidiruvni matematikasi bilan ochamiz.

Nega yolg'iz LLM yetarli emas

Uchta chegara: bilim kesimi, gallyutsinatsiya, kontekst narxi

1 · Knowledge cutoff

Model o'qitilgan sanadan keyingi hech narsani bilmaydi. Sizning kechagi hujjatingiz, bugungi narx ro'yxatingiz — u uchun mavjud emas. Va u mavjud emasligini ham bilmaydi.

2 · Gallyutsinatsiya

LLM — keyingi tokenning ehtimolini hisoblovchi model. Agar fakt yo'q bo'lsa, u bo'shliq qoldirmaydi — eng ehtimolli matnni generatsiya qiladi. Natija ishonchli ko'rinadi va noto'g'ri bo'ladi.

3 · Kontekst narxi

"Hamma hujjatni promptga solaylik" ishlamaydi: kontekst oynasi cheklangan, har token pul turadi va uzun kontekstda model o'rtadagi ma'lumotni yo'qotadi (lost in the middle).

Muhandislik xulosasi

Bizga kerak: so'rov paytida, faqat kerakli parchalarni topib, ularni promptga qo'shadigan tizim. Model o'sha parchalarga tayanib javob beradi — bu grounding deb ataladi. Aynan shu — RAG.

Fine-tuning yoki RAG

Modelni qayta o'qitish emas — unga kutubxona berish

Fine-tuning (qayta o'qitish)

  • Bilim model vaznlariga yoziladi. Yangilash uchun qaytadan o'qitish kerak — soatlar va pul.
  • Manbani ko'rsatib bo'lmaydi: model nega shunday javob berganini isbotlay olmaydi.
  • Yaxshi ishlaydigan joyi: uslub, format, domen tili. Faktlar uchun emas.

RAG (qidiruv bilan kengaytirish)

  • Bilim tashqi bazada. Hujjatni yangiladingiz — tizim darhol yangi javob beradi. Qayta o'qitish yo'q.
  • Manba ko'rsatiladi: javob ostida "3-hujjat, 2-bo'lim". Tekshirish mumkin.
  • Kirish huquqini boshqarish mumkin: har foydalanuvchi faqat o'ziga ruxsat etilgan hujjatlarni ko'radi.
  • Kamchiligi: qidiruv sifati butun tizim sifatini belgilaydi.
Ikki bosqich

RAG ikki mustaqil bosqichdan iborat — ularni chalkashtirmang

A · Indekslash (oldindan, bir marta)

1. Hujjatlarni yuklash (PDF, HTML, DOCX)
2. Matnga aylantirish va tozalash
3. CHUNKING — parchalarga bo'lish
4. Har parcha -> EMBEDDING (vektor)
5. Vektorlarni bazaga yozish

// Bu bosqich sekin va qimmat,
// lekin faqat bir marta bajariladi.

B · So'rov (har savolda)

1. Foydalanuvchi savoli -> EMBEDDING
2. Bazada eng yaqin K ta vektorni topish
3. Ularning matnini olish
4. Prompt yig'ish:
   system + [topilgan parchalar] + savol
5. LLM javob beradi + manbalar

// Bu bosqich tez: 50-200 ms

Eng muhim nuqta

LLM bu yerda faqat oxirgi qadamda qatnashadi. RAG ning sifati 90% qidiruv bosqichiga bog'liq. Agar noto'g'ri parchalar topilsa, dunyodagi eng kuchli model ham to'g'ri javob bera olmaydi — u faqat berilgan axlatni chiroyli qilib qaytaradi. Shuning uchun RAG — bu qidiruv muhandisligi, generatsiya emas.

Eng ko'p xato qilinadigan qadam

Chunk hajmi — RAG dagi eng muhim giperparametr

Juda kichik (< 100 token)

Parcha kontekstni yo'qotadi. "U 15% ni tashkil qiladi" — nima 15%? Olmosh oldingi chunkda qolgan. Qidiruv topadi, lekin javob ma'nosiz chiqadi.

Juda katta (> 1000 token)

Bitta vektor bir nechta mavzuni o'z ichiga oladi va ularning o'rtachasiga aylanadi. Natijada u hech bir so'rovga aniq mos kelmaydi — semantik suyultirish (dilution).

Amaliy oraliq

200–500 token + 10–20% overlap. Overlap chegarada qolib ketgan jumlani qutqaradi. Va eng muhimi: ma'no chegarasi bo'yicha bo'ling — paragraf, sarlavha, bo'lim.

Oltin qoida

Bir chunk — bir tugallangan fikr. Belgi yoki token bo'yicha ko'r-ko'rona kesish (naive fixed-size splitting) — RAG tizimlaridagi muammolarning eng ko'p uchraydigan sababi. Stendda buni o'z ko'zingiz bilan ko'rasiz.

Matndan vektorga

Embedding — ma'noning ko'p o'lchovli fazodagi koordinatasi

Nima bo'lyapti

Maxsus neyron model matnni sonlar massiviga aylantiradi — odatda 384, 768 yoki 1536 o'lchov. Bu sonlar tasodifiy emas: model shunday o'qitilganki, ma'nosi yaqin matnlar fazoda yaqin joylashadi. Muhimi: taqqoslanayotgan barcha matnlar bitta model bilan vektorlanishi shart.

Nega bu kalit so'z qidiruvidan kuchli

Savol:  "Xodim kasal bo'lsa nima qilsin?"
Hujjat: "Mehnatga layoqatsizlik varaqasi"

Umumiy so'z:      0 ta
Kalit so'z qidiruvi: TOPMAYDI
Vektor qidiruv:      TOPADI (0.81)

// Chunki ma'no yaqin, garchi
// so'zlar butunlay boshqa bo'lsa ham.

⚠️ Stend haqida halol ogohlantirish

Laboratoriya brauzerda, internetsiz ishlaydi — shuning uchun unda soddalashtirilgan leksik embedding (TF-IDF uslubidagi vektor) ishlatiladi. Chunking, kosinus o'xshashlik, top-K va reranking mexanikasi aynan real tizimdagidek, lekin semantik yaqinlik real neyron embedding darajasida emas. Buni yodda tuting.

Kosinus o'xshashlik

Nega burchak o'lchanadi, masofa emas

Formula

cos(A, B) = (A · B) / (|A| × |B|)

A · B = a1*b1 + a2*b2 + ... + an*bn   // skalyar ko'paytma
|A|   = sqrt(a1^2 + a2^2 + ... + an^2) // uzunlik (norma)

Natija: -1 ... +1
  1.0  — bir xil yo'nalish (ma'no bir xil)
  0.0  — ortogonal (umuman bog'liq emas)
 -1.0  — qarama-qarshi yo'nalish

Nega aynan burchak

  • Vektor uzunligi ko'pincha matn hajmini aks ettiradi, ma'nosini emas. Uzun hujjat = uzun vektor.
  • Evklid masofasi ishlatilsa, qisqa savol uzun hujjatdan "uzoq" bo'lib chiqadi — hatto mavzu bir xil bo'lsa ham.
  • Burchak yo'nalishni o'lchaydi, ya'ni sof ma'noni. Hajm ta'sir qilmaydi.
  • Amalda vektorlar normalizatsiya qilinadi (|A| = 1), shunda kosinus oddiy skalyar ko'paytmaga aylanadi — juda tez.
Millionlab vektor ichidan qidirish

To'liq saralash ishlamaydi — ANN va HNSW kerak

Brute force muammosi

10 000 000 vektor x 1536 o'lcham
= har so'rovga 15 milliard ko'paytirish

Kutish vaqti: ~10 soniya
Kerakli vaqt:  ~50 millisekund

// 200 barobar farq — boshqa
// algoritm kerak.

ANN: aniqlikni tezlikka almashtirish

  • ANN = Approximate Nearest Neighbour. U eng yaqin emas, deyarli eng yaqin vektorlarni topadi.
  • HNSW — ko'p qavatli graf. Yuqori qavat — "samolyot" (uzoq sakrashlar), pastki qavat — "piyoda" (aniq qidiruv).
  • Natija: ~99% aniqlik, lekin 1000 barobar tez. Bu tijoriy tizimlar uchun mutlaqo maqbul savdo.
  • Sanoat yechimlari: pgvector, Qdrant, Pinecone, Weaviate, Milvus, FAISS.
Top-K dan keyin nima bo'ladi

Topilgan parchalarni promptga qanday joylash ham muhim

Uchta texnika

  • Top-K tanlash. Odatda K = 3–8. Ko'p olsangiz shovqin kiradi, kam olsangiz javob to'liq bo'lmaydi.
  • Reranking. Birinchi qidiruv tez va taxminiy. Keyin kuchliroq cross-encoder model top-50 ni qayta baholab, eng yaxshi 5 tasini qoldiradi.
  • MMR (Maximal Marginal Relevance). Bir xil ma'noli 5 ta parcha o'rniga — xilma-xil 5 tasi. Takrorni oldini oladi.

Prompt tuzilishi

SYSTEM:
  Faqat quyidagi kontekstga tayanib javob ber.
  Agar kontekstda javob bo'lmasa, "bilmayman" deb ayt.
  Har faktdan keyin manba raqamini ko'rsat.

KONTEKST:
  [1] {eng mos parcha}
  [2] {ikkinchi parcha}
  [3] {uchinchi parcha}

SAVOL: {foydalanuvchi savoli}

// Eng muhim qatorlar: "bilmayman" va manba.
RAG qachon buziladi

To'rtta tipik nosozlik va ularning belgilari

Chunk chegarasi

Javob ikki chunk orasida qolib ketgan. Belgi: tizim "yarim javob" beradi. Yechim: overlap oshirish, ma'no bo'yicha bo'lish.

Semantik bo'shliq

Savol tilidan hujjat tili juda farq qiladi (jargon, qisqartma). Yechim: gibrid qidiruv — vektor + BM25 kalit so'z.

Eskirgan indeks

Hujjat yangilandi, vektor yangilanmadi. Tizim ishonch bilan eski javob beradi. Yechim: hujjat o'zgarishida qayta indekslash.

Kontekstga qarshi

Parcha to'g'ri topilgan, lekin model o'z "bilimiga" tayangan. Yechim: qattiq system prompt + manba talab qilish.

Laboratoriya · 12 daqiqa

RAG stendi: lab/index.html ni oching

1 · Chunking (3 daq)

Chunk hajmini 40 ga tushiring va bir savol bering. Keyin 400 ga oshiring. Ikkala holatda ham top-1 ballni yozing.

2 · Kosinus (3 daq)

Stend har parcha uchun kosinus ballini ko'rsatadi. Eng yuqori va eng past ballni yozing va farqni izohlang.

3 · Top-K (3 daq)

K ni 1 dan 8 gacha o'zgartiring. Javob qachon to'liq bo'ladi va qachon shovqin kira boshlaydi?

4 · Grounding (3 daq)

Bazada javobi yo'q savol bering. Qattiq system prompt bilan va usiz sinab ko'ring — farqni yozing.

🎯 Asosiy kuzatuv

4-sinovda siz RAG ning eng muhim xususiyatini ko'rasiz: "bilmayman" deb javob bera olish — bu tizimning kuchi, zaifligi emas. Gallyutsinatsiya qiladigan tizimdan "topilmadi" deydigan tizim ancha qimmatliroq.

Uy vazifasi va baholash

Uy vazifasi: RAG o'lchovlari va loyihalash qarori (10 ball)

Nima qilish kerak

  • Varaqadagi 4 sinov jadvalini aniq raqamlar bilan to'ldiring.
  • Kosinus o'xshashlik formulasini yozing va nega burchak o'lchanishini tushuntiring.
  • Loyihalash topshirig'i: maktabingiz uchun RAG tizimini loyihalang — qaysi hujjatlar, chunk hajmi, K, va qanday yangilanadi.
  • To'rtta nosozlikdan bittasini tanlab, uni qanday aniqlash va tuzatishni yozing.

Baholash mezoni

  • 4 sinov jadvali raqamlar bilan — 3 ball
  • Kosinus formulasi va izohi — 2 ball
  • Maktab uchun RAG loyihasi — 3 ball
  • Nosozlik tahlili — 2 ball
Target International SchoolTarget International School Введение 1 / 1 0–3