Ayna olarak yapay zeka: Kod ve mimaride eksik anlam

kapanış bildirimi

Bu makale İngilizce olarak da mevcuttur. Teknik yardımla tercüme edildi ve yayınlanmadan önce editoryal olarak gözden geçirildi.

Programlama artık kod yazmaktan ziyade sistemleri anlamakla ilgili hale geldi. Herhangi bir kod tabanı genişletildiğinden çok daha sık okunur. Ve tam da burada ortak bir yapısal eksiklik ortaya çıkıyor: Kararların “nedeni” genellikle görünmez.

Duyurudan sonra devamını okuyun

Nicolai Wolko, bir yazılım mimarı, danışman ve WBK Consulting AG'nin kurucu ortağıdır. Karmaşık web ve bulut projeleri olan şirketleri destekliyor ve CTO'lar için fikir tartışması ortağı ve uzmanı olarak hizmet veriyor. Düzenli olarak özel medyada ve blogunda modern yazılım mimarisi üzerine uzman makaleleri yayınlamaktadır.

İster insan ister yapay zeka olsun, mevcut bir sistemi analiz eden herkes sınıflar ve modüllerle karşılaşacak, ancak bunların nasıl bağlantılı olduğunu ve neyi temsil ettiklerini hemen göremeyecektir. Yapay zeka modelleri bu sorunu özellikle açık bir şekilde yansıtıyor: Kalıpları tanıyor ancak kökeni tanımıyor. 2025'te yapılan güncel bir küresel araştırma, oluşturulan koddaki hataların önemli bir kısmının doğası gereği sözdizimsel olmadığı, mantıksal-anlamsal yanlış anlamalara konu olduğu sonucuna varıyor. Modeller mevcut yapıları takip ediyor. Altta yatan anlam ve çıkarım görülemiyorsa, insanların tahmin etmesi veya araştırması gerektiği gibi halüsinasyonlar ortaya çıkar.

Bu gözlem, soyutlamayı mükemmelleştirdiğimizi, ancak çoğu zaman anlaşılabilirliği hafife aldığımızı gösteriyor.

Geriye dönüp baktığımızda, yazılım geliştirmenin tarihi, zihinsel yükü azaltmaya yönelik sürekli bir girişim gibi görünüyor. Birleştirici doğrudan makine talimatları düzeyini terk etti, üst düzey diller donanım ayrıntılarını kaldırdı, çerçeveler karmaşıklığı birkaç kod satırına sığdırdı. Her adımda odak noktası “nasıl”dan “ne”ye kayar:

Yazılım geliştirmede artan soyutlama, odağı

Yazılım geliştirmede artan soyutlama, odağı

Yazılım geliştirmede artan soyutlama, odağı “nasıl”dan “ne”ye kaydırır: Sözdizimsel yükü azaltır, ancak teknik anlama doğrudan erişimi daha da zorlaştırır.

Ancak rahatlama ikirciklidir. Soyutlamalar yazmaktan tasarruf sağlar ancak ek yorumlama çalışması yaratır. Gibi bir işlev calculateTotal() uygulamayı gizler, aynı zamanda anlamı da gizler: toplam nedir? Hangi kurallar? Hangi etki alanı? Hangi istisnalar? Bir kod satırı okuyucuları görünmez olanı yeniden inşa etmeye zorlayan zihinsel bir sıçrama tahtasına dönüşür.

Duyurudan sonra devamını okuyun

Yazılım geliştirme olgunlaştıkça yeni bir zorluk türü ortaya çıktı. Kod yazmak çok daha kolay hale geldi, ancak arkasındaki anlamın ortak anlayışı daha da zorlaştı. Ana darboğaz teknik uygulamadan anlambilime kaymıştır. 2003 yılında Eric Evans, ilk kez “Etki Alanı Odaklı Tasarım” kitabında yazılım geliştirmedeki gerçek zorluğun kodun temsil ettiği anlamda yattığını tutarlı bir şekilde tanımladı (bkz. Eric Evans: Etki Alanı Odaklı Tasarım: Yazılımın Kalbinde Karmaşıklığın Mücadelesi, Addison-Wesley, 2003).

Etki alanı odaklı tasarım (DDD) bir atılımdı çünkü konsept, tartışmayı uygulama odaklı yapılardan teknik anlambilime kaydırdı. Her Yerde Bulunan Dil, Sınırlı ve Toplu Bağlamlar gibi kavramlar, terim ve süreçlere ilişkin ortak anlayışı güçlendirir. Bu şekilde DDD, bugün hala var olan bir sorunu görünür hale getirir: anlam modellenebilir, ancak birçok sistemde yalnızca dolaylı olarak tamamlanmış kodda tanınabilir.

DDD'nin yanı sıra Temiz Kod gibi diğer mimari ilkeler de aynı temel fikri izler: kodu anlaşılır kılmak. Teknik yapının sorunun sadece bir parçası olduğu, asıl engelin ise anlayış olduğu bilincinden doğmuşlardır.

