GithubHelp home page GithubHelp logo

maxencefaldor / omni-epic Goto Github PK

View Code? Open in Web Editor NEW
69.0 2.0 7.0 2.66 MB

OMNI-EPIC: Open-endedness via Models of human Notions of Interestingness with Environments Programmed in Code (ICLR 2025).

Home Page: https://dub.sh/omniepic

License: Apache License 2.0

Python 91.06% Dockerfile 0.22% Shell 0.26% HTML 0.49% JavaScript 0.06% TypeScript 7.90% CSS 0.01%
open-ended-learning open-endedness

omni-epic's Introduction

OMNI-EPIC:
Open-endedness via Models of human Notions of Interestingness with Environments Programmed in Code

Repository for Open-endedness via Models of human Notions of Interestingness (OMNI) with Environments Programmed in Code (EPIC), that endlessly create learnable and interesting environments, further propelling the development of self-improving AI systems and AI-Generating Algorithms.


Setup - Apptainer

Step 0: update your environment

Update your .bashrc with

# Add foundation model API keys to your environment
export OPENAI_API_KEY='...'
export ANTHROPIC_API_KEY='...'

# Optionally
export CUDA_VISIBLE_DEVICES=...
export WANDB_API_KEY='...'

Step 1: clone the repository

Clone the repository with git clone https://github.com/maxencefaldor/omni-epic.git.

Step 2: build the container

Go at the root of the cloned repository with cd omni-epic/ and run:

apptainer build \
	--fakeroot \
	--force \
	apptainer/container.sif \
	apptainer/container.def

Step 3: shell into the container

Go at the root of the cloned repository with cd omni-epic/ and run

apptainer shell \
	--bind $(pwd):/workspace/src/ \
	--cleanenv \
	--containall \
	--env "CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES" \
	--env "WANDB_API_KEY=$WANDB_API_KEY" \
	--env "OPENAI_API_KEY=$OPENAI_API_KEY" \
	--env "ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY" \
	--home /tmp/ \
	--no-home \
	--nv \
	--pwd /workspace/src/ \
	--workdir apptainer/ \
	apptainer/container.sif

Running Instructions

Running OMNI-EPIC

python main_omni_epic.py

Human Playable Game

python -m game.backend.app

For prettier frontend, on another terminal

cd game/frontend/
npm i
npm run dev

See more detailed readme for this in game/frontend/README.md

File structure

  • analysis/ scripts used for plotting and analysis
  • apptainer/ for setting up apptainer, easier reproducability
  • configs/ configuration files used in training and analysis
  • dreamerv3/ code for DreamerV3, RL algorithm used to train the agents
  • game/ code for human playable game
  • omni_epic/ code for robots, example environments, and foundation model calls

Citation

If you find this project useful, please consider citing:

@article{faldor2024omni,
	title={OMNI-EPIC: Open-endedness via Models of human Notions of Interestingness with Environments Programmed in Code},
	author={Faldor, Maxence and Zhang, Jenny and Cully, Antoine and Clune, Jeff},
	journal={arXiv preprint arXiv:2405.15568},
	year={2024}
}

omni-epic's People

Contributors

jennyzzt avatar maxencefaldor avatar

Stargazers

Frederico Wieser avatar Belu avatar Sam Hassan avatar Nick Imanzi avatar Scott J. Walter avatar Ian Channing avatar Alex Pan avatar Makoto Sato avatar 4rn1w3sth avatar Taishi Nakamura avatar Ljubomir Josifovski avatar Jeff Carpenter avatar wolfi3 avatar ty cronk avatar Genesis avatar Muharrem Okutan avatar Misha Brukman avatar Taha Majlesi avatar Fabio Dias Rollo avatar Maximilian Wolf avatar Slian avatar Chengpeng Hu avatar Konstantinos Mitsides avatar Michael Beukman avatar  avatar Tevin avatar 賴溡雨Lai Shih-Yu avatar  avatar Lianghuan Huang avatar Jovan Sardinha avatar Vedant S Rathore avatar Piyush R. Maharana avatar PB avatar joyboy avatar Tor avatar Aleks avatar João Viterbo Vieira avatar Owain  gaunders avatar Carl Boettiger avatar SuYao avatar  avatar justiceli avatar Frederico Santos avatar Ricky James Mitchell avatar Ivy Zhao avatar Samuel Fiedler avatar Corentin avatar  avatar Rusty avatar Gabriel Béna avatar Shengran Hu avatar Yoann Fleytoux avatar Alexey Zemtsov avatar tz ✨ avatar Hany Hamed avatar Matthew Jackson avatar Tokarev Igor avatar Alexander Nikulin avatar Alejandro Dubrovsky avatar Martin Salo avatar Evolutionary-Intelligence (Qiqi Duan - 段琦琦) avatar  avatar Shyam Sudhakaran avatar Rach avatar abstractee avatar  avatar Tarek avatar Evan avatar  avatar

Watchers

Evan avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.