ders_01 / temsil
// 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 uretircalistirir → 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.