öğrenmeyi optimize ederken yok etmek
Bu sayfada
Giriş
Doomscroll yaptığım günlerden birinde, bir babanın çocuğu için yapay zekayla geliştirdiği bir uygulamayı anlattığı şu tweet’e denk geldim. Uygulama aslında Fruit Ninja’nın matematik versiyonu. Anlattığına göre oğlu çarpım tablosunu anlamakta zorlanıyor (tek sorunumuzun bu olduğu eski güzel günler) ve babası da vibe coding ile böyle bir uygulama geliştiriyor.
İnternetteki hemen hemen her fikir gibi bu da birçok karşıt görüşü beraberinde getiren bir tweet olmuş. Bunların önemli bir kısmına, en azından bu spesifik senaryo için, ben de katılıyorum. Biri, bir çocuğun odaklanma becerisini dersler ve ödevler sırasında geliştirdiğini, zaten günün geri kalanında fazlasıyla maruz kaldıkları uyaranları ödev sürecine de taşımayı doğru bulmadığını söylüyor. Temelde bu fikre katılıyorum. Ama bu tartışma bana kendi öğrenme sistemlerimin nasıl değiştiğini ve hala işe yarayıp yaramadıklarını düşündürdü.
“70 milyon yıl geriye gidelim”
Düşündüğüm ana fikir, insanların yüzyıllardır birtakım kolaylaştırıcı araçlar olmadan bir şeyleri öğrenebilmiş olması. Bu güne kadar üretebildiğimiz ve koruyabildiğimiz bilgilerin hepsi tamamen insanların manuel çabalarıyla oldu. Yine de yüzyıllar öncesine gitmeye gerek yok, sadece 10 yıl önceki bir bilgisayar bilimleri öğrencisiyle bugünkünün teorideki öğrenme davranışlarını bile uzun bir liste ile karşılaştırabiliriz.
Bir kod parçasının yazılma senaryosunu düşünelim. 10 yıl önceki öğrenci, yapmaya çalıştığı şeyi anlar, yapmayı dener, yapamadığında bunu internette araştırır ya da sorardı. Soruyu doğru sormanın yolları bile vardı. Bugünkü, -eğer hala kod yazıyorsa- bu işi yapacak kod parçasını bir LLM’den doğrudan rica edecektir.
Benzer şekilde okunması gereken bir teknik kitap olduğunda, sanıyorum ki 10 yıl önceki öğrenci bu kitabı alır, belki tüm bölümleri belki gerekli kısımları okur, anlar ve sorularını meydana getirirdi.
Bununla beraber bugünkü öğrencinin örneğini inceleyelim:
Okumak istediği en son teknik kitabı (Designing Data Intensive Applications Second Edition) önce edinir. Sonra pdf’ini de edinir. Bu PDF’i NotebookLM’e yükler. Her chapter için bir özet ve objective list çıkartır.
Sonra chapterlardan birini okumaya başlar. Bu sırada aklına takılan bir cümleyi direkt LLM’e sorar. Bunu yaparken de soruyu anlaşılabilir, bağlamdan soyutlanmış hale getirme kaygısı gütmez çünkü LLM tüm bağlama zaten hakimdir. Soruyu anlamlı bir insan cümlesi haline getirmeye bile çalışmaz. Kurulabilecek en kısa cümlelerle yazar. Cevap yüklenirken boş beklemez, belki kitaptan bir cümle daha okur. Onu da anlamadığından bir soru daha sorar. İlk cevaptaki bir şeyi daha anlamaz, yeni bir sekmede bunu da sorar. Günün sonunda elinde daha sonra okunmak üzere kenara bırakılmış bir oturum, onlarca satırdan sonra anlaşılmamış birtakım teknik paragraflar vardır.
Bu hikayedeki kişilerden biri kurgu olmayabilir
Yapay zekalarla konuşarak yaptığımız bu çalışma ve öğrenme biçimi elimizden çok fazla becerimizi alıyor. Hatta direkt bu devrimle başlayanların bu becerileri kazanmasına bile izin vermiyor.
Soyutlama
Bilgisayar bilimleri küçük soyutlama problemlerinden oluşan devasa bir soyutlama problemidir. İşletim sistemi donanımı, uygulamalar işletim sistemini soyutlar. Kullanıcı arayüzleri işletim sistemlerine verilen karmaşık komutları soyutlar. Bilgisayar bilimi bir problemi, bağlamından bağımsız olarak tek başına ele alabilmeyi gerektirir ve bilgisayar bilimcilerinin de en büyük yeteneklerinden birisi budur.
“Bu tabloda son 30 günün verisini almak neden giderek yavaşlıyor?” sorusu, “büyüyen veri setinde zaman aralığına göre sorguyu nasıl verimli hale getiririm?” problemine dönüştürülebilmelidir.
“Todo app yaparken nasıl görev silinir” sorusu, “bir array’den item nasıl silinir” şeklinde soyutlanabilmelidir.
“İki kullanıcı aynı anda son ürünü sepete eklediğinde biri ürünü alamıyor” sorusu, “eşzamanlı erişimde race condition” şeklinde soyutlanabilmelidir.
Gerçek bir insana ya da arama motoruna soru sorarken asıl problemi bağlamından bağımsız hale getirmek, onu soyutlamak ve öyle sormak zorundayız. Biz bütün contexte hakim olduğu için aklımıza gelenleri soyutlamadan olduğu gibi LLM’lere verebiliyoruz. Bu da kullanılmayan tüm kaslar gibi, zaman içinde bu kasımızı zayıflatıyor. Problemleri tek başına ele alma, bilimsel metotta problem çözmenin ilk adımı olan problemi tanımlama becerilerimiz bu şekilde köreliyor
Sorun yalnızca daha kötü soru sormaya başlamamız değil. Problemi tanımlama ve onu doğru soyutlama becerisini daha az kullanıyoruz. Tıpkı navigasyonların yaygınlaşmasıyla harita okumayı unutmamız gibi, bu beceriyi de zamanla unutuyor olabiliriz.
Dolaylı öğrenme
Klasik yöntemde bir problemi araştırırken doküman okuruz, stackoverflow sayfalarında gezeriz, blog okuruz. Tüm bu adımlar o problemle birebir ilgili olmasa bile ek bilgiler öğrenmemizi sağlar. Aradığımız şey örneğin bir PostgreSQL sorgusunun neden yavaş olduğu olabilir ama araştırırken execution plan, index türleri ya da cardinality gibi o an doğrudan ihtiyacımız olmayan kavramlarla da karşılaşır, sonradan “bunu bir yerde görmüştüm” diyeceğimiz bilgiler ediniriz. Yapay zekadan cevabı istediğimizde ise, bu adımları bizim yerimize alır ve bize direkt cevabı verir. Hatta alakasız konulara girmemesi, kısa ve net cevap vermesi için ekstra sistem promptları veririz. Bu da dolaylı öğrenme şansımızı oldukça düşürür.
Hatırlama çabası
Bir şeyi öğrenmek sadece cevabı görmek değil, onu zihinden geri çağırmaya çalışmakla da ilgili. Şimdi “bunu biliyordum ama neydi?” sorusu geldiği ilk anda yapay zekaya başvuruyoruz. Terminalde yazılacak sık kullanılmayan o komut, iki teknik seçenek arasındaki fark.. Bilgiyi uzun süreli hafızamızdan çekip ön taraflara koymaya çalışma sürecini ortadan kaldırıyoruz.
Bilgiye erişim kolaylaştıkça, bilgiyi zihinde tutmak, beyin için gereksiz hale gelmeye başlıyor. Bununla ilgili araştırmaların olduğu blog yazıları okuduğuma yemin edebilirim fakat çok kolay erişebileceğimi düşündüğüm için aklımda tutmaya zahmet etmemişim.
İddia kanıtlandı ;)
Ne yazık ki bilgiye nereden ulaşabileceğimizi bilmek, o bilgiye sahip olmakla aynı becerileri sağlamayabiliyor günlük hayatta ya da iş hayatında. Bir toplantıda küçük bir bilgi hızlıca sorulduğunda anlıyorsunuz bu durumu..
Epistemik şüphecilik
Stack Overflow’da en azından okuduğumuz cevabın tarihini kontrol ediyorduk. Fazla eski tarihli bir cevap, eski bir doküman, tek kullanımlık bir hesaptan yazılmış bir cümle vb. bilginin doğruluğu konusunda birtakım kriterlerimiz vardı ve bunlar bare-minimum karşılanmadığında şüphecilik devreye giriyor ve ikinci bir görüş arıyorduk. Bilgiyi doğrulamaya çalışıyorduk. Yapay zekalarınsa yazdığı her bilgiyi doğru kabul etme eğilimindeyiz. Teknik çevredeki arkadaşlarımla konuşurken en azından bunu cümle içinde “Yapay zeka böyle diyor tabi resmi dokümandan doğrulamak lazım” şeklinde kullanırken teknik olmayan çevrelerde “bunu yapay zekadan öğrendim, tabii ki doğru, tek gerçek bu.” şeklinde bir yaklaşım gözlemliyorum. Kullandığımız dil modellerinin bir bakıma ticari ürünler olduğu gerçeğini göz ardı ettiğimizde son derece tehlikeli bir noktaya gidiyor olabilir. Bilginin kaynağını sorgulama, doğruluğunu teyit etme vb. kaygılar masum bir öğrenme başlığından çok daha detaylı bir başlık altında incelenmesi gereken konular bana kalırsa.
Derin düşünme ve belirsizlikte kalma
Jason Heeris’in 2013 tarihli “This Is Why You Shouldn’t Interrupt a Programmer” isimli bir çizimi var. Beynimizde birtakım küçük parçaları üst üste koyarak kurduğumuz zihinsel yapıyı ve tek bir bölünmeyle bunun nasıl dağıldığını anlatıyor. Yapay zekalar bu yapıyı yıkmıyorlar evet, ama onu kurmamıza da izin vermiyorlar.
Artık bir şeyi anlamadığımızda beynimize anlamaması için müsaade etmiyoruz. Bir paragrafın birkaç sayfa sonra yerine oturmasını, bir bug’ın zihnimizde evirilip çevrilmesini ya da eksik parçaların kendiliğinden birleşmesini beklemiyoruz. Her detayı soruyoruz ve anında 5 yaşındaymışız gibi açıklamasını, gerçek dünyadan örneğini, hatta kendi kurmamız gereken mantık zincirini alıyoruz. Zihnimizin kapasitesinden fazla bilgiyi tek seferde yüklüyoruz. Aslında belirsizlikte kalmak öğrenmenin başarısız olduğu an değil, tam tersine zihinsel modelin kurulduğu andı. Her boşluğu anında doldurduğumuzda zamandan kazanıyor gibi görünsek de beynin bağlantıları kendi başına kurduğu kısmı, başka bir deyişle öğrendiği kısmı da atlıyor olabiliriz.

Sonuç
Bütün bunlar öğrenirken yapay zeka kullanmamak gerektiğini savunduğum anlamına gelmiyor. Bahsettiğim gibi, elimizde son derece güçlü bir öğretmen var. Belki çözüm ona gerçekten bir öğretmen gibi davranmaktır. Gerçekten bir öğretmene sormadan önce atacağımız adımları uygulamaktır. Öğrenme sürecindeki her sürtünme gereksiz değil, bazılarından kurtulurken aslında öğrenmenin kendisinden kurtuluyor olabiliriz. LLM’leri eğitmeyi başarıyoruz, fakat LLM’lerin olduğu bir dünyada öğrenmeyi gittikçe karmaşık ve zor hale getirmemeyi de başarmalıyız.