Egy kockákból épített nyelvi modell párbeszédre képes a Minecraft módolatlan világában, külső kiegészítők használata nélkül. A rajongói közösségben Objz néven ismert alkotó mindössze parancsblokkok segítségével hozott létre egy működő nyelvi modellt. A projekt teljesen átlagos, módosításoktól mentes játékkörnyezetben fut, ami azt jelenti, hogy sem modokra, sem bővítményekre, sem adatcsomagokra nincs szükség a működtetéséhez. A játékosok a beépített párbeszédablak segítségével léphetnek kapcsolatba a rendszerrel, amely szóról szóra generálja a válaszokat a képernyőn.
A Minecraft közösségében régóta hagyománya van a komplex logikai áramkörök és digitális rendszerek építésének. Korábban láthattunk már grafikus kalkulátorokat, QR-kód generátorokat és Tetris játékokat is, amelyeket a játékon belüli vöröskő-áramkörökkel vagy parancsblokkokkal hoztak létre. A mesterséges intelligencia és a neurális hálózatok megvalósítása a természetes lépést jelenti ebben a fejlődési folyamatban. A korábbi próbálkozások azonban gyakran óriási méretű építményeket vagy külső eszközöket igényeltek, ami korlátozta a használhatóságukat.
Több mint egymillióról félmillió alá csökkentett blokkszám
Objz legújabb fejlesztése pontosan 445 782 parancsblokkot használ fel a nyelvi modell működtetéséhez. Ez a szám első hallásra rendkívül magasnak tűnhet, ám a számítástechnikai logika és a nagy nyelvi modellek architektúrájának tükrében kimondottan hatékony megvalósításnak számít. A projekt korai fázisában a rendszer még több mint egymillió, egyes becslések szerint csaknem kétmillió blokkot igényelt volna.
A blokkszám csökkentése érdekében a fejlesztőnek teljesen át kellett gondolnia, miként tárolja és dolgozza fel az adatokat a Minecraft saját játékmotorján belül. A parancsblokkok végrehajtási kapacitása és a játék memóriakezelése komoly korlátokat szab a párhuzamos műveleteknek, így a hagyományos gépi tanulási architektúrák közvetlen átültetése működésképtelen vagy rendkívül lassú lett volna. A végleges változat mérete így is jelentős, de már kezelhető tartományba került a játékon belül.
Kvantálás és matematikai trükkök a játékmotorban
A legnagyobb technikai kihívást a Minecraft matematikai korlátai jelentették. A nagy nyelvi modellek súlyait a valóságban lebegőpontos számokkal reprezentálják, a játék úgynevezett scoreboard rendszere azonban kizárólag egész számokkal képes műveleteket végezni. A lebegőpontos és az egész számok közötti folyamatos konverzió elképesztő mennyiségű plusz parancsot igényelt volna, ami gyorsan túlterhelte volna a játékot.
Ennek áthidalására Objz egy radikális kvantálási eljárást alkalmazott: a modell súlyait kizárólag ternáris értékekre, azaz -1, 0 és +1 számokra korlátozta. Ez a megoldás kiküszöbölte az összetett szorzási műveletek jelentős részét. A mátrixszorzások és összeadások átlagosan mindössze 0,67 parancsot igényelnek műveletenként, ami lecsökkentette a szükséges blokkok számát és az adatmennyiséget.
Társalgási képességek és a rendszer korlátai
A beépített nyelvi modell architektúráját tekintve egy 64 dimenziós beágyazási térrel, egy 256 neuronból álló rejtett réteggel és egy 2048 szavas szókincsel rendelkezik. A rendszert a fejlesztő 11 118 DailyDialog párbeszéden tanította be, így a chatbot képes alapvető társalgási fordulatok megértésére és generálására. A válaszok szóról szóra jelennek meg a felületen, hasonlóan a megszokott webes chatbotok működéséhez.
A fejlesztő ugyanakkor kiemelte, hogy a modell képességei szándékosan korlátozottak. A rendszer nem rendelkezik általános műveltséggel, nem tud matematikai feladatokat megoldani, és kizárólag a betanítási adatbázisban szereplő társalgási minták alapján válaszol. Ennek ellenére a projekt mintapéldája annak, hogyan lehet szélsőségesen korlátozott környezetben, kreatív matematikai optimalizációval komplex mesterséges intelligencia architektúrát szimulálni.
Források: