11 puan yazan GN⁺ 5 시간 전 | 2 yorum | WhatsApp'ta paylaş
  • Ajanların yazdığı kod insanlar etrafında sürekli birikirken, geliştirme hızını sınırlayan unsur kod üretme yeteneğinden, sistemi takip edip bir sonraki değişimi tasarlayabilen insan anlama hızına kayıyor
  • Kodu anlamanın amacı, sonucu onaylamak ya da reddetmekten ibaret bir doğrulama değil; peş peşe gelen ajan çalışma döngülerinde bir sonraki fikri önermek ve yaratım sürecine katılmak
  • Ham kod farkları yerine arka plan bilgisi/değişiklik hedefi/etkileşimli diyagramlar/anlatımsal kod farklarını bir araya getiren kod açıklama belgesi önce okunursa, değişikliğin yapısı ve niyeti daha hızlı kavranabiliyor
  • Açıklama belgesindeki quiz'ler ve yürütme sürecini doğrudan manipüle eden mikrodünyalar, ajanın insan yerine karar vermesine değil, insanın sistemin durum değişimlerini ve iç işleyişini deneyimlemesine imkân veriyor
  • AI yalnızca insanı döngüden çıkaran bir otomasyon aracı olarak değil, anlamaya yönelik araçlar ve simülasyonlar üretmek için kullanılırsa, insanlar ve ekipler aslında döngüye daha derin katılabilir

Kod üretim hızına yetişemeyen insan

  • Ajanların yazdığı kod yığınları tek bir kişinin etrafında giderek yükseliyormuş gibi, üretilen kod miktarı artıyor ama insanların bunu anlama hızı aynı oranda artmıyor
  • Tüm kod farklarını satır satır okuma yöntemiyle ajanın çalışma hızına yetişmek zor
  • Kodu anlamanın, ham kod farklarının dışında da çeşitli yolları var
    • Sistemi ve değişiklikleri öğreten kod açıklama belgeleri
    • Gerçekten anlaşılıp anlaşılmadığını ölçen quiz'ler
    • İç işleyişi doğrudan manipüle ederek öğrenmeyi sağlayan mikrodünyalar
    • Tüm ekibin aynı zihinsel modeli kurmasını sağlayan paylaşılan alanlar

Anlamak doğrulama için değil, katılım içindir

  • İnsanların kodu neden anlaması gerektiği sorusuna sık verilen cevap, ajanın yaptığı işi doğrulamak içindir
    • Spesifikasyona uyup uymadığını kontrol etmek
    • Yapının uygun olup olmadığını değerlendirmek
    • Sonunda onay/red kararı vermek
  • Sunum materyalinde bu, başparmağı yukarı ya da aşağı çeviren ikili bir yargı olarak tasvir ediliyor
    • İnsanın rolü yalnızca doğrulama olarak görülürse, anlama da sonucun geçip geçmediğini belirleyen bir sürece indirgeniyor
  • Ancak ajanlar da kendi ürettikleri sonucu doğrudan çalıştırıp test ederek hata bulan öz doğrulama yeteneklerini sürekli geliştiriyor
  • Doğrulamayı ajanlar daha iyi yaptıkça insana ne kalıyor sorunu ortaya çıkıyor
  • Alternatif ise anlayarak katılmak
    • Ajanın ne yaptığını bilmek, insanın yaratıcı sürecin etkin bir üyesi olarak kalmasını sağlıyor
    • Sistemi anlamak, yalnızca mevcut sonucu değerlendirmekle kalmayıp bir sonraki adımda neyin değiştirileceğini düşünmeyi mümkün kılıyor

