WorldTUI: Bir Terminal Gibi Davranması İçin 360M Parametreli Bir Model Eğittim
Kaynak: Hacker News
İçindekiler 4 başlık
Özet (TL;DR) ve Dünya Modellerine Giriş#
Arka planda gerçek bir kabuk (shell) veya dosya sistemi olmadan, yalnızca tuş vuruşlarını alıp ekranın nasıl değişeceğini tahmin eden 360 milyon parametreli ince ayarlı (fine-tuned) bir dil modeli düşünün. WorldTUI adı verilen bu proje; dosya oluşturabiliyor, vim ve tmux çalıştırabiliyor, yılan oyunu oynayabiliyor ve birkaç komut önce yazdıklarınızı hatırlayabiliyor. En büyük kazanımlar ise modele kendi hatalarını onarmayı öğretmek ve ekran satırlarını paralel olarak çözmek (decoding) oldu. WebGPU destekli bir masaüstü tarayıcıda (208 MB) çalışan demoda pythoon yazdığınızda bile gerçek bir kabuk olmadığını, çıktıyı tamamen modelin tahmin ettiğini görebilirsiniz.
Geçtiğimiz yıl Genie 3 ile gündeme gelen "kodla yazılmak yerine öğrenilen uygulamalar" vizyonu, oyun motorları yerine kullanıcı girdisinden bir sonraki kareyi tahmin eden dünya modellerine (world models) dayanıyor. Devasa GPU kümeleri veya video verileri olmadan bu fikri deneyimlemenin en pratik yolu, pikseller yerine karakter ızgarasından (grid) oluşan terminallerdir. Docker içinde çalışan gerçek programlardan kaydedilen oturumlarla Qwen2.5-Coder-0.5B modeline ince ayar yapılarak hem kusursuz etiketlenmiş eğitim verisi üretilmiş hem de modelin tutarlı bir dünya durumunu (state) koruyup koruyamayacağı test edilmiştir.
Model Bir Terminali Nasıl Görür?#
Standart büyük dil modelleri (LLM'ler) bir istem alır ve metnin sonuna tek tek token ekler. Ancak bu yapı terminallere uymaz:
vimiçindekiescgibi tek bir tuş vuruşu kendi başına bir eylem tetikleyebilir.- Çıktılar her zaman ekranın altına eklenmez; örneğin
clearkomutu ekranı siler ve imleci en üste taşır.
Bu nedenle model, düz bir metin akışı tahmin etmek yerine ekran ızgarasındaki hücre değişikliklerini ve durum güncellemelerini tanımlayan bir token dizisini tahmin eder.
Bir Oturumun Anatomisi ve Temsili#
Her oturum; ekran boyutunu (sabit 32×96 değil, özelleştirilebilir satır ve sütunlar), mevcut içeriği ve imleç konumunu içeren bir anlık görüntü (snapshot) ile başlar:
- Başlangıç Durumu:
BOS SCREEN_START 32 96 ROW_0 0 'simedw@laptop:~$ ' CURSOR 0 17 1 SCREEN_ENDyapısı sayesinde model birbashisteminden,vimarabelleğinden veya yılan oyununun ortasından devam edebilir. - Girdi Temsili: Her tuş vuruşu gerçek bir terminalin göndereceği ham baytlar (raw bytes) olarak modele iletilir (
INPUT_START 'l' INPUT_END, Enter için\r, Escape için0x1b). - Çıktı ve Çizim: Model hangi satırın hangi sütunundan itibaren yeniden yazılacağını ve imlecin yeni konumunu/görünürlüğünü döndürür (
OUTPUT_START ROW_0 17 'l' CURSOR 0 18 1 OUTPUT_END). Ekran önce temizlenmez; yeni karakterler doğrudan eskilerin üzerine yazılır. - Token Verimliliği: Karakterler, koordinatlar ve küçük sayılar için yeni token eklemek yerine Qwen modelinin mevcut 256 baytlık token dağarcığı yeniden kullanılmıştır.
Yazılım Geliştirme ve Öğrenme Açısından Pratik Çıkarımlar#
- Problem Ölçeklendirme: Büyük donanım gerektiren karmaşık fikirleri (video tabanlı dünya modelleri), temel mantığı koruyarak daha hafif temsillere (metin/karakter ızgarası) indirgemek hızlı prototipleme sağlar.
- Sentetik Veri Üretimi: Docker üzerinde gerçek kabuk oturumlarını kaydederek sınırsız ve %100 doğru etiketlenmiş eğitim verisi üretmek, veri darboğazını aşmak için mükemmel bir mühendislik yaklaşımıdır.
- Durum (State) ve Delta Modelleme: Sadece metin üretmek yerine sistemin durum değişimlerini (delta) ve koordinatlarını modellemek, standart LLM'leri etkileşimli simülatörlere dönüştürmenin anahtarıdır.
Kaynak ve atıf
Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:
- simedw.com/2026/10/21/world-model-terminal