Böyük dil modelləri (LLM) proqramçı üçün kod redaktoru, Git və ya terminal qədər adi iş alətinə çevrilib. Onlar xətaları izah edir, funksiya və testlərin qaralamasını yazır, başqasının kodunu anlamağa kömək edir, API vasitəsilə isə sizin öz tətbiqlərinizin bir hissəsinə çevrilir. Bu mövzuda LLM-in nə olduğunu, AI anlayışları arasında hansı yeri tutduğunu və kursun necə qurulduğunu araşdıracağıq.
AI-dan LLM-ə: iç-içə anlayışlar
AI, maşın öyrənməsi və neyron şəbəkələr terminləri tez-tez qarışdırılır, halbuki onlar matryoşka kimi bir-birinin içindədir:
| Anlayış | Nədir | Nümunə |
|---|---|---|
| Süni intellekt (AI) | «insan» tapşırıqlarını həll edən proqramların bütün sahəsi | şahmat proqramı, naviqator |
| Maşın öyrənməsi (ML) | AI-ın bir hissəsi: qaydalar əllə yazılmır, nümunələrdən çıxarılır | spam-filtr |
| Neyron şəbəkələr | ML-in bir hissəsi: tənzimlənən ədədlərə — çəkilərə malik bir-birinə bağlı «neyronlardan» ibarət modellər | üz tanıma |
| Generativ AI | yeni məzmun yaradan neyron şəbəkələr: mətn, şəkil, səs, kod | şəkil generatoru |
| Böyük dil modeli (LLM) | nəhəng həcmdə mətn və kod üzərində öyrədilmiş generativ neyron şəbəkə | çat-assistentlər, avtotamamlama |
Adi proqramlaşdırma ilə maşın öyrənməsi arasındakı fərq spam-filtr nümunəsində yaxşı görünür. Klassik yanaşmada qaydanı proqramçı yazır:
# klassik yanaşma: qaydanı insan düşünüb tapır
def is_spam(subject):
text = subject.lower()
return "win money" in text or "free prize" in text
print(is_spam("WIN MONEY now!")) # → True
print(is_spam("W1N M0NEY now!")) # → False — qaydanı asanlıqla aldatmaq olurMaşın öyrənməsində proqrama «spam / spam deyil» işarəsi qoyulmuş minlərlə məktub verirsiniz və o, qanunauyğunluqları özü tapır. LLM eyni ideyanın nəhəng miqyasda tətbiqidir: model böyük həcmli mətn və kod korpusu üzərində yalnız bir tapşırığı yerinə yetirməyə öyrədilib — mətnin növbəti hissəsini proqnozlaşdırmaq. Kodu yaxşı davam etdirmək üçün sintaksisi, tipik pattern-ləri və adların mənasını tutmaq lazımdır, buna görə də bu sadə tapşırıqdan təsirli bacarıqlar yaranır.
💡 Bənzətmə: LLM çox inkişaf etmiş avtotamamlamadır — telefondakı klaviatura təklifləri kimi, sadəcə trilyonlarla söz üzərində öyrədilib və mətn ilə kodun bütöv səhifələrini davam etdirə bilir.
Proqramçının AI-dan istifadəsinin iki yolu
Bütün kurs bu bölgü üzərində qurulub:
- AI işdə alət kimi. Siz assistentlə çatda, redaktorda və ya terminalda ünsiyyət qurursunuz. Model kodu yazmağa, anlamağa və yoxlamağa kömək edir, amma qərarı siz verirsiniz.
- AI tətbiqinizin komponenti kimi. Sizin kodunuz API vasitəsilə modelə sorğu göndərir və cavabdan istifadə edir: müraciətləri təsnif edir, sənədlər əsasında cavab verir, mətndən verilənlər çıxarır.
Birinci yol sizi daha sürətli edir, ikincisi isə məhsulun yeni funksiyalarını yaratmağa imkan verir. Dörd nümunəyə baxaq.
Nümunə 1: çatda xətanın izahı
Ən çox rast gəlinən ssenari kodu və xəta mətnini çat-assistentə yapışdırmaqdır:
Bu kod niyə çökür və onu necə düzəltmək olar?
user = {"name": "Aysel"}
print(user["email"])
KeyError: 'email'KeyError ona görə yaranır ki, user lüğətində "email" açarı yoxdur.
Düzəltmə variantları:
1. user.get("email") — istisna əvəzinə None qaytaracaq.
2. user.get("email", "not set") — standart dəyəri qaytaracaq.
3. Əvvəlcədən yoxlayın: if "email" in user: ...Model kodu işə salmayıb: o, tanış pattern-i görüb və tipik izah yaradıb. Nadir və qarışıq xətalarda belə izahı yoxlamaq lazımdır.
Nümunə 2: redaktorda avtotamamlama
IDE-dəki AI-assistent (GitHub Copilot, Cursor və analoqları) açıq faylı görür və davamı birbaşa kodun içində boz «kölgə» mətnlə təklif edir. Siz funksiyanın imzasını və şərhi yazırsınız, assistent isə funksiyanın gövdəsini təklif edir, siz də onu Tab düyməsi ilə qəbul edirsiniz:
def average_price(products):
# məhsulların orta qiyməti; boş siyahı üçün 0 qaytar
if not products: # ← assistentin
return 0 # ← təklifi
return sum(p["price"] for p in products) / len(products)
print(average_price([{"price": 10}, {"price": 20}])) # → 15.0
print(average_price([])) # → 0Model məhz ona öyrədildiyi işi görür — mətni davam etdirir: funksiyanın adı və şərh ən ehtimal olunan davamı göstərir. Kod düzgün görünür, amma onu yoxlamaq sizin işinizdir: məhsulda "price" açarı olmasa, nə baş verəcək?
Nümunə 3: 10 sətirdə API çağırışı
Eyni model sizin kodunuzdan da əlçatandır. Provayderlərdən birinin rəsmi Python SDK-sı ilə minimal sorğu belə görünür (digərlərinin SDK-ları da oxşar qurulub):
from anthropic import Anthropic
client = Anthropic() # açar ANTHROPIC_API_KEY mühit dəyişənindən götürülür
response = client.messages.create(
model="claude-opus-5-5", # nümunədir; aktual model adları — sənədlərdə
max_tokens=1024,
messages=[{"role": "user", "content": "Explain Python list comprehensions in two sentences."}],
)
for block in response.content:
if block.type == "text":
print(block.text)A list comprehension is a compact way to build a new list by applying an
expression to each item of an iterable, optionally filtering items with a
condition. For example, [x * 2 for x in range(5) if x % 2 == 0] returns [0, 4, 8].Cavab bloklar siyahısı şəklində gəlir, ona görə də yalnız mətn bloklarını çap edirik. Mahiyyətcə bu, adi HTTP sorğusudur: girişdə mətn — çıxışda mətn. Açarları, parametrləri və xətaların emalını API bölməsində araşdıracağıq.
⚠️ Sizin işə salmanızda cavab bir az fərqli olacaq: model hər sorğuda mətni yenidən generasiya edir. Bunun səbəbini temperature mövzusunda öyrənəcəyik.
Nümunə 4: sənədlər üzrə çat-bot
Model şirkətinizin daxili sənədlərini görməyib, ona görə də bot əvvəlcə uyğun fraqmenti tapır və onu sorğuya əlavə edir:
Yalnız aşağıdakı sənədlər əsasında cavab ver. Cavab yoxdursa, «Bilmirəm» yaz.
<docs>
Məzuniyyət üçün ərizə HR-portalda ən geci 14 gün əvvəl verilir.
Xəstəlik vərəqəsi 3 iş günü ərzində arayışla təsdiqlənir.
</docs>
Sual: Məzuniyyət üçün ərizəni neçə gün əvvəl vermək lazımdır?Məzuniyyət üçün ərizəni HR-portalda ən geci 14 gün əvvəl vermək lazımdır.Bu yanaşma RAG (Retrieval-Augmented Generation — tapılmış verilənlərə əsaslanan generasiya) adlanır. Əsas fikir: model sizin qaydalarınızı «bilmir» — cavabı ona ötürdüyünüz mətn əsasında formalaşdırır.
LLM nə deyil
Ən təhlükəli yanlış təsəvvür modelin insan kimi anladığını və bildiyini, yaxud faktları verilənlər bazası kimi saxladığını düşünməkdir.
- Bu, verilənlər bazası deyil. Modeldə faktlar cədvəli yoxdur: biliklər milyardlarla çəkiyə «yayılıb», cavab isə hər dəfə yenidən generasiya olunur. Buna görə model mövcud olmayan funksiyanın adını əminliklə çəkə bilər.
- Bu, insan deyil. Model sizi çatlar arasında xatırlamır və sizin düzəlişlərinizdən öyrənmir.
- Bu, axtarış sistemi deyil. Veb-axtarış olmadan model dünyanı yalnız təlimin bitdiyi tarixə qədər bilir.
Düzgün düşüncə modeli belədir: LLM inandırıcı mətn və kodun güclü generatorudur, sizin vəzifəniz isə ona kontekst vermək və nəticəni yoxlamaqdır.
Kursda nələri öyrənəcəksiniz
- Təməl: LLM-lər necə işləyir və prompt-ları necə tərtib etmək lazımdır.
- AI alət kimi: Copilot, Cursor, Claude Code; AI ilə kodun izahı, debaqinq, testlər, refaktorinq və review.
- AI komponent kimi: model API-ları, JSON cavablar, tool calling, çat-botlar, RAG, agentlər və MCP.
- Keyfiyyət və təhlükəsizlik: evals, prompt injection-dan qorunma, xərclərə nəzarət və final layihəsi.
Tipik səhvlər
Cavaba yoxlamadan etibar etmək. Modelin yazdığı kod cəld, amma diqqətsiz həmkarın qaralamasıdır. Onu işə salın, oxuyun və testlərdən keçirin.
Modeldən təzə faktları axtarış sistemindən soruşduğunuz kimi soruşmaq. Versiyaları, reliz tarixlərini və qiymətləri model köhnəlmiş şəkildə «xatırlaya» və ya uydura bilər. Onları rəsmi mənbələrdə, məsələn, pip index versions requests əmri ilə yoxlayın.
Modelin əvvəlki söhbəti xatırladığını düşünmək. Yeni çat təmiz vərəqdən başlayır: dünənki izahları təkrarlamaq lazımdır.
Çata sirləri yapışdırmaq. Parollar, açarlar və şəxsi məlumatlar provayderin serverinə gedir. Onları əvəzləyicilərlə dəyişin:
Yanlış:
Baza niyə qoşulmur? Mənim .env faylım:
DB_PASSWORD=S3cr3t-2026
Düzgün:
Baza niyə qoşulmur? Mənim .env faylım (parol gizlədilib):
DB_PASSWORD=***Xülasə
- AI → maşın öyrənməsi → neyron şəbəkələr → generativ AI → LLM: hər anlayış əvvəlkinin bir hissəsidir.
- LLM mətnin növbəti hissəsini proqnozlaşdırmağa öyrədilib və miqyası sayəsində kod yazıb izah edə bilir.
- Proqramçı AI-dan işdə alət kimi və API vasitəsilə öz tətbiqinin komponenti kimi istifadə edir.
- Tipik ssenarilər: xətaların izahı, avtotamamlama, modelin koddan çağırılması, sənədlər üzrə cavablar.
- LLM verilənlər bazası, insan və ya axtarış sistemi deyil: nəticəni yoxlamaq sizin üzərinizdə qalır.
- Sirlər və şəxsi məlumatlar çata yapışdırılmır.
Praktika
- Çat-assistentdən öz layihənizdəki xətanı (və ya nümunədəki
KeyError-u) izah etməsini xahiş edin və cavabı dilin rəsmi sənədləri ilə tutuşdurun. - Modeldən sevdiyiniz kitabxananın son versiyasını soruşun və cavabı PyPI və ya npm-də yoxlayın. Nəticənin üst-üstə düşüb-düşmədiyini qeyd edin.
- Assistentdən nümunədəki
average_pricefunksiyasını yazmasını xahiş edin, funksiyanın sına biləcəyi üç giriş dəyəri düşünün və onları işə salaraq yoxlayın. - Təhsilinizdən və ya işinizdən beş tapşırığın siyahısını tərtib edin və hər biri üçün qərar verin: AI alət kimi, AI tətbiqin komponenti kimi, yoxsa AI-sız adi kod. Dəqiqliyin və təkrarlanmanın harada vacib olduğunu nəzərə alın.