Proje tek bir döngü değil, sayısız döngüden oluşur

  • Gerçek projeler, ajana bir kez talimat verip sonuç almak gibi tekil bir döngü değildir
  • Hedef belirleme/uygulama/doğrulama/düzeltme/genişletme şeklinde ilerleyen sayısız tekrar döngüsü birbirine bağlıdır
  • Her tekrarda insanın sahip olduğu sistem anlayışı, bir sonraki fikrin kalitesini ve kapsamını belirler
  • Zihinde yeterli kavram ve yapı olduğunda şu sorular akıcı biçimde ele alınabilir
    • Neyi eklemek ya da kaldırmak gerekir
    • Hangi yapı değiştirilmelidir
    • Mevcut uygulamadan hangi yeni olasılıklar doğmuştur
  • Anlayış yetersizse, ajanın ürettiği sonuca “kabaca doğru görünüyor” diye tepki verilebilir ama projenin nereye gitmesi gerektiğine öncülük etmek zorlaşır

Anlamayı erteledikçe biriken bilişsel borç

  • Sistemi anlamadan ajanın çıktıları art arda kabul edilirse, kısa vadede hızlı ilerlemek mümkün olabilir
  • Ancak teknik borcun ileride değişiklik maliyetini artırması gibi, anlamayı atlayarak yapılan iş de bilişsel borç (cognitive debt) bırakır
  • Bilişsel borç biriktikçe projeye katılan kişiler genel akışı kaçırmaya başlar
    • Kodun neden bugünkü yapıya geldiğini anlamak zorlaşır
    • Yeni gereksinimlerin nereye bağlanacağını değerlendirmek zorlaşır
    • Ajanın önerdiği bir sonraki değişikliğin geçerliliğini tartışmak zorlaşır
  • Yapay zeka çağındaki sorun, kodun üretilememesi değil; insanların üretilen sistem hakkında yeterli kavramsal anlayışa sahip olmamasıdır

Eğitim yöntemlerini kod anlamaya uygulamak

  • Hızla değişen yapay zeka çalışma ortamında insan anlayışı inşa etme sorunu, eğitimin uzun süredir uğraştığı sorunlara benziyor
  • Yeni olguları sadece aktarmak yerine arka plan bilgisi/sezgi/pratik/geri bildirim birlikte verildiğinde gerçek anlama oluşuyor
  • Kodu anlamaya da eğitimde gelişen yöntemler uygulanabilir
    • Ayrıntılı uygulamadan önce arka plan ve sezgi sağlamak
    • İçeriği okuduktan sonra hatırlatıp cevap verdirmek
    • Soyut kuralların doğrudan manipüle edilebildiği bir ortam sunmak
    • Başkalarıyla aynı kavramları ve söz dağarcığını paylaşmayı sağlamak

Değişiklikleri öğreten /explain-diff

  • /explain-diff, ajanın yaptığı değişiklikleri yapılandırılmış bir açıklama belgesine dönüştüren bir skill
  • Çıktı HTML/Markdown/Notion sayfası olarak alınabiliyor; Notion belgesi de ekip üyelerinin yorum yapıp birlikte tartışabildiği bir iş birliği çıktısı olarak kullanılabiliyor
  • Basit bir kod değişikliği listesi değil, insanların değişiklikleri öğrenmesi için tasarlanmış açıklayıcı materyal üretiyor
  • Oyun ekranındaki perspektifi değiştiren örnekte, koda doğrudan geçmek yerine şu sıra izleniyor
    • Önce mevcut oyun motorunun render yöntemi açıklanıyor
    • “2D çizim tekniğiyle bahçeyi üç boyutlu göstermek” şeklindeki değişiklik hedefi sunuluyor
    • İzometrik projeksiyonun ne olduğu açıklanarak değişikliğin görsel ilkesi kavratılıyor
    • Ardından gerçek uygulama koduna geçiliyor

Önce arka plan bilgisini öğretmek

  • İyi bir açıklama, “ne değişti”den çok “değişmeden önce ne vardı” ile başlar
  • Mevcut oyun motorunun koordinat sistemi ve render yapısı bilinmezse, yalnızca yeni perspektif kodunu okuyarak bile değişikliğin gerekçesini anlamak zordur
  • Açıklama belgesi, ajanla aynı arka plana sahip olmayan kişilerin konuşmaya katılabilmesi için önce mevcut sistemin yapısını tamamlar
  • Bu basit bir özet değil, insanı mevcut proje bağlamına geri getirme sürecidir

