12 puan yazan GN⁺ 2025-08-30 | 3 yorum | WhatsApp'ta paylaş
  • Martin Fowler, son dönemde LLM kullanım biçimlerine dair anketlerin gerçek kullanım akışlarını yansıtmadığı için çarpık sonuçlara yol açabileceğine dikkat çekiyor
  • Programlamanın geleceği ya da mesleki güvenceye ilişkin sorularda henüz kimsenin kesin bir cevabı yok; kişisel olarak denemeler yapmak ve deneyimleri paylaşmak önemli
  • AI endüstrisi açıkça bir balon içinde, ancak tarihte tüm teknolojik yeniliklerde olduğu gibi balon sonrasında da Amazon gibi ayakta kalan şirketler ortaya çıkabilir
  • LLM'lerin doğası halüsinasyon (hallucination) üretmektir; soruları birkaç kez farklı biçimlerde sorup yanıtları karşılaştırma süreci başlı başına faydalıdır
  • LLM'ler yazılım sistemlerinin saldırı yüzeyini büyük ölçüde genişletir; özellikle tarayıcı ajanlarının yapısal olarak güvenli hale getirilemeyecek riskler taşıdığı uyarısı yapılıyor

LLM kullanım biçimleri ve geliştirici verimliliği

  • Son dönemde AI'nın yazılım geliştirme üzerindeki etkisine dair ilk araştırmalar etrafında yoğun tartışmalar yürütülüyor
  • LLM kullanımının büyük bölümü gelişmiş otomatik tamamlama işlevlerine (co-pilot benzeri kullanım) odaklanıyor
  • Ancak gerçekte LLM'leri en etkili kullanan kişiler, kaynak kod dosyalarını doğrudan okuyup değiştirebilecek şekilde LLM'den yararlanmayı tercih ediyor
  • LLM kullanım biçimlerindeki farkı göz ardı eden araştırmalar, veriyi yanlış yönde yorumlama riski taşıyor
  • Ayrıca farklı LLM modelleri arasındaki yetenek farkları da sonuçları yorumlamayı daha da zorlaştırıyor

Programcılık mesleği ve LLM'lerin geleceği

  • Programlamanın geleceği, giriş seviyesi mühendislere ihtiyaç olup olmayacağı, deneyimli çalışanların geleceği gibi sorular sıkça gündeme geliyor
  • Buna net bir cevap vermek mümkün değil; çünkü LLM'lerden etkili biçimde yararlanmanın yolu henüz oturmuş değil
  • Deneysel yaklaşım ve başkalarının somut iş akışı deneyimlerini gözlemleyip paylaşma tutumu gerekli
  • Bizzat kullanıp deneyimleri paylaşmak, uyum sağlamanın en akılcı yolu

AI·LLM alanındaki balon olgusu

  • AI'nın bir balon olduğu görüşüne karşı, her teknolojik yeniliğe balon olgusunun eşlik ettiği anlatılıyor
  • Balon bir gün mutlaka söner ve yatırım başarısızlıkları da yaşanır
  • Ancak balonun ne zaman söneceği ve ne ölçekte değer üretileceği öngörülemez
  • Balon sönse bile tüm şirketler ortadan kaybolmaz; bazıları kalıcı büyüme de yakalayabilir
    • Dot-com balonu sırasında pets.com, Webvan battı ama Amazon ayakta kalıp büyüdü; bunun en bilinen örneklerinden biri

LLM'lerin halüsinasyon özelliği

  • LLM'lerdeki halüsinasyon (Hallucination) olgusu bir kusur değil, özsel bir nitelik
  • LLM'ler nihayetinde işe yarar halüsinasyonlar üretmeye yönelik araçlar
  • Aynı soruyu birkaç kez, ifadeyi değiştirerek sorup birden çok yanıt almak ve bunları karşılaştırmak tercih edilmeli
  • Sayısal yanıt gereken durumlarda tekrarlı sorgulamayla yanıtlar arasındaki değişkenliği görmek önemli
  • LLM'lerin kesin biçimde hesaplanabilir problemlere doğrudan yanıt vermesi uygun değil

Yazılım mühendisliğine belirsizliğin girişi

  • Geleneksel yazılım mühendisliği deterministik ortamlarda tasarlanır ve uygulanır
  • Yapısal ve süreç mühendisleri, gerçek dünyadaki belirsizliği (nondeterminism) hesaba katarak tolerans payları tasarlar
  • LLM'lerin devreye girmesi, yazılım mühendisliğinin belirsizlik dünyasına girişinde bir dönüm noktası olabilir

