# Kod Yazabilen Modeller: LLM’ler Ürettikleri Kodu Gerçekten Anlıyor mu?

- Yazar: Ertuğrul Akben (Yapay Zeka & Sistem Stratejisti), https://ertugrulakben.com/hakkimda/
- Yayın: 24 Kasım 2025
- Son güncelleme: 24 Kasım 2025
- Adres: https://ertugrulakben.com/kod-yazabilen-modeller-llmler-urettikleri-kodu-gercekten-anliyor-mu/
- Kategoriler: Teknoloji, Yazılım
- Etiketler: AI code generation, AI software development, büyük dil modeli, ChatGPT, Çin Odası, Claude, Gemini, kod anlama problemi, kod üreten modeller, LLM, semantic grounding, stokastik papağan, token prediction, transformer mimarisi, yapay zeka algoritmaları, yapay zeka kod yazma, yapay zeka mühendisliği, yapay zeka yazılım geliştirme

> Kısa özet: LLM tabanlı yapay zekâ modelleri kodu gerçekten anlıyor mu, yoksa sadece istatistiksel taklit mi yapıyor? Stokastik papağan, Çin Odası ve kod anlama sınırlarını özetleyen kısa analiz.

LLM tabanlı yapay zeka modelleri, yazılım geliştirme süreçlerini hızlandırıyor.
Ancak asıl soru şu: Bu modeller yazdıkları kodu gerçekten **anlıyor** mu, yoksa sadece istatistiksel olarak tutarlı diziler mi üretiyor?

## 1. Giriş: Yazılım Geliştirmede Yeni Varsayılan

Son yıllarda yazılım geliştirme pratiğinin merkezine oturan LLM tabanlı araçlar - ChatGPT, Claude, Gemini gibi modeller -
geliştiricilerin çalışma şeklini kökten dönüştürdü. Basit bir yardımcı fonksiyondan karmaşık mikro servis mimarilerine kadar
hemen her konuda bu sistemlerden destek alıyoruz. Çoğu zaman, ürettikleri kod ilk denemede derleniyor, testlerden geçiyor
ve üretim ortamında görevini yerine getiriyor.

Yüzeyde her şey son derece etkileyici görünüyor. Fakat perde arkasına baktığımızda rahatsız edici bir soru ortaya çıkıyor:

> Bu modeller, ürettikleri kodun ne işe yaradığını gerçekten *kavrayabiliyor* mu?

Tartışmanın tam merkezinde, yapay zekânın “anlama” iddiası ile
**matematiksel örüntü üretme** kapasitesi arasındaki kırılgan sınır yer alıyor.

## 2. LLM Nedir: Token Hesaplayan Makineler

Bir insan geliştirici kod yazarken, problemi zihninde soyutlar, çözümü adımlara böler ve bu adımları algoritmaya dönüştürür.
Bu süreçte hem teknik bilgi hem de gerçek dünya bağlamı devrededir. Kod, sadece semboller zinciri değil,
belirli bir etkiyi amaçlayan bilinçli bir tasarımdır.

Bir LLM ise bu süreci bambaşka bir düzlemde yürütür. Model;

- Problemi “anlamaz”,
- Çözüm tasarlamaz,
- Gerçek dünya bağlamını kafasında canlandırmaz.

Temel olarak yaptığı tek iş şudur:
**Verilen girdiden sonra gelmesi en olası token dizisini hesaplamak.**

### 2.1. Örnek Üzerinden Bakalım

Şu fonksiyonu düşünelim:

```
def calculate_area(radius):
    return 3.14 * radius ** 2
```

Bir insan geliştirici bu fonksiyonu yazarken, alanın formülünü, birim ilişkilerini, parametrenin fiziksel anlamını bilir.
LLM ise bu satırları şu nedenle üretir:

- Eğitim verisinde `def calculate_area(radius):` ifadesinden sonra
  istatistiksel olarak en sık görülen desenin `return 3.14 * radius ** 2` olması.