Ayrıntılı uygulamadan önce sezgiyi kurmak

  • Kodd an önce değişikliğin özünü tek cümleyle açıklamak, ayrıntılı uygulamanın hangi hedefe yöneldiğini göstermeyi sağlar
  • Bahçeyi üç boyutlu gösterme örneğinde, izometrik projeksiyonun formülleriyle başlamak yerine düzlemsel bir çizimi üç boyutlu gibi göstermek şeklindeki görsel hedef önce aktarılır
  • Arka plan ve hedef anlaşıldıktan sonra kod parçalarına bakıldığında, her hesaplamanın ve dönüşümün toplam sonuç içindeki rolünü bağlamak kolaylaşır
  • Amaç, insanı ayrıntılı kodun pasif bir okuyucusuna değil, değişiklik niyetini anlayan eşit bir katılımcıya dönüştürmektir

Etkileşimli diyagramlarla koordinat değişimini deneyimlemek

  • Sadece statik görseller göstermek yerine, bahçe üzerindeki kayayı doğrudan sürükleyip hareket ettiren etkileşimli diyagramlar kullanılıyor
  • Kaya taşındığında ekrandaki konumla iç koordinatlar birlikte değişiyor ve izometrik projeksiyondaki koordinat dönüşümü görülebiliyor
  • Sadece formül ya da kod okumaya kıyasla, giriş ve çıkış ilişkisini doğrudan manipüle ederek sezgi oluşturmak mümkün oluyor
  • Notion sayfasına etkileşimli HTML gömülerek kod açıklama belgesinin kendisi küçük bir çalışma ortamına dönüştürülebiliyor
  • AI, yalnızca açıklama yazmakla kalmayıp anlamak için gereken görselleştirme ve etkileşim araçlarını da üretebiliyor

Ham kod farkını anlatımsal kod farkına dönüştürmek

  • Tipik kod farkları, değişen dosyaları dosya adı sırasıyla listeler
    • Dosyalar arasındaki ilişkiyi açıklamaz
    • Değişikliğin amacını söylemez
    • Hangi sırayla okunması gerektiğine dair yol göstermez
  • Anlatımsal kod farkı (literate diff) ise değişiklikleri bir yazı akışı gibi yeniden düzenler
    • Önce değişikliğin amacını sunar
    • Dosya ve fonksiyonları, anlamaya uygun sırayla açıklar
    • Aralara sadece gerekli kod parçalarını yerleştirir
    • Çevresel bağlam ile uygulama tercihleri arasındaki ilişkiyi birlikte gösterir
  • Ham kod farkı malzemeleri olduğu gibi yığmaksa, anlatımsal kod farkı değişim sürecini tek bir hikâye olarak kurgulamak gibidir
  • Açıklamayı önce okuyup sonra ham kod farkını incelerseniz, her kod parçasının neden orada olduğunu bilerek okur ve inceleme hızını artırırsınız

AI'ın ürettiği açıklamayı kâğıttan okumak

  • Tamamlanan açıklama belgesi bir kod açıklama paketi gibi kullanılabiliyor
  • Ham kod farkları da okunmaya devam ediliyor ama her zaman önce açıklama belgesi okunuyor
  • Yoğun odak gerektiğinde belge yazdırılıp kafede kâğıttan da okunabiliyor
  • AI ile programlama gibi etkileşimli bir faaliyet, tersine derin odak sağlayan statik bir kâğıt rapora dönüşebiliyor
  • Esas mesele en yeni arayüzü kullanmak değil, bilgiyi insanın gerçekten anlayabileceği biçime dönüştürmek

Okumuş olmak ile gerçekten anlamak arasındaki fark

  • Açıklama belgesi iyi kurgulansa bile, okuma eylemi tek başına anlamayı garanti etmez
  • İnsanlar, cümleleri gözleriyle takip etmiş olmalarını içeriği hatırladıkları ya da anladıkları şeklinde yanlış yorumlamaya yatkındır
  • Fikirler, Andy Matuschak'ın “books don't work” yazısından ve Andy Matuschak/Michael Nielsen'ın Quantum Country çalışmasından alınıyor
  • Quantum Country, yazının içine aralıklı tekrar quiz'leri yerleştirerek okurun içeriği doğrudan hatırlamasını sağlıyor
  • Aynı yaklaşım kod açıklama belgesine uygulanarak, sona değişikliklerle ilgili beş etkileşimli soru yerleştiriliyor