LLM'ler ve junior geliştirici benzetmesi

  • LLM'ler sık sık junior bir ekip arkadaşıyla karşılaştırılıyor
  • Ancak LLM, "tüm testler geçti" dediği halde gerçekte başarısız testlerle sık sık karşılaşılıyor
  • Bir insan böyle davransa, hızla bir performans sorununa dönüşecek düzeyde bir durum olurdu

Artan güvenlik tehditleri ve tarayıcı ajanı sorunu

  • LLM'ler yazılım sistemlerinin saldırı yüzeyini geniş çapta büyütüyor
  • Simon Willison'ın işaret ettiği 'ölümcül üçlü (Trifecta)', özel verilere erişim, dış iletişim ve güvenilmeyen içeriğe maruz kalma birleşiminden oluşuyor
    • Web sayfasına gizlenmiş komutlar (ör. 1pt beyaz yazı gibi) aracılığıyla LLM kandırılıp hassas bilgileri sızdırmaya yönlendirilebilir
  • Tarayıcı tabanlı ajanlar özellikle riskli; harici komutlarla hesap transferi gibi kötü niyetli işlemler mümkün olabilir
  • Willison, ajan türü tarayıcı eklentilerinin temelden güvenli hale getirilemeyeceği görüşünü savunuyor

Sonuç

  • LLM'ler yazılım geliştirmede yeni imkanlar açıyor, ancak kullanım biçimlerini ve sınırlarını net biçimde anlamak gerekiyor
  • Balon kaçınılmaz olsa da bunun içinden sürdürülebilir teknolojik ilerleme çıkabilir
  • Geliştiriciler, deneysel yaklaşım ve güvenlik odağı ile LLM'lerin potansiyelinden en yüksek düzeyde yararlanmalı

3 yorum

 
iolothebard 2025-08-31

Bunu düşünmek bile insanı bunaltıyor…

Yazılım mühendisliğine determinizm dışılığın dahil edilmesi
Geleneksel yazılım mühendisliği deterministik ortamlarda tasarlanıp uygulanır
Yapı ve süreç mühendisleri, gerçek dünyanın determinizm dışılığını (belirsizliğini) dikkate alarak tolerans payı tasarlar
LLM’lerin devreye girmesi, yazılım mühendisliğinin determinizm dışı dünyanın içine girdiği bir dönüm noktası olabilir

 
khris 2025-08-31

