Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. LLM va API nima
- 2.2. Xabarlar va rollar (messages)
- 2.3. Prompt engineering
- 2.4. Temperatura va parametrlar
- 2.5. Token va narx
- 2.6. Few-shot (misol bilan)
- 2.7. API xavfsizligi (kalit)
- 2.8. LLM API — tayyor AI
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Xabarlar va rollar
- Misol 2 — Prompt engineering
- Misol 3 — Few-shot va token
- Misol 4 — Amaliy: LLM ilovasi (mock)
- 5. To'g'ri va noto'g'ri tushunishlar
- 6. Keng tarqalgan xatolar va yechimlari
- 7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 8. Eng yaxshi amaliyotlar
- 9. Amaliy topshiriq
- Xulosa
25.10-dars: LLM API bilan ishlash
25-QISM — ML VA AI · 10-dars
1. Kirish va motivatsiya
25.1–25.9 da modelni o'zimiz qurdik va o'qitdik. Lekin GPT, Claude kabi katta til modellari (LLM — Large Language Model) milliardlab parametr, ulkan ma'lumotda o'qitilgan — ularni o'zingiz qurib bo'lmaydi (millionlab dollar, oylar). Yaxshi xabar: ular API orqali tayyor ishlatiladi — savol yuborasiz, javob olasiz. Bu zamonaviy AI ilovalari (chatbot, matn generatsiya, tarjima, tahlil) ni tez qurish imkonini beradi.
LLM API — katta til modeliga (OpenAI GPT, Anthropic Claude) so'rov yuborib, javob olish: xabarlar (messages — system/user/assistant rollari), prompt (so'rov matni — model'ni yo'naltiradi), javob (model generatsiyasi). Muhim tushunchalar: prompt engineering (yaxshi so'rov — yaxshi javob), temperatura (tasodifiylik — 0 aniq, yuqori ijodiy), token (matn birligi — narx va cheklov), kontekst oynasi (model ko'ra oladigan matn hajmi). LLM API — o'z model o'qitmasdan zamonaviy AI. Bu — 2020-yillar AI ilovalarining asosi.
Real vaziyat. Bir startap mijoz sharhlarini tahlil qilish kerak edi (ijobiy/salbiy). Klassik ML (matn feature, o'qitish, 25.5) haftalar olardi. LLM API bilan: har sharhni "bu sharh ijobiymi yoki salbiymi?" prompt bilan yubordi — model darrov javob berdi (o'qitmasdan). Bir kunda ishladi. LLM API — tez, kuchli AI. O'z model o'rniga tayyor model.
Bu darsda LLM API bilan ishlashni o'rganamiz.
Bu darsda:
- LLM va API nima
- Xabarlar va rollar (messages)
- Prompt engineering
- Temperatura va parametrlar
- Token va narx
- Few-shot (misol bilan)
- API xavfsizligi (kalit)
- Amaliy: LLM ilovasi
ℹ Misollarda deterministik mock (soxta LLM) bilan sinaladi — real API kalit va tarmoq talab qiladi (bu yerda chaqirilmaydi).
2. Nazariya — chuqur tushuntirish
2.1. LLM va API nima
Tayyor katta model — API orqali:
# real: OpenAI yoki Anthropic SDK
# from openai import OpenAI
# client = OpenAI(api_key="...")
# response = client.chat.completions.create(
# model="gpt-4", messages=[...]) LLM (Large Language Model — katta til modeli) — milliardlab parametr, ulkan matn ma'lumotda o'qitilgan model (GPT, Claude): matnni tushunadi va generatsiya qiladi. API (Application Programming Interface) — modelga so'rov yuborib javob olish (o'zingiz qurmasdan). client.chat.completions.create(...) (OpenAI), client.messages.create(...) (Anthropic). Siz savol yuborasiz, model javob beradi. O'z model o'qitmasdan kuchli AI.
2.2. Xabarlar va rollar (messages)
Suhbat — rolli xabarlar:
messages = [
{"role": "system", "content": "Sen foydali yordamchisan"},
{"role": "user", "content": "Python nima?"},
{"role": "assistant", "content": "Python — dasturlash tili..."},
{"role": "user", "content": "Kim yaratdi?"},
] Xabarlar (messages) — suhbat tarixi, har biri rol bilan: system (model'ni sozlash — "kim bo'lishi, qanday javob berishi"), user (foydalanuvchi savoli), assistant (model javobi — oldingi). Suhbat davomida xabarlar to'planadi (model kontekstni ko'radi). System — muhim (model xulqini belgilaydi). Bu suhbat (chat) formati — LLM API asosi. Rolli xabarlar bilan kontekst.
2.3. Prompt engineering
Yaxshi so'rov — yaxshi javob:
# yomon prompt:
"tahlil qil"
# yaxshi prompt:
"Quyidagi mijoz sharhini tahlil qil. Faqat 'ijobiy' yoki
'salbiy' deb javob ber. Sharh: 'Mahsulot ajoyib!'"Prompt engineering — modelga aniq, yaxshi so'rov yozish (natija sifati so'rovga bog'liq): aniq (nima kerak — "ijobiy/salbiy"), format (javob shakli — "faqat bir so'z"), kontekst (kerakli ma'lumot), misol (few-shot). Yomon prompt — noaniq javob; yaxshi prompt — aniq, foydali. "So'rov qancha yaxshi — javob shuncha yaxshi". Bu LLM bilan ishlashning eng muhim mahorati (kod yozmasdan model'ni boshqarish).
2.4. Temperatura va parametrlar
Model xulqini sozlash:
# temperature: tasodifiylik
temperature=0.0 # aniq, izchil (bir savolga bir javob)
temperature=1.0 # ijodiy, xilma-xil
# max_tokens: javob uzunligi
max_tokens=100 # eng ko'p 100 token Parametrlar — model xulqini sozlaydi: temperature (tasodifiylik — 0 aniq/izchil: faktik savol, kod; 1+ ijodiy/xilma-xil: hikoya, g'oya), max_tokens (javob uzunligi cheklovi), top_p (ehtimol chegarasi). temperature=0 — takrorlanuvchi (bir savol → bir javob), yuqori — har safar boshqacha. Vazifaga qarab: aniqlik kerak → past, ijod kerak → yuqori. Parametrlar — model'ni moslash.
2.5. Token va narx
Matn birligi — token:
# token: matn birligi (~4 belgi yoki ~0.75 so'z)
# "Salom dunyo" ≈ 3-4 token
# narx: token bo'yicha (kirish + chiqish token)
# kontekst oynasi: model ko'ra oladigan max token Token — LLM matnni tokenlarga bo'ladi (~4 belgi yoki ~0.75 so'z inglizchada): "Salom" ≈ 1–2 token. Muhim ikki sabab: narx (API token bo'yicha to'laydi — kirish + chiqish), kontekst oynasi (model bir marta ko'ra oladigan max token — masalan, 128000). Uzun suhbat/hujjat — ko'p token (qimmat, cheklov). Tokenni hisoblash (tiktoken kutubxonasi) — narx va cheklovni boshqarish. Token — LLM iqtisodi.
2.6. Few-shot (misol bilan)
Modelga misol ko'rsatish:
Kirish: "yaxshi" → Chiqish: "ijobiy"
Kirish: "yomon" → Chiqish: "salbiy"
Kirish: "ajoyib" → Chiqish: (model to'ldiradi)Few-shot (bir necha misol) — promptda misollar ko'rsatib, modelga vazifani o'rgatish (o'qitmasdan!): bir necha "kirish → chiqish" misoli, keyin yangi kirish. Model naqshni tushunib davom etadi. Zero-shot (misolsiz — faqat ko'rsatma), few-shot (misol bilan — aniqroq). Bu LLM ning kuchi: kontekstdan o'rganish (in-context learning — parametr o'zgarmaydi, promptdan). Misollar javob sifatini oshiradi.
2.7. API xavfsizligi (kalit)
API kalitini himoya:
import os
api_key = os.environ["OPENAI_API_KEY"] # muhit o'zgaruvchisi
# kalitni KODGA yozMANG (git'ga tushadi!)
# .env fayl (gitignore), muhit o'zgaruvchisi API xavfsizligi — API kaliti maxfiy (kim bilsa, sizning hisobingizdan foydalanadi — pul): kodga yozMANG (git'ga tushadi — o'g'rilanadi), muhit o'zgaruvchisi (os.environ), .env fayl (gitignore — 19-qism). Bu 20.7 (auth), umumiy xavfsizlik tamoyili. Kalit sizib ketsa — darrov bekor qil (revoke). "Sirni kodga yozma" — API kaliti, parol, token. Xavfsizlik — API bilan ishlashda muhim.
2.8. LLM API — tayyor AI
LLM API — o'z model o'qitmasdan zamonaviy AI: klassik ML (25.1–25.9) modelni o'zingiz qurasiz/o'qitasiz (ma'lumot, vaqt, mahorat), LLM API tayyor kuchli modelni ishlatasiz (prompt bilan). Qachan qaysi: maxsus, aniq vazifa (jadval bashorati, kam ma'lumot) → klassik ML; matn, umumiy til vazifasi (chatbot, tahlil, generatsiya) → LLM API. LLM API tez (o'qitmasdan), lekin narx (token) va cheklov (kontekst, xato — "hallucination"). Zamonaviy AI ilovalari ko'pincha LLM API ustida (25.11 RAG). "Tayyor modeldan foydalan".
3. Tez ma'lumotnoma
import os
# real API (OpenAI misol):
# from openai import OpenAI
# client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
# resp = client.chat.completions.create(
# model="gpt-4",
# messages=[
# {"role": "system", "content": "Sen yordamchisan"},
# {"role": "user", "content": "Savol?"},
# ],
# temperature=0.0,
# max_tokens=100,
# )
# javob = resp.choices[0].message.content
# xabarlar (rollar):
# system (sozlash) / user (savol) / assistant (javob)
# parametrlar:
# temperature (0 aniq, 1 ijodiy) · max_tokens (uzunlik)
# xavfsizlik:
api_key = os.environ["OPENAI_API_KEY"] # kodga yozMANG
# few-shot: promptda misollar (kirish→chiqish)LLM API xulosasi
LLM: tayyor katta model (API orqali) · messages: system/user/assistant
Prompt engineering: aniq so'rov · temperature (0-1) · token (narx, kontekst)
Few-shot (misol) · kalit maxfiy · o'qitmasdan AI4. Batafsil misollar
Misollarda deterministik mock (soxta LLM funksiya) bilan sinaladi — real API kalit va tarmoq talab qiladi. Namunalar so'rov/javob tuzilishini ko'rsatadi.
Misol 1 — Xabarlar va rollar
"""messages tuzilishi: system/user/assistant rollari; suhbat qurish."""
import warnings
warnings.filterwarnings("ignore")
def build_messages(system: str, user: str) -> list:
return [
{"role": "system", "content": system},
{"role": "user", "content": user},
]
def main() -> None:
print("=== 1. Oddiy suhbat (system + user) ===")
msgs = build_messages("Sen foydali yordamchisan", "Python nima?")
for m in msgs:
print(f" [{m['role']}]: {m['content']}")
print("\n=== 2. Ko'p bosqichli suhbat ===")
suhbat = [
{"role": "system", "content": "Qisqa javob ber"},
{"role": "user", "content": "2+2?"},
{"role": "assistant", "content": "4"},
{"role": "user", "content": "Ko'paytir-chi?"},
]
print(f" xabarlar soni: {len(suhbat)}")
print(f" oxirgi savol: {suhbat[-1]['content']}")
print("\n=== 3. System roli muhimligi ===")
print(" system: model xulqini belgilaydi (kim, qanday)")
print(" user: foydalanuvchi savoli")
print(" assistant: model javobi")
print("\n=== 4. Kontekst (suhbat tarixi) ===")
print(f" model barcha xabarlarni ko'radi (kontekst)")
print(" ⭐ messages — rolli xabarlar (system/user/assistant)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Oddiy suhbat (system + user) ===
[system]: Sen foydali yordamchisan
[user]: Python nima?
=== 2. Ko'p bosqichli suhbat ===
xabarlar soni: 4
oxirgi savol: Ko'paytir-chi?
=== 3. System roli muhimligi ===
system: model xulqini belgilaydi (kim, qanday)
user: foydalanuvchi savoli
assistant: model javobi
=== 4. Kontekst (suhbat tarixi) ===
model barcha xabarlarni ko'radi (kontekst)
⭐ messages — rolli xabarlar (system/user/assistant)Nima ko'rsatdi: 2.1, 2.2-bo'limlar.
Misol 2 — Prompt engineering
"""prompt engineering: yomon vs yaxshi so'rov; aniqlik, format, kontekst."""
import warnings
warnings.filterwarnings("ignore")
def main() -> None:
print("=== 1. Yomon prompt (noaniq) ===")
yomon = "tahlil qil"
print(f" '{yomon}' — nima tahlil? qanday javob?")
print("\n=== 2. Yaxshi prompt (aniq) ===")
yaxshi = (
"Quyidagi mijoz sharhini tahlil qil. "
"Faqat 'ijobiy' yoki 'salbiy' deb javob ber. "
"Sharh: 'Mahsulot ajoyib, tez yetkazildi!'"
)
print(f" aniq: nima ({yaxshi[:30]}...), format (bir so'z)")
print("\n=== 3. Prompt tarkibi ===")
print(" vazifa: nima qilish (tahlil)")
print(" format: javob shakli (ijobiy/salbiy)")
print(" kontekst: ma'lumot (sharh matni)")
print("\n=== 4. Nega muhim ===")
print(" yomon so'rov → noaniq javob")
print(" yaxshi so'rov → aniq, foydali javob")
print(" ⭐ prompt engineering — so'rov sifati javob sifati")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Yomon prompt (noaniq) ===
'tahlil qil' — nima tahlil? qanday javob?
=== 2. Yaxshi prompt (aniq) ===
aniq: nima (Quyidagi mijoz sharhini tahlil...), format (bir so'z)
=== 3. Prompt tarkibi ===
vazifa: nima qilish (tahlil)
format: javob shakli (ijobiy/salbiy)
kontekst: ma'lumot (sharh matni)
=== 4. Nega muhim ===
yomon so'rov → noaniq javob
yaxshi so'rov → aniq, foydali javob
⭐ prompt engineering — so'rov sifati javob sifatiNima ko'rsatdi: 2.3-bo'lim.
Misol 3 — Few-shot va token
"""few-shot (misollar bilan prompt); token taxmini (narx/kontekst)."""
import warnings
warnings.filterwarnings("ignore")
def few_shot_prompt(misollar: list, savol: str) -> str:
qatorlar = [f"Kirish: {k} -> Chiqish: {v}" for k, v in misollar]
qatorlar.append(f"Kirish: {savol} -> Chiqish:")
return "\n".join(qatorlar)
def token_taxmin(matn: str) -> int:
return len(matn.split()) # taxminiy (real: tiktoken)
def main() -> None:
print("=== 1. Few-shot prompt (misollar) ===")
misollar = [("yaxshi", "ijobiy"), ("yomon", "salbiy"), ("zo'r", "ijobiy")]
prompt = few_shot_prompt(misollar, "ajoyib")
print(prompt)
print("\n=== 2. Zero-shot vs few-shot ===")
print(" zero-shot: misolsiz (faqat ko'rsatma)")
print(" few-shot: misol bilan (aniqroq)")
print("\n=== 3. Token taxmini ===")
matn = "Bu bir necha so'zdan iborat matn"
print(f" '{matn}'")
print(f" taxminiy token: {token_taxmin(matn)}")
print("\n=== 4. Token nega muhim ===")
print(" narx: API token bo'yicha to'laydi")
print(" kontekst: model max token ko'radi")
print(" ⭐ few-shot (misol) + token (narx/cheklov)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Few-shot prompt (misollar) ===
Kirish: yaxshi -> Chiqish: ijobiy
Kirish: yomon -> Chiqish: salbiy
Kirish: zo'r -> Chiqish: ijobiy
Kirish: ajoyib -> Chiqish:
=== 2. Zero-shot vs few-shot ===
zero-shot: misolsiz (faqat ko'rsatma)
few-shot: misol bilan (aniqroq)
=== 3. Token taxmini ===
'Bu bir necha so'zdan iborat matn'
taxminiy token: 6
=== 4. Token nega muhim ===
narx: API token bo'yicha to'laydi
kontekst: model max token ko'radi
⭐ few-shot (misol) + token (narx/cheklov)Nima ko'rsatdi: 2.5, 2.6-bo'limlar.
Misol 4 — Amaliy: LLM ilovasi (mock)
Real LLM ilova: sharh tahlili — prompt qurish, (mock) LLM chaqirish, javob qayta ishlash. Bu — LLM API ilovasining namunasi (deterministik mock bilan).
"""to'liq LLM ilova (mock): prompt qurish, mock LLM chaqirish, javobni qayta ishlash."""
import warnings
warnings.filterwarnings("ignore")
def mock_llm(messages: list, temperature: float = 0.0) -> str:
"""Deterministik soxta LLM — real API o'rniga (kalitsiz sinash)."""
user = [m for m in messages if m["role"] == "user"][-1]["content"]
# oddiy qoida asosida (mock) — real LLM bu naqshni o'zi tushunadi
if "ajoyib" in user.lower() or "zo'r" in user.lower():
return "ijobiy"
if "yomon" in user.lower() or "yiqildi" in user.lower():
return "salbiy"
return "neytral"
def sharh_tahlil(sharh: str) -> str:
messages = [
{"role": "system", "content": "Sen sharh tahlilchisisan. Faqat ijobiy/salbiy/neytral javob ber."},
{"role": "user", "content": f"Sharhni tahlil qil: '{sharh}'"},
]
return mock_llm(messages, temperature=0.0)
def main() -> None:
sharhlar = [
"Mahsulot ajoyib, tavsiya qilamiz!",
"Sifati yomon, xafa bo'ldim",
"Oddiy mahsulot",
]
print("=== 1. Sharhlarni tahlil (mock LLM) ===")
natijalar = {}
for sharh in sharhlar:
tahlil = sharh_tahlil(sharh)
natijalar[sharh[:25]] = tahlil
print(f" '{sharh[:30]}...' → {tahlil}")
print("\n=== 2. Statistika ===")
from collections import Counter
sanoq = Counter(natijalar.values())
print(f" {dict(sanoq)}")
print("\n=== 3. Ilova tuzilishi ===")
print(" prompt qur → LLM chaqir → javob qayta ishla")
print("\n=== 4. Real vs mock ===")
print(" mock: deterministik (bu yerda sinash)")
print(" real: OpenAI/Anthropic API (kalit, tarmoq)")
print(" ⭐ LLM ilova — prompt + API + javob qayta ishlash")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Sharhlarni tahlil (mock LLM) ===
'Mahsulot ajoyib, tavsiya qilam...' → ijobiy
'Sifati yomon, xafa bo'ldim...' → salbiy
'Oddiy mahsulot...' → neytral
=== 2. Statistika ===
{'ijobiy': 1, 'salbiy': 1, 'neytral': 1}
=== 3. Ilova tuzilishi ===
prompt qur → LLM chaqir → javob qayta ishla
=== 4. Real vs mock ===
mock: deterministik (bu yerda sinash)
real: OpenAI/Anthropic API (kalit, tarmoq)
⭐ LLM ilova — prompt + API + javob qayta ishlashNima ko'rsatdi: 2.1–2.8-bo'limlar.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "LLM'ni o'zi qurish kerak" | API orqali tayyor |
| "Prompt muhim emas" | So'rov sifati javob sifati |
| "LLM doim to'g'ri" | Xato qiladi (hallucination) |
| "Token — texnik detal" | Narx va kontekst |
| "temperature keraksiz" | Aniqlik/ijod (0-1) |
| "Kalit kodga yozsa bo'ladi" | Maxfiy (git'ga tushmasin) |
| "Few-shot = o'qitish" | Kontekstdan (parametr o'zgarmaydi) |
| "LLM har muammoga" | Maxsus vazifa — klassik ML |
6. Keng tarqalgan xatolar va yechimlari
1. API kalitni kodga yozish
api_key = "sk-abc123..." # ⚠️ git'ga tushadi (o'g'rilanadi)
api_key = os.environ["OPENAI_API_KEY"] # ✅2. Noaniq prompt
"tahlil qil" # ⚠️ noaniq
"Faqat ijobiy/salbiy deb javob ber: ..." # ✅ aniq3. Aniqlik kerakda yuqori temperature
temperature=1.0 # faktik savolda (xilma-xil) # ⚠️
temperature=0.0 # aniq, izchil # ✅4. LLM javobiga ko'r-ko'rona ishonish
# javob — to'g'ri deb qabul # ⚠️ (hallucination)
# tekshir, tasdiqla (muhim holatda) # ✅5. Token/narxni e'tiborsiz
# uzun suhbat/hujjat (ko'p token — qimmat) # ⚠️
# token hisobla, kontekstni qisqartir # ✅6. System rolisiz
messages = [{"role": "user", ...}] # sozlashsiz # ba'zan
# system bilan (model xulqi) # ✅7. Kontekst oynasidan oshirish
# juda uzun suhbat (max token oshdi) # ⚠️ xato
# eski xabarlarni qisqartir/xulosala # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 25.1-dars (o'tilgan): ML — LLM ham model
- 25.11-dars: RAG — LLM + ma'lumot manbai
- 20-qism (o'tilgan): FastAPI — LLM API backend
- 19-qism (o'tilgan): JSON — API so'rov/javob
- 20.7-dars (o'tilgan): Auth — kalit xavfsizligi
8. Eng yaxshi amaliyotlar
API kalit — muhit o'zgaruvchisi (kodga emas).
Aniq prompt (vazifa, format, kontekst).
Aniqlik —
temperature=0; ijod — yuqori.Few-shot (misol) — aniq javob.
Token kuzat (narx, kontekst).
LLM javobini tekshir (hallucination).
System rol — model xulqi.
Maxsus vazifa — klassik ML (LLM emas).
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # LLM nima?
2. # API nima?
3. # messages nima?
4. # system rol nima?
5. # prompt engineering nima?
6. # temperature nima?
7. # token nima?
8. # kontekst oynasi nima?
9. # few-shot nima?
10. # zero-shot nima?
11. # API kalit qayerda?
12. # hallucination nima?Javoblar
- Katta til modeli (GPT, Claude)
- Modelga so'rov yuborib javob olish
- Suhbat (rolli xabarlar)
- Model xulqini belgilash
- Aniq, yaxshi so'rov yozish
- Tasodifiylik (0 aniq, 1 ijodiy)
- Matn birligi (narx, cheklov)
- Model ko'ra oladigan max token
- Misollar bilan prompt
- Misolsiz (faqat ko'rsatma)
- Muhit o'zgaruvchisi (kodga emas)
- Model'ning noto'g'ri/soxta javobi
Vazifa 2: Xatolarni tuzating
1. api_key = "sk-abc123" # os.environ
2. "tahlil qil" # aniq prompt
3. temperature=1.0 # faktik savol # 0.0
4. # LLM javobi — to'g'ri # tekshir
5. # uzun suhbat (ko'p token) # qisqartirJavoblar
1. api_key = os.environ["OPENAI_API_KEY"]
2. "Faqat ijobiy/salbiy deb javob ber: ..."
3. temperature=0.0
4. # javobni tekshir (hallucination)
5. # token hisobla, kontekstni qisqartirVazifa 3: Messages
Suhbat:
- system + user
- Ko'p bosqichli
- Rollar
- Kontekst
Vazifa 4: Prompt
Engineering:
- Yomon vs yaxshi
- Aniqlik
- Format
- Kontekst
Vazifa 5: Few-shot/token
LLM:
- Few-shot
- Zero-shot
- Token
- Narx
Vazifa 6: Ilova
Mock LLM:
- Prompt
- Chaqirish
- Javob
- Statistika
Vazifa 7: O'ylash
LLM API o'z model o'qitmasdan (25.1–25.9) zamonaviy AI beradi — tayyor kuchli modelni prompt bilan ishlatasiz. Bu klassik ML (model qurish) va LLM API (tayyor model) orasidagi tanlovni keltirib chiqaradi. Nima uchun "prompt engineering — kod yozmasdan model'ni boshqarish" yangi mahorat, va nega LLM API tez (o'qitmasdan), lekin cheklovlari (narx, hallucination, kontekst) bor — qachan klassik ML, qachan LLM API?
Javob
Qisqa javob: LLM API — tayyor kuchli modelni prompt (so'rov) bilan ishlatish (o'qitmasdan): prompt engineering yangi mahorat, chunki model'ni kod yozmasdan (o'qitmasdan, parametr o'zgartmasdan) so'rov bilan boshqarasiz — natija so'rov sifatiga bog'liq. LLM API tez (o'qitmasdan — daqiqalarda ishlaydi, klassik ML — haftalar), lekin cheklovlari: narx (token bo'yicha — ko'p so'rov qimmat), hallucination (model ishonchli ko'rinadigan soxta javob — tekshirish kerak), kontekst oynasi (cheklangan matn), maxsus vazifaga kam (aniq jadval bashorati — klassik ML aniqroq). Qachan qaysi: matn, umumiy til vazifasi (chatbot, tahlil, generatsiya, tarjima) → LLM API (tez, kuchli); maxsus, aniq, tuzilgan vazifa (jadval bashorati, kam ma'lumot, tushuntirish kerak) → klassik ML. Ko'p zamonaviy ilova LLM API ustida (25.11 RAG). "To'g'ri vosita to'g'ri vazifaga" — LLM bolg'a, lekin hamma narsa mix emas.
1. Prompt engineering — yangi mahorat
Klassik ML: kod + o'qitish. LLM API: prompt (so'rov) — kod yozmasdan, o'qitmasdan model'ni boshqarish. Natija prompt sifatiga bog'liq.
2. LLM API tez, lekin cheklovlari
| Afzallik | Cheklov |
|---|---|
| Tez (o'qitmasdan) | Narx (token) |
| Kuchli (katta model) | Hallucination (soxta javob) |
| Umumiy (til vazifa) | Kontekst oynasi |
| Oson (prompt) | Maxsus vazifaga kam |
3. Qachan qaysi
- LLM API: matn, til, chatbot, tahlil, generatsiya (umumiy)
- Klassik ML: jadval bashorati, aniq vazifa, kam ma'lumot, tushuntirish
4. Hallucination xavfi
LLM ishonchli ko'rinadigan soxta javob berishi mumkin (faktni o'ylab topadi). Muhim holatda tekshirish kerak (25.11 RAG — manbaga bog'lash).
5. Muhandislik saboqlari
- Prompt engineering — kod yozmasdan boshqarish
- LLM API tez, lekin cheklovlari (narx, hallucination)
- Matn/til → LLM; maxsus → klassik ML
- To'g'ri vosita to'g'ri vazifaga
6. Xulosa
- LLM API — tayyor model (prompt bilan)
- Prompt engineering — yangi mahorat
- Tez, lekin cheklovlari
- Vazifaga qarab (LLM vs klassik ML)
Nimani mustahkamlaydi: 2.1–2.8-bo'limlar.
Xulosa
Bu darsda LLM API bilan ishlashni o'rgandik.
Eng muhim uch fikr:
LLM, API va xabarlar. LLM (Large Language Model) — milliardlab parametr, ulkan matn ma'lumotda o'qitilgan model (GPT, Claude) — o'zingiz qurmasdan API orqali ishlatasiz. Xabarlar (
messages) — suhbat, har biri rol bilan: system (model'ni sozlash — kim, qanday javob), user (savol), assistant (model javobi). Suhbat davomida xabarlar to'planadi (kontekst). System muhim (model xulqini belgilaydi). Bu chat formati — LLM API asosi.Prompt engineering va parametrlar. Prompt engineering — modelga aniq, yaxshi so'rov (natija so'rovga bog'liq): aniq (nima kerak), format (javob shakli), kontekst (ma'lumot), misol (few-shot). "So'rov sifati — javob sifati". Parametrlar: temperature (tasodifiylik —
0aniq/izchil: faktik, kod;1+ijodiy: hikoya), max_tokens (uzunlik). Few-shot — promptda misollar (kirish → chiqish) bilan vazifani o'rgatish (kontekstdan o'rganish — parametr o'zgarmaydi). Token — matn birligi (narx: API token bo'yicha; kontekst oynasi: max token).Xavfsizlik va vosita tanlovi. API kalit maxfiy — kodga yozMANG (git'ga tushadi, o'g'rilanadi), muhit o'zgaruvchisi (
os.environ),.env(gitignore). LLM API — o'z model o'qitmasdan zamonaviy AI: tez (o'qitmasdan), lekin cheklovlari (narx — token; hallucination — soxta javob, tekshirish kerak; kontekst oynasi). Qachan qaysi: matn, umumiy til vazifasi (chatbot, tahlil, generatsiya) → LLM API; maxsus, aniq, tuzilgan vazifa (jadval bashorati, kam ma'lumot) → klassik ML (25.1–25.9). Prompt engineering — kod yozmasdan model'ni boshqarish (yangi mahorat). "To'g'ri vosita to'g'ri vazifaga" — LLM bolg'a, lekin hamma narsa mix emas. Zamonaviy AI ilovalari ko'pincha LLM API ustida (25.11 RAG).
Keyingi darsda RAG tizimi qurish ni o'rganamiz: LLM'ni o'z ma'lumot manbaiga (hujjat, baza) bog'lash — model bilmagan (yoki yangi) ma'lumotga javob berish, hallucinationni kamaytirish.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!