Quiz'ler AI döngüsünün hız dengeleyicisidir

  • Kodu başkasına göndermeden önce açıklama belgesindeki quiz'i geçme kuralı kullanılıyor
  • Başkasının yazdığı kodu incelerken de aynı ölçüt uygulanıyor
  • Quiz, bilgiyi değerlendiren ek bir özellik değil, bir hız denetim mekanizmasıdır
  • AI ile çalışırken uygulama/düzeltme/yeniden üretim döngüsü insanın anlama hızından daha hızlı ilerlemeye yatkındır
  • Quiz, her döngüde şu soruları mekanik olarak gündeme getirir
    • Gerçekte neyin değiştiğini açıklayabiliyor muyum
    • Neden bu yapının kullanıldığını anlıyor muyum
    • Sonraki değişikliği etkileyen kısıtları biliyor muyum
  • Geçilemezse, işin hızını düşürüp anlayışı tamamlamak gerekir; böylece insan yaratıcı bir katılımcı olarak kalabilir

Seymour Papert'in Mathland'inden gelen mikrodünyalar

  • İkinci yöntem olan mikrodünyalar, eğitimci Seymour Papert'in fikirlerinden yola çıkıyor
  • Papert, Fransızca öğrenmek için Fransa'da yaşamak gerektiği gibi, matematik öğrenmek için de matematiğin doğal biçimde işlediği bir Mathland içinde yaşamak gerektiğini savunuyordu
  • Bu yaklaşımda çocuk, açıklamaları pasif biçimde dinlemek yerine merakını izleyerek ortamı keşfeder ve matematiksel kavramları doğal olarak edinir
  • Koda uygulandığında bu, sadece sistemi açıklayan belge vermek değil; insanın içine girip çalışma biçimini doğrudan deneyimleyebileceği bir ortam oluşturmak anlamına gelir
  • Mikrodünya, gerçek production sisteminin tamamını aynen açığa çıkarmaktan ziyade, belirli ilke ve durum değişimlerini gözlemlemeyi kolaylaştıran küçük bir dünyadır

Prolog interpreter'ını zaman ekseninde keşfetmek

  • Bir Prolog interpreter geliştirirken içeride neler olduğuna dair sezgisel kavrayış elde etmek zordu
  • Ajanla birlikte, yürütme sürecini adım adım keşfetmeye yarayan özel bir debugger yapıldı
  • Bu debugger üzerinde doğrudan şunlar yapılabiliyor
    • Çalışma zamanında ileri geri gitmek
    • Mevcut stack'te hangi değerlerin olduğunu incelemek
    • Her adımda hangi kuralın değerlendirildiğini görmek
    • Belirli bir kuralın doğru uygulandığı anda not bırakmak
  • Yalnızca tamamlanmış sonuca bakmak yerine, mantıksal dilin yürütülüşünün zaman içinde nasıl geliştiği doğrudan takip edilebiliyor
  • Debugging işi ajana bırakılırsa sorun çözülebilir; ancak insanın debugger'ı doğrudan manipüle etmesi yürütme yapısına dair anlayış oluşturur

Ajanın debug etmesi ile anlama araçları üretmesi arasındaki fark

  • “Ajan sorunu bulup düzeltir” ile “ajan, insanın sorunu keşfedeceği araçları üretir” farklı sonuçlar doğurur
  • İlki sonucu hızlı verir ama iç süreçlere dair insan anlayışı neredeyse hiç artmayabilir
  • İkincisi ise insanın çalışma durumunu inceleyip hipotez kurduğu ve sonucu doğruladığı bir keşif süreci sunar
  • Kod yazmanın bir bölümünü ajana devrederken bile, kritik düşünme ve keşif işini insan doğrudan yapabilir
  • Bu, ajanın rolünü doğru cevabı veren bir araçtan anlama ortamı tasarlayan bir araca genişleten bir yaklaşımdır

