DeepMind Lab adalah lingkungan pembelajaran 3D berdasarkan Quake III Arena dari id Software melalui ioquake3 dan perangkat lunak sumber terbuka lainnya.
DeepMind Lab menyediakan serangkaian tugas navigasi 3D dan pemecahan teka-teki yang menantang untuk agen pembelajaran. Tujuan utamanya adalah sebagai tempat uji coba penelitian kecerdasan buatan, khususnya pembelajaran penguatan mendalam.
Penafian: Ini bukan produk resmi Google.
Jika Anda menggunakan DeepMind Lab dalam penelitian Anda dan ingin mengutip lingkungan DeepMind Lab , kami sarankan Anda mengutip makalah DeepMind Lab.
Anda dapat menghubungi kami di [email protected].
Dapatkan Bazel dari bazel.io.
Clone DeepMind Lab, misal dengan cara running
$ git clone https://github.com/deepmind/lab
$ cd lab
Untuk contoh langsung dari agen acak, jalankan
lab$ bazel run :python_random_agent --define graphics=sdl --
--length=10000 --width=640 --height=480
Berikut ini beberapa dokumentasi build yang lebih detail, termasuk cara menginstal dependensi jika Anda tidak memilikinya.
Untuk mengaktifkan pengoptimalan kompiler, teruskan tanda --compilation_mode=opt
, atau -c opt
singkatnya, ke setiap perintah bazel build
, bazel test
, dan bazel run
. Tanda ini dihilangkan dari contoh di sini agar lebih singkat, namun sebaiknya digunakan untuk pelatihan dan evaluasi nyata yang mengutamakan kinerja.
Untuk menguji game menggunakan kontrol masukan manusia, jalankan
lab$ bazel run :game -- --level_script=tests/empty_room_test --level_setting=logToStdErr=true
# or:
lab$ bazel run :game -- -l tests/empty_room_test -s logToStdErr=true
Biarkan pengaturan logToStdErr
nonaktif untuk menonaktifkan sebagian besar keluaran log.
Nilai observasi yang diekspos lingkungan dapat dicetak di setiap langkah dengan menambahkan tanda --observation OBSERVATION_NAME
untuk setiap observasi yang diminati.
lab$ bazel run :game -- --level_script=lt_chasm --observation VEL.TRANS --observation VEL.ROT
DeepMind Lab dilengkapi dengan contoh agen acak dalam python/random_agent.py
yang dapat digunakan sebagai titik awal untuk mengimplementasikan agen pembelajaran. Agar agen ini dapat berinteraksi dengan DeepMind Lab untuk pelatihan, jalankan
lab$ bazel run :python_random_agent
API Python digunakan untuk interaksi agen-lingkungan. Kami juga menyediakan pengikatan ke API umum "dm_env" DeepMind untuk pembelajaran penguatan, serta cara untuk membangun paket PIP mandiri; lihat dokumentasi terpisah untuk detailnya.
DeepMind Lab hadir dengan level berbeda yang menerapkan tugas berbeda. Tugas-tugas ini dapat dikonfigurasi menggunakan skrip Lua, seperti yang dijelaskan dalam Lua API.
DeepMind Lab dibangun dari mesin permainan ioquake3 , dan menggunakan alat q3map2 dan bspc untuk pembuatan peta. Perbaikan bug dan pembersihan yang berasal dari proyek tersebut sebaiknya diperbaiki di bagian hulu dan kemudian digabungkan ke dalam DeepMind Lab .
bspc diambil dari github.com/TTimo/bspc, revisi d9a372db3fb6163bc49ead41c76c801a3d14cf80. Hampir tidak ada modifikasi lokal, meskipun kami mengintegrasikan kode ini dengan kode utama ioq3 dan tidak menggunakan salinannya di direktori deps
. Kami berharap kode ini stabil.
q3map2 diambil dari github.com/TTimo/GtkRadiant, revisi d3d00345c542c8d7cc74e2e8a577bdf76f79c701. Beberapa modifikasi lokal kecil menambahkan sinkronisasi. Kami juga berharap kode ini stabil.
ioquake3 diambil dari github.com/ioquake/ioq3, revisi 29db64070aa0bae49953bddbedbed5e317af48ba. Kode ini berisi modifikasi dan penambahan ekstensif. Kami bertujuan untuk menggabungkan perubahan hulu sesekali.
Kami sangat berterima kasih kepada pengelola repositori ini atas semua kerja keras mereka dalam memelihara basis kode berkualitas tinggi.
DeepMind Lab saat ini dikirimkan hanya sebagai kode sumber. Hal ini bergantung pada beberapa perpustakaan perangkat lunak eksternal, yang kami kirimkan dalam beberapa cara berbeda:
Pustaka zlib
, glib
, libxml2
, jpeg
dan png
direferensikan sebagai sumber Bazel eksternal, dan file Bazel BUILD disediakan. Kode dependennya sendiri seharusnya cukup portabel, namun aturan BUILD yang kami kirimkan khusus untuk Linux di x86. Untuk membangun pada platform yang berbeda, kemungkinan besar Anda harus mengedit file BUILD tersebut.
Algoritme intisari pesan disertakan dalam paket ini (dalam //third_party/md
), diambil dari implementasi referensi RFC masing-masing. "API pembelajaran penguatan generik" disertakan dalam //third_party/rl_api
, yang juga telah dibuat oleh penulis DeepMind Lab . Kode ini portabel.
Header EGL disertakan dalam paket ini (di //third_party/GL/{
EGL
,
KHR
}
), diambil dari Registri API XML Khronos OpenGL/OpenGL ES di www.khronos.org/registry/EGL. Header telah sedikit dimodifikasi untuk menghilangkan ketergantungan EGL pada X.
Beberapa perpustakaan tambahan diperlukan tetapi tidak dikirimkan dalam bentuk apa pun; mereka harus ada di sistem Anda:
glib
)--define headless=...
Aturan pembangunan menggunakan beberapa pengaturan kompiler yang khusus untuk GCC. Jika beberapa tanda tidak dikenali oleh kompiler Anda (biasanya berupa peringatan khusus), Anda mungkin harus mengedit tanda tersebut. Peringatannya harus berisik namun tidak berbahaya.