Yani model, alanın nasıl bulunduğunu “bildiği” için değil,
**örüntü yoğunluğu yüksek olduğu için** bu çıktıyı verir.
Ortaya çıkan şey, insan muhakemesine benzeyen bir süreç değil, devasa bir olasılık fonksiyonunun sonucudur.

## 3. Stokastik Papağanlar ve Çin Odası: “Zeki” Görünen Taklit

Bu durumu açıklamak için literatürde sıkça kullanılan kavramlardan biri **“stokastik papağan”** benzetmesidir.
Bir papağan, doğru zamanda doğru sözcüğü söyleyebilir; ancak cümlenin anlamını, bağlamını veya niyetini kavramaz.
Sadece duyduğu sesleri eşleştirir ve tekrarlar.

LLM’ler de buna benzer bir noktada konumlanıyor:

- Sentaksı (sözdizimi) mükemmele yakın taklit edebiliyorlar,
- Semantiği (anlamı) ise yalnızca istatistiksel bir “gölge” olarak taşıyorlar.

Filozof John Searle’ün meşhur **Çin Odası** düşünce deneyinde olduğu gibi, içeride “dili bilen” biri yoktur.
Sadece hangi sembole karşılık hangi sembolün verileceğini söyleyen dev bir kural kitabı vardır.
Dışarıdan bakıldığında sistem, Çince biliyormuş gibi görünür; oysa içeride anlam yoktur, sadece şekil manipülasyonu vardır.

LLM’ler için de durum benzerdir. Kodun çalışması, modelin o kodun gerçek dünyadaki etkisini bildiği anlamına gelmez.
Sistemin yaptığı şey, **kural tablosu üzerinden cevap üretmekten** ibarettir.

## 4. Sözdizimi Tam, Anlam Eksik: Semantic Grounding Sorunu

Modellerin dil tarafındaki performansı son derece yüksektir. Python girintilerinden JavaScript sözdizimine,
tip anotasyonlarından hata mesajı formatlarına kadar pek çok yapıyı kusursuza yakın şekilde üretebiliyorlar.

Ancak asıl kırılma noktası, **semantic grounding** dediğimiz gerçeklik bağıdır.

Bir insan için:

- `price = 100` ifadesi, parasal bir değeri temsil eder.
- `fiyat = 100` aynı kavramın Türkçe değişken adıyla yazılmış halidir.
- Bu kod satırının, bir sistemde muhasebe kaydı, fatura tutarı veya API çıktısı gibi somut sonuçları vardır.

Bir LLM içinse bu ifadeler, yalnızca vektör uzayında birbirine yakın iki nokta demektir.
“Anlam” dediğimiz şey, modelin iç temsilinde **sayısal yakınlık ilişkisi** olarak vardır;
insan zihnindeki türden kavramsal bir içerik yoktur.

## 5. Sonuç: Gerçek Anlama Değil, Yüksek Çözünürlüklü Bir İllüzyon

Bugünkü mimariler - özellikle Transformer tabanlı büyük dil modelleri - ölçek büyüdükçe çok daha etkileyici kodlar üretiyor.
Parametre sayısı artıyor, bağlam penceresi genişliyor, yanıtlar tutarlılık kazanıyor.
Fakat temel gerçek değişmiyor:

- Model, yazdığı kodun **ne yaptığını** kavramıyor.
- Model, kavramış gibi görünen **istatistiksel olarak tutarlı bir çıktı** üretiyor.

Ortaya çıkan şey, ultra-gerçekçi bir simülasyon.
O kadar yüksek çözünürlüklü ki, sistemi izleyen insanlar bu davranışı “anlama” ile karıştırmaya meyilli.
Oysa ekranda gördüğümüz mükemmel kodlar, bilinçli tercihlerin değil,
**soğuk ve karmaşık bir olasılık hesabının** ürünü.

Gerçek zeka ile istatistiksel taklit arasındaki fark, her yeni sürümde biraz daha iyi gizlenen bir illüzyona dönüşüyor.
Ancak bugün itibarıyla, bu çizgi hâlâ orada duruyor.

---

Ertuğrul Akben · https://ertugrulakben.com/ · i@ertugrulakben.com
