Oyun dünyasında Minecraft ile vakit geçirenler, komut blokları, modlar ve bolca sabırla inşa edilen oyun içi hesap makineleri, QR kod üreteçleri ve Tetris gibi yaratıcılık örneklerine aşinadır. Yapay zeka araçları geliştirmek bu alanda mantıklı bir sonraki adım olarak görülüyordu. Hatta bu yönde kızıltaşı kullanarak geliştirilmiş pek çok karmaşık proje de ortaya çıktı.
Ancak, Reddit kullanıcısı Objz, bu alanda bambaşka bir seviyede bir başarıya imza attı. Tam 445.782 adet komut bloğu kullanarak ve herhangi bir mod, eklenti veya veri paketi olmadan çalışan bir büyük dil modeli (LLM) geliştirdiğini duyurdu. Projenin yaratıcısının kendi ifadesine göre bu süreç oldukça zorlu ve "baş ağrıtıcı" bir deneyim olmuş.
Objz'in geliştirdiği LLM, aslında boyut olarak çok büyük değil. Sadece 64 boyutlu bir gömme alanına, 256 nöronlu bir gizli katmana ve 2.048 kelimelik oldukça sınırlı bir kelime haznesine sahip. Eğitim süreci ise 11.118 adet DailyDialog sohbeti üzerinden gerçekleştirilmiş.
Kullanıcılar, oyunun "/dialog" komutu aracılığıyla bu yapay zeka ile sohbet edebiliyor. Yanıtlar ise standart sohbet robotlarında olduğu gibi kelime kelime ekrana geliyor.
Bu sınırlı eğitim verisine rağmen, geliştirici, LLM'in sadece konuşma düzeyinde kaldığını ve matematiksel işlemler yapamadığını ya da geniş bir bilgi birikimine sahip olmadığını belirtiyor.
Buna rağmen, ortaya konulan çalışma takdire şayan. 445.000 komut bloğu kulağa çok gibi gelse de, böylesi bir veri ve hesaplama yapısının optimize edilmeden hayata geçirilmesi durumunda milyonlarca küp gerektireceği düşünülürse, bu sayı oldukça etkileyici. Hatta projenin orijinal versiyonu, mevcut yeteneklerine rağmen yaklaşık 2 milyon bloğa ulaşmıştı.
LLM ağırlıklarının normalde kayan noktalı (floating-point) değerlerle temsil edilmesi, Minecraft içinde uygulanması oldukça karmaşık olacağı için, Objz ağırlıklar için sadece -1, 0 ve +1 değerlerini kullanmaya karar vermiş. Bu akıllıca hamle, komutları basitleştirmesini ve veri kümesini küçültmesini sağlamış.
Minecraft'ın "scoreboard" komutu çarpma ve bölme işlemlerini desteklese de, bu işlemler tam sayı tabanlı ve kayan noktalı değerlere dönüştürme gerektirecekti. Ancak, ağırlıkların -1/0/+1 olarak belirlenmesi, iki işi aynı anda halletmiş: ek komutları atlamış ve veri setini küçültmüş. Her bir çarpma-birikim (multiply-accumulate) işleminin ortalama 0.67 komuta mal olması, null değerlerin yoğun kullanımı sayesinde mümkün olmuş.
Objz, bu üç değerli (ternary) temsili elde etmek için değerleri sonradan yuvarlamadığını, aynı zamanda modelin eğitim sırasındaki ileri geçişi (forward pass) için baştan itibaren bu şekilde kuantize ettiğini ve geri yayılımda (backpropagation) altındaki kayan noktalı ağırlıkları güncellemek için doğrudan bir tahminleyici (straight-through estimator) kullandığını belirtiyor. Bu adım, ek optimizasyonlarla birlikte, kelime tahmin edilebilirliğini (perplexity rate) 48.7'den 38.8'e düşürmeye yardımcı olmuş.
Minecraft'ın aynı anda yürütebileceği komut sayısındaki sınırlamalar nedeniyle, LLM daha küçük gruplara ayrılmış. Buna rağmen, saniyede 35 tik (tick) hızında çalışan bir sunucuda bile, her kelimenin üretilmesi yaklaşık 1.8 saniye sürüyor.
Geliştirici, bu LLM'i daha büyük ve daha akıllı hale getirmenin hesaplama açısından oldukça maliyetli olacağını, zira bu mimariyle inşa edilecek 135 milyon parametreli bir LLM'in mevcut projeden 200 kat daha büyük olacağını ifade ediyor. Yine de bu çalışma, sınırlamaların yaratıcılığı nasıl tetiklediğinin harika bir örneği olarak öne çıkıyor.