Bu çalışma Transformer ve Mamba mimarilerini popüler bir ML antremanı olan Connect 4 üzerinden karşılaştırmayı amaçlamaktadır.
Decision Transformer kullanılarak yapılmış bu çalışma temel alınarak üzerine bu çalışmadaki
Mamba Block
yapısı eklenmiştir. Temel çalışmada eğitilmiş olan DT modeline benzer şekilde bir DM modeli eğitilerek bu iki modelin karşılıklı oynadığı oyunların sonucu incelenecektir.
/src klasöründeki decision_mamba_layers.py
ve decision_mamba.py
dosyaları bu çalışmadan, diğerleri ise bu çalışmadan alınarak ihtiyaca göre değiştirilmiştir.
/serializedObjs klasöründe eğitilmiş modellerin parametreleri bulunmakta; dt klasöründeki içerik olduğu gibi temel çalışmadan alınmıştır. dm klasöründeki içerik ise bu çalışma ile üretilmektedir. Bu parametrelerin oluşması için >= 50 MiB ve/veya geçici olarak kullanılan dosyalar /tmp klasörüne atılmakta ve bu klasördeki dosyalar takip edilmeMEktedir.
notebooks klasöründeki;
-
offline_data.ipynb dosyasında farklı bir çalışmada mevcut olan (C4 oynama konusunda) "uzman sistem" olan 2 ajanın (
MinimaxAgent
) karşılıklı oyunları kaydedilmektedir. -
offline_train.ipynb dosyasında bir önceki adımda elde edilen oyun verisi üzerinden
DecisionMamba
modeli eğitilmektedir. -
online_train.ipynb dosyasında önceki çıktılar ve
MinimaxAgent
kullanılarakDecisionMamba
modeli oyun içinde eğitilmektedir. -
side_by_side.ipynb dosyasında ise bu eğitim sonucu elde edilen
DecisionMamba
ve temel çalışmada bu konuda eğitilmiş olanDecisionTransformer
karşılıklı oyun oynamaktadır.
-
Eğitim dosyalarındaki parametreler modelin boyutunu, yeteneğini ve eğitim süresini doğrudan etkilemektedir; dolayısıyla burada olabilecek en düşük değerler kullanılmıştır. Kullanmadan önce gözden geçirilmesi faydalı olacaktır.
-
Benzer şekilde eğitim çıktılarına "test" ön eki ile isim verilmiştir. Çıktıları saklamak için daha anlamlı isimler tercih edilebilir. Bu isimler dosyalar arasında eşitlenmediğinde (bir dosyadaki çıktı diğer dosyada girdi olarak kullanılıyor) sonuçlar eksik/hatalı oluşabilir.
Codespaces Üzerinde
Herhangi bir bilgisayarda (yüksek donanıma gerek yok, modern bir tarayıcı çalıştırabilmesi yeterli) tarayıcı üzerinde çalışmak için ideal.
- Github hesabınızla oturum açın (an itibariyle ücretsiz hesap için aylık 120 saat/core veriyor: 2 core 60 saat, 4 core 30 saat boyunca kullanılabilir; eğitim hesabı için daha iyi koşullar mevcut).
- Aşağıdaki gibi
Code>Codespaces
seçeneklerindenNew with options...
komutu ile devam edip
uygun yapılandırmayı (en önemlisi makine tipi) seçip
yeni bir ortam oluşturun:
- Bekleyin! İlk seferi biraz uzun sürecek.
- Bir
notebook
açtıktan sonra eğer seçili değilsevenv
isimlikernel
'i seçin.
- VS Code sadece bir editör,
Jupyter Notebook
özelliklerini kendi içinde sunuyor dolayısıyla aynı mantık geçerli. - İşi bittiğinde Codespaces adresinden (hakkın boşa gitmemesi için) ilgili makineyi kapatın (ya da tekrar kullanılmayacaksa silin).
- Tekrar kullanmak gerektiğinde aynı adresten VS Code ya da Jupyter (ile tarayıcıdan ya da diğer seçeneklerle UZAKTAKİ ortama yerel bilgisayardan) bağlanabilirsin:
Docker Desktop, VS Code ve Remote Extension kurulu bir bilgisayarda bu repo'yu clone
'layıp ilgili klasör için Open Folder In Container...
komutunu çalıştırın.
Bu seçenek yerel kaynakları kullanabiliyor olması nedeniyle cihazın durumuna göre daha performanslı olabilir fakat bahsi geçen araçları kullanmayı gerektirdiği için tecrübe (sahibi olmayı ya da edinmek üzere zaman harcamayı) gerektiriyor.