Web sitesi migration'ını oyun gibi yürütmek

  • Kişisel web sitesini bir framework'ten diğerine taşırken Claude bir otomasyon script'i yazdı
  • Yeni framework'e aşina olunmadığı için script okununca bile bunu “kabaca doğru görünüyor”dan öte değerlendirmek zordu
  • Bunu çözmek için Claude'dan, migration işini doğrudan yürüten video oyunu biçiminde bir komuta merkezi yapması istendi
  • Bu komuta merkezinde şu süreçler görsel olarak izlenebiliyor
    • Düğmeye basarak migration adımlarını teker teker çalıştırmak
    • Eski site ile yeni siteyi ekranın iki yanında yan yana göstermek
    • Her adımda yeni sitenin görünümünün nasıl değiştiğini görmek
    • Dosya ağacının hangi sırayla değiştiğini izlemek
  • Tüm dönüşümü tek seferde çalıştırmak yerine, yeni sitenin adım adım canlanma süreci doğrudan deneyimleniyor
  • Tüm dosyaları elle taşımaya benzer bir anlayış elde edilirken, gerekli iş ve gözlem ortamı önceden hazır olduğu için süreç çok daha hızlı ilerleyebiliyor

Kodu anlamak için kod üretmek

  • Ajanların yazabildiği kodlar yalnızca ürün özelliği ya da otomasyon script'i ile sınırlı değil
  • İnsanların başka kodları anlamasına yardımcı olmak için şu tür geçici araçlar da üretilebilir
    • Çalışma görselleştirme araçları
    • Adım adım debugger'lar
    • Sağ-sol karşılaştırma ekranları
    • Dosya ağacı değişim göstergeleri
    • Etkileşimli kavram açıklamaları
    • İşi küçük adımlara bölen komuta merkezleri
  • Bu araçların uzun vadede sürdürülen ürün kodu olmaması, onların değerini azaltmaz
  • AI ile kod üretme maliyeti düştükçe, belirli bir kişi ve belirli bir görev için hazırlanmış tek kullanımlık öğrenme ortamları da pratik hale geliyor

Ekip içinde anlayış birlikte kurulmalı

  • Yalnızca bireyin sistemi anlaması, ekip çalışması için yeterli değildir
  • Ekip üyelerinin aynı zihinsel modele sahip olması gerekir ki kısa ifadelerle bile aynı yapı ve davranış canlandırılabilsin
  • Paylaşılan söz dağarcığı ve görseller olduğunda fikirleri doğaçlama biçimde alışveriş etmek ve yeni yönleri birlikte geliştirmek kolaylaşır
  • Tersine, herkes kendi ayrı ajanıyla izole biçimde çalışırsa şu sorunlar doğar
    • Aynı terimler farklı anlamlarda kullanılır
    • Teknik planın varsayımları paylaşılmaz
    • Çıktılar birleşse bile anlayış birleşmez
  • Ekibin AI kullanımı, yalnızca bireysel verimliliği artırma değil, ekip genelinde paylaşılan anlayış kurma problemidir

Ajanla insanın işini aynı paylaşılan alanda bırakmak

  • Notion'da Claude ve Cursor ajanları sayfa içinde çalıştırılabiliyor
  • Ajanın hazırladığı teknik planlar varsayılan olarak iş birliğine açık sayfalar üzerinde oluşturuluyor
  • Ekip üyeleri, ajanın ürettiği planı ayrı bir kanala kopyalamadan aynı yerde hemen inceleyebiliyor
    • Belirli cümlelere yorum bırakmak
    • Uygulama tercihleri hakkında soru sormak
    • Planı birlikte düzenlemek
    • Ekip tartışmasını ve ajanın çıktısını aynı bağlamda tutmak
  • Ajanlar bireysel silolarda çalışmak yerine, insanlar ve ajanlar ortak bir belge etrafında düşünmeye başlıyor
  • Paylaşılan alan, sonuçların saklandığı bir klasör değil; ekibin birlikte zihinsel model kurduğu bir yerdir

Bilgisayarın amacı başından beri artırmaydı

  • Kodu anlamaya yönelik açıklama/quiz/mikrodünya meselesi yalnızca programlamayla sınırlı değil
  • İnsanlar bilgiye sadece sonucu doğrulamak için değil, dünyanın nasıl işlediğini anlayıp değişime katılmak için ihtiyaç duyar
  • Alan Kay yaklaşık 50 yıl önce bilgisayarı, kitaptan daha iyi bir yeni eğitim ortamı olarak tasarlıyordu
  • Dönemin çizimlerinde çocuklar tablet benzeri cihazlara bakıyor ama pasif biçimde video izlemiyor
    • Etkileşimli fizik simülasyonlarını manipüle ediyorlar
    • Oyun oynarken kodu doğrudan değiştiriyorlar
    • Değiştirdikleri kodun fiziksel hareketi nasıl etkilediğini gözlemliyorlar
  • Bilgisayar, statik bilgi aktaran bir makine değil; karmaşık kavramları hareket ettirip değiştirerek anlamayı sağlayan dinamik bir ortam olabilir

Sadece otomasyon değil, daha derin katılım

  • Öz, Dünya'ya bakan bir astronotun “Bilgisayarların amacı karmaşık kavramları anlamak için dinamik simülasyonlar oluşturmak mıydı?” diye sorduğu ve arkadaki astronotun “Her zaman öyleydi” diye cevap verdiği bir meme ile özetleniyor
  • Bilgisayarların ve AI'ın amacını yalnızca insan emeğini ortadan kaldırmaya indirgersek, insanlar sistemin dışına itilebilir
  • Buna karşılık AI'ı açıklama/simülasyon/mikrodünya/paylaşılan alan üretmek için kullanırsak, insanlar daha çok kavramı daha derin biçimde anlayabilir
  • AI simülasyon üretme maliyetini düşürdükçe, belirli bir kavramı öğrenmek için gereken özel ortamlar ihtiyaç anında üretilebilir hale geliyor
  • Amaç yalnızca insanı döngüden çıkarmak değil, insanın eskisine göre döngünün daha derinine girmesini sağlamak

İlgili yazılar

2 yorum

 
coremaker 4 시간 전

Darboğazı tamamen ortadan kaldırmak için

  • AI kullanılarak üretilen çıktılara duyulan güvenin bugünkünden daha yüksek olması ve bunun insanlar tarafından (patronlar, yöneticiler) hissedilmesi gerekir.
  • Belirli bir düzeyin üzerindeki riski göze alabiliyorsak, darboğazların önemli bir kısmının ortadan kalkacağını düşünüyorum. Bu yüzden riskin kontrol altında olduğu durumlarda, insan müdahalesi olmadan bunu aktif biçimde uygulamayı denemek de mantıklı olabilir.
  • Eğer Human In The Loop kaçınılmazsa, tamamen tek bir kişiye bağımlı bir süreç kurulmamalıdır. Süreç, kim gelirse gelsin yürütülebilir olmalı; duruma göre N kişinin devreye girebildiği bir yapı da kurulmalıdır.
  • Darboğazları fark etme becerisini yalnızca uygulayıcılar değil, yöneticiler ve patronlar da geliştirmelidir. Darboğazların çoğu, karar alma yoluyla ortadan kaldırılabilir ya da azaltılabilir.
  • Bu tartışmaları uygulayıcılar değil, yöneticiler ve patronlar yapmalıdır.
 
shakespeares 4 시간 전

İnsan bilişi ve bellek yapısı kısa süreli bellek ile uzun süreli bellek olarak ayrıldığı için, yapay zekanın kodlama hızını bu şekilde ne kadar artırmaya çalışırsak çalışalım, insanın arada kontrol ederek kısa süreli belleği biriktirmesinin bilişsel borç açısından en verimli yol olduğunu söylemek isterim.