// Dogal Dil Isleme ve Buyuk Dil Modelleri
Veriyle Konusan
Analitik Asistan
Ders 1 · Dilin Makineye Temsili: Token · Embedding · Attention
01 / Temsil
02 / Text-to-SQL
03 / Schema-RAG
04 / Agent
05 / Guvenlik
06 / Deploy
Sonunda Ne Kuruyoruz?
"Gecen ay en cok satan 3 urun ne?" diye yazacaksin →
asistan SQL uretir → calistirir → cevabi doner.
Dogal dil sorusu
→
LLM → SQL
→
DuckDB calistir
→
Cevap + veri
Neden bu problem?
- Su an en hizli buyuyen gercek LLM uygulamasi
- Her BI / analitik urun bunu ekliyor
- Siradan "chatbot" degil — gercek sektor problemi
6 derste sifirdan production'a
- Tek bir asistani katman katman kuracagiz
- Her ders bir yetenek ekler
- Son ders internete acar
6 Derslik Yolculuk
01 · Temsil — token, embedding, attention (bugun)
02 · Text-to-SQL — ilk SQL uretimi + halusinasyon
03 · Schema-RAG — dogru semayi getir (schema linking)
04 · Agent — calistir, hatayi kendi duzelt (self-correction)
05 · Guvenlik + Eval — read-only kalkan, coklu agent, olcum
06 · Deploy — API + Docker + AWS koprusu
Karma seviye: her derste cekirdek (herkes) + 📦 sektor notu (derinlesme).
NLP Neden Zor?
Bilgisayar SQL'i kusursuz calistirir.
Ama "en cok satan urun" cumlesini SQL'e ceviremez.
Cunku kelimenin onun icin anlami yok — sadece bayt.
NLP tam da bu boslugu doldurur.
insan
"en cok satan urun"
↓ anlam ?
SELECT ... ORDER BY SUM(qty)
makine
NLP'nin Evrimi
Her adim ayni hikaye: baglami daha iyi yakalamak.
Kural tabanli
→
Istatistik
→
RNN / LSTM
→
Transformer (2017)
→
LLM
Eskiden
- Elle yazilmis kurallar
- Kelime sayma
- Baglam zayif
Donum noktasi
- "Attention is All You Need"
- Transformer mimarisi
- Paralel + derin baglam
Bugun
- GPT, Claude, DeepSeek
- SQL/kod uretimi
- Agent'lar
Token — Metin Parcalara Bolunur
Model metni once token'lara boler (kelime ya da kelime parcasi), sonra sayiya cevirir.
Neden onemli? Maliyet ve limit token ile olculur.
Uzun semayi prompt'a koymak = cok token = pahali
→ Ders 3'un RAG motivasyonu.
# pip install tiktoken (sadece fikri gostermek icin)
import tiktoken
enc = tiktoken.get_encoding("cl100k_base")
soru = "Gecen ay en cok satan 5 urun ne?"
tok = enc.encode(soru)
print(len(tok), [enc.decode([t]) for t in tok])
# -> 12 token: ['Ge','cen',' ay',' en',' cok',...]
Bu OpenAI tokenizer'i — her modelin (DeepSeek dahil) kendi tokenizer'i vardir. Amac fikri gostermek.
Embedding — Anlami Sayiya Cevirmek
Kelime/cumle → anlam tasiyan vektor.
Benzer anlam → uzayda yakin. Ilgisiz anlam → uzak.
Problemimize baglayacagiz: bir soruyu tablo aciklamalariyla karsilastirip
hangi tabloya ait oldugunu benzerlikle bulabiliriz.
● "urun" ● "satis"
— yakin —
● "musteri sehri"
— uzak —
2 boyutlu anlam uzayi (temsili)
Demo: Soru → Dogru Tablo
# sentence-transformers, local & ucretsiz (DeepSeek'in embedding API'si yok)
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2")
soru = "en cok satan urunler"
adaylar = ["products: urun adi, fiyat, kategori",
"order_items: hangi urunden kac adet satildi",
"customers: musteri adi, sehir, kayit tarihi"] # ilgisiz
for k, s in zip(adaylar, util.cos_sim(model.encode(soru), model.encode(adaylar))[0]):
print(f"{s.item():.2f} {k}")
0.71 products: urun adi, fiyat, kategori
0.68 order_items: hangi urunden kac adet satildi
0.19 customers: musteri adi, sehir, kayit tarihi ← ilgisiz, dusuk
(onceden alinmis cikti — kavrami gosterir; canli vektor DB demosu Ders 3'te)
Iste SQL'i dogru tabloyla eslestirmenin sirri. Ders 3'te schema retrieval'i tam kuracagiz.
Attention — Baglami Tartmak
Attention = "bir kelimeyi anlamak icin cumlenin neresine bakmali?"
"satan urun"
→ SUM(quantity) buyuk olan
"urun satin alan musteri"
→ customers JOIN orders
Ayni "sat-" koku, baglama gore farkli anlam → farkli SQL. Attention baglami tartar.
Transformer = attention'in paralel, derin hali; LLM'ler bunun ustune kurulu.
📦 Sektor Notu: Attention'in Bedeli
Attention O(n²) maliyetlidir — baglam uzadikca hesap karesel buyur.
- Uzun baglam = pahali + yavas
- 500 tablonun tum semasini prompt'a koymak surdurulemez
- Model uzun metinde kaybolur (yanlis tablo secer)
Cozum → Ders 3
- Soruyla ilgili tablolari getir
- Sadece onlari prompt'a koy
- = Schema retrieval (RAG)
Ders 1 — Ozet
[ ]
Token
Metin parcalara bolunur. Maliyet/limit token ile olculur.
●
Embedding
Anlam = vektor. Soru → dogru tablo eslesmesi.
⇄
Attention
Baglami tartar. Transformer'in kalbi.
Sonraki ders: Modeli gercekten konusturuyoruz — ilk SQL'i yazdiriyoruz.