Ancak bu kavramlar gerekli teknik bilginin zaten mevcut olduğunu varsaymaktadır. Bu bilgiyi temsil eden bir yapı oluştururlar, ancak altta yatan kararları kodun kendisinde yalnızca sınırlı bir ölçüde görünür kılarlar.

Zihinsel yük, bir sistemin anlamı ifade etmediği ancak anlayışı okuyuculara bıraktığı durumlarda ortaya çıkar. Bu etki iyi incelenmiştir.

Fonksiyonel manyetik rezonans görüntüleme (fMRI) kullanılarak yapılan çalışmalar, kodu anlamanın ölçülebilir bilişsel yük ile ilişkili olduğunu ve bu yükün kodun anlaşılabilirliğine bağlı olarak değiştiğini göstermiştir. Yönelim ve bağlam eksikse zihinsel çaba artar: Beynin, kodda hemen belli olmayan bağlantıları kurmak için daha fazla bilişsel çalışmaya yatırım yapması gerekir.

Görünüşe göre basmakalıp sözlerin ölçülebilir etkileri olabilir, başka bir çalışmanın gösterdiği gibi, konuşulan kelime tanımlayıcıları kısaltmalardan veya tek tek harflerden yaklaşık %19 daha hızlı anlaşılmaktadır.

Programlama pratiğinde zihinsel yük özellikle üç durumda belirgindir:

1. Anlamda Belirsiz Değişiklikler

Örnek: Bir işlem, değişiklik görünmeden kodda “Sipariş”ten “Rezervasyon”a değişiyor. Beyin için bu, bir bağlam sıçraması anlamına gelir. Geçişi anlaşılır kılan anlamsal işaretleme eksik.

2. Örtülü kurallar

Örnek: Bir parametre yalnızca belirli durumlarda ayarlanabilir. Sistem çalışıyor ancak hangi varsayımın geçerli olduğunu ifade etmiyor. Okuyucular bunu zihinsel simülasyon yoluyla telafi ederler.

3. Anlamsal yönelimi olmayan yapı

Örnek: Teknik katmanlar süreçleri ayırır ancak kavramları ayırmaz. Beyin kodu takip eder ancak teknik düşünce dizisini takip etmez. Yönelim ancak içsel yeniden yapılanmanın birkaç aşamasından sonra ortaya çıkar.

Kodda ortak bir modele sahip üç zihinsel yük kaynağı: Kod yapıyı gösteriyor ancak çok az anlam taşıyor: boşlukları beyin doldurmalı.

Kodda ortak bir modele sahip üç zihinsel yük kaynağı: Kod yapıyı gösteriyor ancak çok az anlam taşıyor: boşlukları beyin doldurmalı.

Kodda ortak bir modele sahip üç zihinsel yük kaynağı: Kod yapıyı gösteriyor ancak çok az anlam taşıyor: boşlukları beyin doldurmalı.

Örneklerin ortak bir modeli var: Kod, anlamsal bir anlam değil, sözdizimsel bir yapı taşıyor.

Yapay zeka (AI) bu düşüncelere nasıl uyuyor? Yazılım geliştirme tarihi “nasıl”dan “ne”ye doğru büyük ilerlemeler kaydetmiştir. Yapay zeka artık bu yolculuğu doğal dil kodu arayüzü tasarlayarak tamamlamalı. Ancak şimdilik hâlâ önemli engeller var.

Büyük Dil Modellerinin (LLM'ler) en büyüleyici özelliklerinden biri, istemlerinin bağlamını yansıtmalarıdır. 2023'te yapılan bir araştırma, Yüksek Lisans'ların ne tür kodlama hataları yaptığını inceledi. Bu, yinelenen hata sınıflarını ortaya çıkardı: yanlış varsayımlar ve yanlış mantıksal yön. Başka bir deyişle: sözdizimi hatası yok, daha ziyade bağlamda eksik bir karar takibine dair ipuçları var. Modeller yapıyı yeniden üretir ancak çoğu zaman anlamı kaçırır; tıpkı insanların önceden bilgisi olmadan bir sistemle karşılaştıklarında sıklıkla yaptıkları gibi.

Okunabilirlik kasıtlı olarak kötüleştirildiğinde bu etki daha da belirgin hale gelir. Karmaşık kod kullanıldığında performans önemli ölçüde düşer. Bu durumlarda, deneyimli geliştiriciler bazen deneyim ve analitik yaklaşımı kullanabilirler ancak daha yavaş, daha fazla belirsizlikle ve daha büyük hata riskiyle çalışabilirler. Burada şu çok açık hale geliyor: Okunabilirlik azalırsa hem insanlar hem de yapay zeka modelleri için performans düşer. Her ikisi de güvenilir bir şekilde anlam çıkarmak için açık ipuçlarına güvenir.


Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir