Sanırım LLM tükenmişliği yaşıyorum
(alecscollon.com)- İşte ve kişisel çalışmalarda her gün Claude Code, Codex, ChatGPT ve Gemini kullanırken, birkaç yıl öncesine kıyasla yapay zeka tarafından üretilen metinleri okumaya ayırdığım süre büyük ölçüde arttı
- Geliştirme akışı, doğrudan tasarlayıp uyguladığım yöntemden tasarımı açıklama → LLM kod incelemesi → doğrudan düzeltme biçimine kaydı ve bu sayede yabancı olduğum alanlarda da daha rahat çalışır oldum
- Mevcut proje de esas olarak büyük ölçekli denetimsiz kod üretimi çerçevesi ve Qwen ajanı çıktılarının incelenmesi etrafında dönüyor; yani yapı gereği sürekli LLM içeriği okuyorum
- Yaklaşık 1 yıllık kullanımın ardından, son birkaç ayda asılsız varsayımlar, halüsinasyonlar, kesin konuşan kısa cümleler ve aşırı emoji gibi tekrar eden kalıplar birikerek yük olmaya başladı
- Asıl yorgunluğun kaynağı LLM’in kendisinden çok aynı üslubun ve aynı tür hataların sürekli tekrarlanması; kişiselleştirme olsa bile başkalarının ürettiği yapay zeka içeriğinin stilini kontrol etmek zor
Geliştirme akışının derinine giren LLM
- Kendi LLM kullanımımı, bugünün geliştirici standardına göre ortalama; kullanım biçimi olarak da hâlâ ilkel sayılabilecek düzeyde görüyorum
- Aynı anda tek bir işi ele alıyorum; işte Claude Code, evde ise şu anda Codex ile konuşuyorum
- Asistanın kod yazmasına izin verdiğimde bile çıktıyı dikkatle okuyup anladıktan sonra bizzat düzenliyorum
- Otonom ajanları ya da ajan orkestrasyonunu derinlemesine kullandığım bir aşamada değilim
- Çalışma biçimim, kodu bizzat tasarlayıp yazma merkezli yapıdan; tasarımı LLM’e anlatıp, LLM’in ürettiği kodu gözden geçirdikten sonra yeniden kod yazdığım bir yapıya dönüştü
- Bu süreçte daha önce düşünmediğim ya da bilmediğim yaklaşımlarla karşılaşıyorum
- Derin bilgim olmayan alanlarda bile daha rahat çalışıyorum
- Şu anki temel proje, kod tabanı içinde büyük ölçekli denetimsiz kod üretimi için bir çerçeve kurmak
- Claude ile araç geliştirmediğim zamanlarda, denetimsiz ajan Qwen’in çıktılarını inceliyorum
- Hangisi olursa olsun, sonuçta sürekli LLM’in ürettiği içerikleri okuyorum
- Bilgi ararken de, belirli bir siteyi bilmiyorsam çoğu zaman ChatGPT’ye soruyor ya da Gemini’nin özetini okuyorum
- LLM yanıtı yanlış çıkarsa yeniden tarayıp araştırmaya dönmem gerekiyor
- Arama sonuçlarında işe yaramaz yapay zeka üretimi yazılar çok olduğunda, gündelik sorular için LLM yanıtlarının da yeterince iyi olabildiğini düşünüyorum
Aynı üslup ve aynı hataların biriktirdiği yorgunluk
- Bu kullanım biçimi yaklaşık 1 yıldır sürüyor ve şu an için bırakmayı düşünmüyorum
- LLM kullandığımda daha üretken olduğumu hissediyorum
- LLM’i etkili kullanmayı öğrenmeye devam etmenin de değerli olduğunu düşünüyorum
- Son birkaç ayda LLM çıktısı okuma konusundaki hissim değişti
- Daha okumaya başlamadan hangi üslup ve hangi hatalarla karşılaşacağımı biliyor olma duygusu bir yük hâline geliyor
- Tekrar tekrar gördüğüm unsurlar asılsız varsayımlar, halüsinasyonlar, kesin konuşan kısa cümleler ve aşırı emoji kullanımı
- Bu rahatsızlıkların her biri tek başına katlanılabilir olsa da, birlikte tekrarlandıklarında insanı LLM yazısından hızla bıktırıyor
- Temel mesele, LLM’in insandan daha kötü olduğunu söylemek değil; mesele tekrarlılık
- İnsanlar da güvenilmez ya da can sıkıcı olabilir
- LLM’ler aynı tarzda yazıyor ve aynı tür hataları tekrar ediyor
- Arayüz izin veriyorsa kişiselleştirme kullanılabiliyor, ama bazı kendine özgü üsluplar yine de kalıyor
- Başkalarının ürettiği içeriklerin stilini doğrudan kontrol etmek mümkün değil
- Bu duyguyla nasıl başa çıkacağımı henüz bilmiyorum; mesele sadece dengesiz araçlara duyulan hayal kırıklığını aşmış durumda ve yazı kalıplarının kendisi sürekli gözüme batıyor
2 yorum
Ben de LLM’lerin verdiği yanlış varsayımlar, halüsinasyonlar, kesin yargılı kısa cümleler ve aşırı emoji kalıbı yüzünden zorlanıyordum.
ELI5 Rule’u oluşturup uygulayarak bu sıkıntıdan kurtuldum :)
https://github.com/amebahead/explain-like-iam-five-rules
Hacker News görüşleri
Tükenmişlik düzeyinde değil ama, LLM’ler yarattıkları baskı yüzünden gerçekten yorucu. Kimse iş yükünü artır diye zorlamıyor ama her an benim “clanker”ımın ya da başkasının “clanker”ının üretmiş olduğu bir şey var ve ben de tıkandığım yeri açabilecek durumdayım
LLM’lerden önce de yetişmek zordu ama şimdi sanki bekleyen iş her zaman 10 kat artmış gibi ve herkes “optimizasyon” yapıp AI’a paralel olarak daha hızlı iş yedirirse bu bir 10 kat daha olabilir. Her şeyin darboğazında durmaya devam etmek yorucu
Küçük yan projeleri ve fikirleri hayata geçirmek keyifli ama, LLM’lerin “dinlenmek zaman kaybıdır” gibi sağlıksız bir düşünceyi daha da beslediğini fark ettim ve bunu düzeltmem gerektiğini hissettim
Yazının temel şikayeti muhtemelen fabrika otomasyonu döneminde de benzerdi. Çeşitli beceri gerektiren el işlerinin, montaj hattında tek bir istasyonda gün boyu aynı hareketi tekrarlamaya dönüşmesi gibi, LLM’ler de yaratıcı ve değişken kısımları alıp geriye sadece tekrarlı QA onay damgası vurma işini bıraktı. O dönemde kullanılan hafifletici önlemlere şimdi yeniden bakmak mümkün olabilir
Kısa süre önce bir ekip arkadaşım içinde LLM üretimi yaklaşık 30 doküman bulunan bir zip dosyası gönderip hemen incelememi istedi; bunların önemli bir kısmı tekrar niteliğindeydi ya da alakasız uydurmalar ve halüsinasyonlar içeriyordu. Üretim hızı inceleme hızından çok daha yüksek
Eskiden bir proje yöneticisinin planlama dokümanı hazırlaması günün büyük kısmını alırdı ama artık bunu birkaç dakikada üretip inceleme için öne atabiliyor, bu da gerçekten yorucu
“Ters kentaur” yeni bir şey değil. Geçen yüzyılın işçi hareketlerine sormak yeterli
Sanırım bunun nedeni, karmaşık yazılımlar kullanmaktan çok ürün üretmeyi seven bir yazılım mühendisi olmam. Bir şey ortaya çıkarma hissi motivasyon kaynağı ve bir özelliği kusursuz, tamamlanmış hale getirmek istiyorum. Ama UI işlerinde %95’ten %100’e gitmek uzun sürüyor
Bu yüzden ne yazık ki şu anda çalışma saatlerim çok uzadı
Bu yüzden üretken işleri bırakıp zamanın belli bir yüzdesini ayırarak “token kullandığımı göstermek için AI kullanmak” zorundayım. İş yükü aynı ya da daha fazla, ama AI tanrılarını memnun etmek için gerçek işe ayırabildiğim zaman %N azalıyor
Benim deneyimime göre tükenmişliğin üç büyük nedeni var. Birincisi, en büyüğü çoklu görev. Sık sık farklı işler yapan 3-5 ajan penceresi arasında gidip gelmek gerekiyor ve her tur birkaç dakika sürünce bu aşırı yorucu oluyor
Kodlama ajanları çağından önce çoğu geliştiricinin tek bir şeye 2 saatten uzun süre odaklanma şansı vardı muhtemelen. Şimdi kodlama ajanları ele alınan teknoloji yığınının genişliğini artırdı ama derin çalışmaya ayrılabilen bant genişliğini artırmadı
İkincisi, ajanlar işleri çakışmadan yürütmekte iyiler ama doğru kodu üreteceklerinin garantisi yok. Temel bilgiye sahip bir insan uzmandan oldukça farklılar
Üçüncüsü, AI tarafından üretilmiş düşük kaliteli PR yığınlarını incelerken hayal kırıklığı yaşıyorum. Dikkat sınırlı bir kaynak. Enerjimi başkalarının işine bu kadar harcamak istemem ama daha fazla özen göstermediğimde, insan yazarların dikkatli düşüncesi ve tasarımı olmadan üretilmiş sorumsuz AI kodu tüm projeyi hızla bozuyor. Özensiz insanlarla çalışmak zaten zor, ama kodlama ajanları çağında onlar 10 kat fazla çöp üretiyor, bu yüzden 10 kat daha acı verici; ayrıca bu, kolayca zorla çözülemeyen bir ekip kültürü sorunu
Opus çıktısını saatlerce okuyunca hafifçe bedenen hasta gibi hissetmeye başlıyorum. Bu yazı bana gerçekten dokundu
Takıma da şikayet etmeye başladım; en azından agent kurallarına kişisel bir stil kılavuzu ekleyip em dash kullanımını, “X değil Y” tarzı ifadeleri, isimlerin önüne uzun uzun sıfat dizmeyi, bir de
landsözcüğünü tamamlanma anlamında kullanmayı ortadan kaldırmak lazım. Umarım bu, olgunlaşmamış LLM’lerin sadece geçici bir evresidirBir insan olarak gate’in açılıp kapanabilen, kilitli ya da kilitsiz olabilen ve ötesindeki yolun geçilebilir de geçilemez de olabileceği bir “kapı” olduğunu bilirsin. Sırf bir gate var diye onun açık mı kapalı mı olduğunu anlayamazsın
Ama bot dilinde gate sadece geçilemeyen, sert bir engel anlamına geliyor. Çit, duvar, hatta lav hendeği gibi kullanıyorlar
Oysa gate aslında içinden geçilsin diye tasarlanmış bir şey; ama bot aynı kelimeyi geçilmesi amaçlanmayan engeller için de kullanıyor. Gerçek hayatta onlarca yıl gate ile uğraşmış biri olarak bu bana yanlış kullanım gibi geliyor. Normalde kapalı bir gate’e rastlarsan açar ve geçersin
Botlara o kelimeyi kullanmamalarını söylesen bile bazen görmezden geliyorlar. Bugün aklıma takılan sorunlu kelime gate oldu; dün başka bir kelimeydi, yarınsa bambaşka bir kelime olacak
Genel örüntü, en başından beri yerli yerinde olmayan tekrarcı ve sinir bozucu düşük seviye jargon
“Sadece sözleşmeli çalışanların Nijerya usulü İngilizcesi” açıklamasının aksine, modeller sanki pekiştirmeli öğrenme baskısı altında aşırı kısa, aşırı biçimlenmiş kendilerine özgü bir lehçe geliştiriyor. Giderek daha çok kod gibi yazıyorlar ama burada kastettiğim şey bilgisayar kodu değil. Kelimeler, insanlar için taşıdıkları anlamla tam olarak aynı şeyi ifade etmiyor
arc landterimi Phabricator yüzünden zihnime kazınmış durumda; yani bu ifadenin LLM’lerden önce var olduğunu biliyorum, ama yine de deli gibi sinir bozuyorBu tür dilsel kaymalar geri döndürülemez. LLM girdisini %100 filtreleyebilsek bile, insanlar kendi kendilerini daha sık “land” demeye alıştırıyor
Şu an sadece LLM kullanan biriyle bir proje yapıyorum ve bu yorucu, zihinsel olarak tüketici
Bir şeye geri bildirim verince gelen cevap sadece “Claude’a söyleyeyim” oluyor. O kişi bütünün nasıl çalıştığını anlamıyor ve kodun büyük kısmı da bunu yansıtıyor
Birkaç gün önce yerel ortamı kurmayı ve environment variable ayarlamayı bile bilmediği için demo modunu hardcode etti. Claude’un bunu neden bilmediği de kafa karıştırıcı ama belki de prompt meselesidir
Ben LLM kullanımını sınırlamaya çalışıyorum; kullansam bile sadece aşırı spesifik işler için kullanıyorum. Bende işe yarayan tek yöntem bu
Şirketlerin AI kod üretimini nasıl bu kadar agresif biçimde ittiğini dürüstçe anlamıyorum. Küçük projelerde bile proje kavrayışı çok hızlı geride kalıyor
Şimdiyse LLM ile kod yazma, meraksız insanları teşvik edip derin düşünenleri cezalandırdığı için bu tip insanlar ayakta kalabiliyor
Buna karşılık bir arkadaşım bir şeyler inşa etmek için agent token’larına günde 10 bin dolar harcıyor. Çok zeki biri ve eski bir geliştirici, yani basit bir AI psikozu falan değil
Hâlâ anlamaya çalışıyorum. Tabii bende 10 bin dolar yok
Gerçekten çok yorucu. LLM’lerle çalışmaya başladıktan sonra tek başına çalışan bir geliştirici olarak çıktım kolayca 20 kat arttı. Eskiden tek başıma üstlenmek için fazla iddialı olacak müşteri projelerini bile bitiriyorum
Eski kod tabanlarına, eskiden aylarca sürünen ya da daha da uzun süre planlama aşamasında kalan özellikler giriyor. Genel kalite de çok yükseldi, test kapsamı da daha eksiksiz ve açıkçası daha iyi
Kişisel projeleri de inanılmaz bir hızla geliştiriyorum. Roller tersine döndü; ajana sanki müşteri benmişim gibi davranıyorum, ajan da sanki benmiş gibi hareket ediyor. Tabii ben daha teknik bir müşteri gibi mimari yön veriyorum. Ajanın yaptığı uygulama ve araçları her gün kullanıyorum ve kendi yaptığım araçlar sayesinde SaaS aboneliklerini de iptal ettim
Araç çağrılarını izlerken temel komut satırı araçlarını daha iyi öğrenmem gerektiğini hissettim, bu yüzden her gün biraz ilerleyeceğim bir öğrenme planı da yaptım. İlk vim ve tmux kullanmaya başladığımda ne yaptığımı bilmeden eklediğim eski ayarlara da tekrar bakıyorum
Teoride üretkenliği eski seviyede tutup daha fazla kitap da okuyabilirim ama mümkün görünmüyor. “İş azalacak” vaadinin aksine gerçeklik, üretkenliğin ve beklentilerin yükseldiği devasa bir geçiş dönemi gibi hissettiriyor ve sanayi devrimi uygun bir benzetme gibi geliyor
Beklentilerdeki artış küçük ve büyük şekillerde oluyor. Ajan veri sunumunu o kadar iyi parlatıyor ki, eskiden epey zaman alacak derli toplu ve görsel olarak etkileyici raporları artık doğal olarak gönderiyorum
Ama yorgunum. Fable’ın abonelikle sunulduğu kanal API-only hale gelmeden önce mümkün olduğunca çok işi aradan çıkarmak için tam gaz gidiyorum. İnsanların nasıl bu kadar çok token harcadığını da anlamıyorum. Neredeyse hiç uyumayıp olabildiğince fazla kodu Fable’a vermeme rağmen 20x max plan sınırına bile pek yaklaşamıyorum
Daha sakinleşince yavaşlayacağımı kendime söyleyip duruyordum ama şimdi 12’sine kadar uzatıldı ve pencere de sıfırlandı, böylece birkaç gün daha backlog temizleyebileceğim. Sabah uyanır uyanmaz gözden geçirebilmek için robotları gece boyunca meşgul bırakmam gerekiyormuş gibi hissediyorum. Telefondan ajana talimat vermek de bana tuhaf geliyor
Dışarıdan bakınca bu, değirmende makinist olarak çalışan babama benziyor. İşinin büyük kısmı makinelerin çalışmasını izlemek, bozulunca da tamir etmekti ve zamanın %90’ında her şey sorunsuz gidiyordu
Elle çalışmaktan makine gözetmeye geçmek gerçekten çok sıkıcı görünebilir ve bu açıdan buradaki AI tepkisini anlayabiliyorum
İşte AI tarafından üretilen tonla kodu gözden geçirmenin yorucu olduğunda herkes hemfikir olabilir ama neden bu tatsız durumu tüm güne yaydığını merak ediyorum
Ya da sadece elle kod yazarsın, işler karmaşıklaşınca beyaz tahta başında düşünürsün ve yazılım mühendisliğinin son 50+ yıldır yaptığı gibi daha insani bir tempoda yavaş yavaş burnout yaşarsın
Bunun neden bir seçenek olduğunu anlamıyorum. Ciddi ciddi soruyorum: Biraz olsun özsaygın var mı? “Ama patronum AI kullanmamı bekliyor” bahanesinin geleceğini tahmin ediyorum. Çoğu kişi gerçek burnout’u hiç yaşamamış belli ki. Geldiğinde çok büyük bir acı verecek. Kendini makineye çevirmemelisin. İnsan makine değildir
Burnout yaşamıyorum ama yazarla benzer şekilde çalışıyorum. LLM’in ürettiği kodu gözden geçirme akışını, doğrudan kendim yazmaktan daha hızlı hale getiren bir workflow hâlâ kuramadım
Bu ikilemden çıkmanın aslında sadece iki yolu var. Ya üretilene körü körüne güveneceksin ya da mümkün olan tüm senaryoları doğrulayacak anormal derecede geniş bir birim testi paketi oluşturacaksın
O yüzden iş mantığını kendim yazıyorum, geri kalan birçok kısmıysa LLM’e bırakıyorum. Boilerplate de buna dahil
Adversarial testing, AI’ı rayda tutmanın ve okunması gereken değişiklikleri temiz, kolay incelenebilir hale getirmenin en iyi yolu. TDD tarzında “bu bug’ı gösteren bir test yaz” demek de buna dahil, sonradan “yeni testlerle bu patch’in yanlış olduğunu kanıtla” demek de
Daha iyi yöntem, daha güçlü tip sistemine sahip bir dil kullanıp işi sıkı şekilde kilitlemek olur ama testler her dilde yazılabilir. TDD geçmişi ve “önce tüm testleri yaz” yaklaşımı, AI ile çalışırken gizli sos gibi geliyor
Testler, şablonlar, bazı UI parçaları ve süsleme işleri gibi şeyleri göz gezdirerek zaman kazanıyorum. Ama backend sistemine giren kodun çoğunu okumak gerekiyor
Bana göre LLM büyüsüne en çok heyecanlananlar, eskiden kod yazamayan insanlar. Çünkü artık en iyi kod olmasa da çalışan bir şey ortaya koyabiliyorlar. Çalışan kod üretebildikleri için bunun herkesi daha iyi hale getireceğini düşünüyorlar ama ortaya çıkan çöpün bakım yapılabilir olup olmadığını, hatta baştan çöp olup olmadığını bile bilmiyorlar
LLM tükenmişliği yaşamamın nedeni, üst seviye modellerin bariz biçimde iğdiş edilip opak şekilde düşürülmesiyle uğraşmak zorunda olmam.
Daha 12 ay öncesine kadar yapay zeka şirketleri, sıradan modellerden en iyi sonucu sıkıp çıkarmaya kafayı takmıştı.
Ama üst seviye modeller gelişince, aynı şirketler şimdi fazla belli etmeyecek şekilde hesaplama miktarını, yani tek bir çıktı üretmenin maliyetini olabildiğince düşürmeye odaklandı.
Son 36 ayda çıktı kalitesinin eğrisi üstel olarak yükseldi ama artık neredeyse dümdüz oldu.
Bence sonuçların duraklamasının nedeni modellerin 1 yıl öncesine göre çok daha az yetenekli olması değil. Aşırı büyümüş kullanıcı tabanının devasa işlem maliyetinden tasarruf etmek, kullanıcının açık talimatlarını izleme ve en iyi sonucu üretme hedefinin önüne geçmiş durumda. Özellikle de o talimatlara uymak daha fazla işlem maliyeti gerektiriyorsa.
Eskiden düşünme modunda 7 dakikadan fazla kalabiliyordu. Mesela “bu iddia için kaynak bul” dediğimde arıyor, analiz ediyor ve sorgusunu kendi başına ayarlıyordu. Bugünlerde “Pro” modunda bile ne kadar zorlarsam zorlayayım 30 saniyeden fazla çalıştıramıyorum ve sadece genel geçer cevaplar veriyor.
Opus 4.5 anı daha geçen kasımdaydı ve o sırada ajan tarzı kodlama ile çoğu kodlama CLI aracı gerçekten birinci sınıf seçeneklere dönüştü. Bu muazzam bir paradigma değişimi. GPT-5 daha çıkmamıştı bile ve çoğu kişi 4o kullanıyordu. Şu an sunulanlar kodlama konusunda 4o'dan çok daha iyi.
Açıkça düşmanca değiller ama her gün aynı hataları tekrarlayan, sürekli elinden tutup yönlendirmen gereken ve içtenlikle üzgün bile olamayan iş arkadaşlarıyla kapana kısılmış gibi hissettiriyor.
Bilgisayarlarla çalışıyoruz diye sosyal zarar görmüyor değiliz. Bu durumda belki de buna yarı-sosyal zarar demek daha doğru olur.
Bu, ciddi ciddi programlamayı bırakmayı düşünmemin nedeni.
Programlamaya başlamamın nedeni programlama problemlerinin ilginç olmasıydı. Ama sorunlar “Fransa'da hesap makinesi neden 1 fark veriyor bunu bul”dan “bu LLM'in sevimli emojileri her yere saçmasını engelle”ye dönüştüyse, belki de kariyer değiştirme zamanı gelmiştir.
Son zamanlarda gazlı suya sardım ve kendi sürekli karbonasyon sistemimi yapıyorum. Su kaynağından musluğa kadar ESP32 ile kontrol edilen pompa, basınç, su seviyesi ve soğutma fanını içeren komple bir kurulum.
Sepette yaptığım birçok hatayı yakaladı. Mesela homebrew tarafı 8mm hattı seviyor ama su arıtma sistemleri 9.5mm kullanıyor gibi. Basit bir aç-kapa pompa ve şamandıra anahtarından neredeyse tam bir PLC sistemine yakın sürüme kadar optimize ettim. “Daha deneyimli biriyle” konuşuyormuş gibi çok sayıda iterasyon elde ettim. Parçalar gelir gelmez bir saat içinde monte edip yazılımı da çalıştırabilirim.
Para kazandırmıyor ama gerçekten çok keyifli.
İstenmeyen çıktıları engellemek için hack üstüne hack yığmak yapabileceğin en iyi şey ama sonunda LLM talimatları izlemek istemediğine karar verirse,
*IMPORTANT*ekleyip bir sonraki modelin düzeltmesini ummaktan başka pek bir şey kalmıyor.Bu deneyim, kontrol edemediğin ve belgelendiği gibi çalışmayan bir harici API ile çalışmaya çok daha yakın. Bunlar geçmişte de programlamanın en sinir bozucu kısmıydı ama en azından eskiden gerçek uygulamayı tersine mühendislik yapıp bug'ları dolanabiliyordun. Şimdi ise o “sınır” her gün rastgele değişiyor, bu da onu bile imkansız hale getiriyor.
CLAUDE.mdya daAGENTS.mdiçine basit bir stil rehberi koymak ya da sadece “emoji yasak” yazmak 5 saniye sürer ve bu, LLM çıktısını çok daha katlanılabilir hale getirir. Yasaklı kelime ve ifadeleri içeren basit bir stil rehberi de yardımcı olur.Elbette yanlış varsayımları bu çözmez. Onları da eski usul dikkatlice okuyup eleştirel düşünerek yakalamak gerekir.
Ama veri analizi ya da modelleme istediğimde emojiler her yere saçılıyor.
Son 1 yılda GitHub'da gördüklerimi düşününce, bir LLM'e proje README'sini ya da dokümantasyonunu gözetimsiz yazdırmayı aklımdan bile geçirmem.