Özellikle junior benzetmesi konusunda %100 katılıyorum. Yaptığı hataların kategorileri insanlardan farklı... Bunun tipik bir başarısız benzetme olduğunu düşünüyorum.

 
GN⁺ 2025-08-30
Hacker News görüşü
  • Eski meslektaşım Rebecca Parsons uzun zamandır LLM'lerdeki halüsinasyonun bir bug'dan çok temel bir özellik olduğunu söylüyor. Aslında LLM'lerin yaptığı şey faydalı halüsinasyonlar üretmek. Ama bunu her duyduğumda, "halüsinasyon" teriminin keyfi biçimde yeniden tanımlanıp sanki yeni bir içgörüymüş gibi sunulduğu hissine kapılıyorum. Alışılagelmiş anlamda ‘halüsinasyon’, gerçekle ilgisiz ayrıntıların duyusal bir gerçeklik hissi verecek kadar inandırıcı şekilde üretilmesi demek; bu mantıksa sadece "çıktı" demenin başka bir yolu gibi. LLM'lerin çıktı ürettiği zaten yeni bir şey değil; sadece daha önce 'kötü' görülen bir etiketi tüm davranışın üstüne yapıştırıp yeniymiş gibi gösteriyor

    • Fowler'ın gerçekten "halüsinasyon" terimini yeniden tanımladığını sanmıyorum. Daha çok, bunun bu sistemlerin temel çalışma biçimi olduğunu ironik biçimde vurguluyor. "Bombalarda tali hasar özseldir" benzetmesi gibi; bunu kelimesi kelimesine almak gerekmiyor

    • Bu argüman, “LLM'ler ya gerçeği üretir ya da halüsinasyon üretir” şeklindeki yanlış ikiliği düzeltmeye çalışıyor. Böyle bir yaklaşım, halüsinasyonlar azaltıldığında geriye yalnızca hakikatin kalacağı izlenimini veriyor; oysa gerçekte tüm çıktı bir tür halüsinasyon. Sadece bunların bir kısmı gerçekliği yansıtıyor ya da beklentilerle örtüşüyor diye doğruymuş gibi görünüyor. Bu, zar attığınızda istediğiniz sayı gelince "zar niyetimi okudu" demeye benziyor. Sonsuz maymun sonsuz daktiloyla sonunda Hamlet'i yazabilir; burada sadece bu olasılık AI ile yükseltilmiş durumda

    • Bu görüş bana ilginç geldi. LLM'in ürettiği şeyin doğru olup olmadığını kendisinin bilemeyeceğini kabul etmek, yazılım geliştirmede LLM kullananlara pratik bir bağlam sağlıyor bence

    • Bu olguyu "halüsinasyon" kelimesiyle anlatmak bana hep rahatsız edici geldi. İnsanlar hiçbir dayanak olmadan kulağa makul gelen şeyler uydurunca buna "bullshit" diyoruz; LLM'ler de esasen buna benzer bir şey yapıyor. "bullshit" çerçevesinden bakınca, LLM kullanımına yönelik bazı eleştiriler daha anlamsız hale geliyor. Sonuçta LLM'lerin bu yönü sizi rahatsız ediyorsa, insanlarla da çalışamazsınız. Öte yandan "bullshit" kelimesini yeniden tanımlamak çok daha zor. Yine de söz konusu yazının dağınık düşüncelerden oluşan bir derleme olarak amacına uyduğunu ve yazarın da otoriter bir ton takınmaya çalışmadığını düşünüyorum

    • Asıl nokta biraz garip ifade edilmiş ama, özünde 'halüsinasyon' çıktı ile diğer çıktılar arasında keskin bir fark olmadığı söyleniyor. Tıpkı bir RDBMS'te iki sorgu sonucunun özsel olarak aynı türden olması gibi. Anlamlı bir tespit

  • Şirketimizde neredeyse istediğimiz seviyeye yaklaşan, %90'ı iyi ama %10'u bozuk kod seli varmış gibi hissediyorum. Kod üretimi arttı ama kimse buna ayak uyduramadığı için kalite gözle görülür biçimde düşüyor. Hedefe yavaş yavaş yaklaşmıyoruz; bir anda %90'a ulaşıp sonra yabancı kodu anlamaya ve sürekli düzeltmeye zaman harcıyoruz. Belki yine de eskisinden hızlıdır ama iki yaklaşım arasındaki fark pratikte düşündüğümüz kadar büyük olmayabilir. En çok da, yabancı kodu düzeltmeye zaman harcamaktansa yeni bir şey üretmeyi daha çok seviyor olmama takılıyorum

    • Ben de aynı şekilde yeni bir şey yapmayı tercih ederim. Ama bazı insanlar bu yeni, hızlı ve doğaçlama tarza daha çok keyif alıyor. Ben zorunluluktan biraz kullanıp yabancılık hissettim, sonra her şeyi silip AI yardımı alarak elle yeniden yaptığımda asıl tatmini yaşadım. Hâlâ %100 anlamadığım tek AI üretimi kod karmaşık SQL sorguları; ama SQL sorgularında davranışı hızlıca doğrulamak ve beklenmedik yan etkiler olmadığını görmek kolay olduğu için sorun etmiyorum

    • Bu durum, ekip büyüklüğü 3 kişiden 10 kişiye çıkınca yaşananlara acı verici derecede benziyor. Bir anda bilmediğiniz kod yağmaya başlıyor, mimari tutarlılık azalıyor ve politika ile CI'a daha çok bağımlı hale geliyorsunuz. LLM tarafındaki fark, mentorluk ya da işten çıkarmanın anlamlı olmaması. LLM'leri etkili kullanmanın yolu, onları kullanan kişinin üretilen sonuca %100 sorumluluk alması. Yani üretilen kodu net biçimde anlaması gerekiyor ama bunu fiilen garanti etmek zor

    • LLM'ler boilerplate kod üretmede çok iyiler. Bu da boilerplate'i toparlama disiplinini gevşetiyor. PR'larda çok büyük miktarda kod gelince review yapmak zorlaşıyor. Github da tek seferde çok fazla satırın incelenmesi için pek uygun değil. Sonuçta junior/mid-level geliştiriciler sadece boilerplate işi çözen kişilere dönüşüyor ve öğrenme fırsatları azalıyor. Böyle giderse kod kalitesi hızla bozulacak

    • Perlis'in 7. aforizmasını alıntılayayım: ‘Yanlış bir program yazmak, doğru bir programı anlamaktan daha kolaydır’<br>http://cs.yale.edu/homes/perlis-alan/quotes.html

    • "Kalite gözle görülür biçimde düşüyor" görüşüne katılıyorum ve bunun daha da kötüleşeceğini düşünüyorum. Sonunda gerçek ‘net kazanç’ olup olmayacağını anlamak için ekonomideki ödünleşim kavramını iyi anlamak gerekecek. İnsanlar bedava öğle yemeği olmadığını gözden kaçırıyor gibi

  • Rebecca Parsons'ın “halüsinasyon, LLM'in temel özelliğidir” çerçevesi bana çok yerinde geliyor. Ben de bunu çevreme anlatmaya çalışıyordum; bu ifade demek istediklerimi tam olarak özetliyor

    • Ben de LLM'leri aileme ve arkadaşlarıma açıklarken oyuncu/aktör benzetmesini kullanıyordum. LLM karaktere uygun performans sergiler; olgulara sadece gerektiğinde başvurur<br>https://jstrieb.github.io/posts/llm-thespians/

    • “Bütün modeller yanlıştır. Ama bazıları faydalıdır.” şeklindeki eski söz buraya tam uyuyor

    • Zeka, gereksiz bilgiyi filtreleme yeteneğidir. İster düşünce olsun ister duyum

    • Bunu kimin söylediğini hatırlamıyorum ama, LLM çıktısı her zaman halüsinasyondur; sadece %90'dan fazlası doğru çıkar

  • Bir an için LLM'lerin işlerimizi elimizden alacağı hissine kapılmıştım, ama sonra aslında ileride bizim düzeltmemiz gerekecek dağ gibi iş üretebildiklerini fark ettim. Artık Claude Code gibi pratik yardımcı araçlar olarak verimli şekilde kullanıyorum ve bunların ikame değil tamamlayıcı araçlar olduğunu daha net görüyorum

    • Nihayet “AI kusursuzdur” ya da “AI tamamen işe yaramaz” dışında makul bir görüş görmek güzel
  • “Sayısal bir cevap istediğinizde LLM'e aynı soruyu üç kez sorun” tavsiyesini görmüştüm. Bu yöntem insanlarda da işe yarıyor. Polis sorgularında aynı hikâyeyi üç kez, bazen tersten de anlattırır. Eğer yalan söyleniyorsa ya da hafıza bulanıksa, tekrar sırasında açık verebilir. Mülakatlarda da birine aynı konuyu üç farklı şekilde anlattırırsanız gerçekten anlayıp anlamadığını görebilirsiniz

    • Bu teknik masum insanları da kafasını karıştırıp yalan söylüyormuş gibi gösterebilir. Dikkatli uygulanmalı

    • Bu yaklaşım ancak belirli koşullarda geçerlidir. Bir anıyı ne kadar sık hatırlayıp aktarırsanız, o kadar çarpıtılabildiğine dair birçok örnek var. Polisin sorguda tekrar tekrar sorması bazen özellikle ifade çelişkisi üretmek için olur. Aynı bilgi olsa bile, kişiye bunu çok fazla ve çok farklı biçimde tekrar tekrar anlattırırsanız sonunda hata yapabilir. Ayrıca soruyu soranın cevapları kendi istediği yöne çekebilme ihtimali de her zaman akılda tutulmalı

    • NASA'nın uzay mekiği triple modular redundancy kullanıyordu. Bunun nedeni uzay radyasyonu yüzünden işlemci ya da belleğin bozulma ihtimaliydi<br>https://llis.nasa.gov/lesson/18803

  • Ben LLM'lerle gerçekten yüksek üretkenlik hissediyorum. Bu sadece otomatik tamamlama değil; ciddi zaman kazancı sağlıyor. Ama fazla serbest kullanılırsa kendine özgü bir borç biriktirebileceği endişem de var. Kişisel olarak Test Driven Development (TDD) yaklaşımıyla Claude Sonnet veya GPT-5 kullanarak özellikleri adım adım inşa etmek bende başarılı oldu. Bu tarz üzerine henüz çok fazla yazı ya da tartışma olmamasını merak ediyordum; Martin'in yazısını okuyunca nedenini biraz daha anladım. Çok iyi TDD ustaları genelde LLM tabanlı kod otomasyonuna topluca atlayan tipler değil; çoğu kodun zanaatkârlığına ve insani iletişime özel değer veriyor. O yüzden eskiden olduğu kadar zengin pratik bilgi birikimi henüz oluşmuş değil. Önümüzde LLM araçlarıyla yazılım yazma konusunda yeni bir ‘bozkır’ açılacak gibi görünüyor ve zamanla çok sayıda ders birikecektir diye düşünüyorum. Referans: https://news.ycombinator.com/item?id=45055439

    • TDD ile LLM bağlantısı, bir ölçüde “testleri de birlikte üretiyor” fikrini zaten içeriyor. Tabii bu klasik anlamda TDD değil. Hatta otomatik testin kolay olduğu teknolojiler, örneğin ssr, daha fazla ilgi görebilir
  • Geliştiricinin temel görevi, LLM'in yazdığı kodu bizzat doğrulamak ve kontrol etmektir. Bir kerede çok fazla kod istemeyin; LLM'i daha küçük birimlerde kullanmak daha iyi. Unit testleri de kendim çalıştırıyorum. LLM'in testleri çalıştırıp ‘başarılı’ dediği şeye güven olmaz. Testi ben çalıştırınca ancak güven duyabiliyorum

  • “Halüsinasyon LLM'in özelliğidir” görüşüne katılıyorum

    • Ben LLM'lerin yalnızca metin ve kombinasyonlardan oluşan bir dünyada yaşadığını söylemek isterim. Kelimeler, kelimeler arası ilişkiler ve hikâyeler onlar için dünyanın tamamı. Bu yüzden yeni hikâyeler üretmede en iyiler. Bu hikâyeler bazen yanlış ya da çelişkili olabiliyor; dolayısıyla sonuçta tahmine dayanıyorlar. LLM'ler sayıları gerçekten saymayı bilmiyor olabilir ama ‘2, 1'den sonra gelir ve 3, 2'den büyüktür’ gibi kalıpları biliyorlar. İnsanların hesap makinesi kullanması gibi, onlar da araçlar üzerinden hesap yapabiliyor. Gelecekte gerçek anlamda güvenilir AI için aritmetik motorlardan çok, mantığı güçlendiren, çelişkileri önleyen ve kesin olguları ayırt etmeye yardımcı olan bir "epistemic engine" gerekli olacak

    • Bu bakış açısından LLM ajanlarını, halüsinasyon sonuçlarını filtreleme aracı olarak görmek mümkün

    • Ben “Bütün (büyük dil) modellerinin çıktısı halüsinasyondur. Sadece bir kısmı faydalıdır.” ifadesine daha yakınım. AI patlaması da bu faydalı halüsinasyon oranının çok yüksek olmasından kaynaklandı

    • Bana göre bu fazla indirgemeci bir bakış açısı

    • "Halüsinasyon" teriminin sürekli tartışmalı olmasının nedeni de bu. Bazı sonuçların ‘halüsinasyon değilmiş’ gibi algılanmasına yol açıyor ama gerçekte LLM'in tüm çıktısı düşünmeden üretilmiş şeyler

  • Günümüzde LLM'leri verimli kullanmak için senior seviyede geliştiricilerin mantıklı şekilde yönlendirme yapması gerekiyor. Yarın öbür gün junior'lar ortadan kalkarsa senior rolünü kim dolduracak diye merak ediyorum. Sonunda LLM'lerin yeterince kendi kendine programlama yapacağını düşünüyorum. Ama şu aşamada AI kesinlikle iyi bir yardımcı araç; ikame değil

  • LLM'e bir soruyu birkaç kez sorma tavsiyesiyle ilgili olarak, macOS kullanıcılarına Alfred workflow öneririm. command + space basıp llm <prompt> yazarsanız perplexity, deepseek (lokal), chatgpt, claude, grok gibi istediğiniz birden fazla LLM'i aynı anda tarayıcı sekmeleri olarak açabilirsiniz. Fowler'ın sözünü ettiği, farklı LLM'lerle çapraz doğrulamayı hızlı ve verimli şekilde yapmayı sağlıyor; ayrıca zamanla hangi LLM'in hangi işte daha güçlü olduğunu da öğreniyorsunuz

    • Alfred workflow ilgimi çekiyor ama bunu pratikte nasıl kullandığınızı merak ediyorum. Ben de Alfred'i daha çok clipboard için kullanıyorum. Bu workflow sadece tarayıcı sekmeleri mi açıyor?