Skip to content

Toolkit for Population based Emergence of lanGuage in Games (PEGGy)

License

Notifications You must be signed in to change notification settings

vermashresth/PEGGY

Repository files navigation

PEGGY 🐣: Population based Emergence of lanGuage in Games

GitHub Python 3.6

Introduction

EGG (Emergence of Language in Games) is a toolkit that allows researchers to quickly implement multi-agent games with discrete channel communication. In such games, the agents are trained to communicate with each other and jointly solve a task. Often, the way they communicate is not explicitly determined, allowing agents to come up with their own 'language' in order to solve the task. Such setup opens a plethora of possibilities in studying emergent language and the impact of the nature of task being solved, the agents' models, etc. This subject is a vibrant area of research often considered as a prerequisite for general AI. The purpose of EGG is to offer researchers an easy and fast entry point into this research area.

PEGGY builds up on EGG by including population based experiments in Language Games. Further, advising mechanism are also implemented for improving sample efficiency.

The codebase is in PyTorch and provides: (a) simple, yet powerful components for implementing communication between agents, (b) a diverse set of pre-implemented games, (c) an interface to analyse the emergent communication protocols.

Key features:

  • Primitives for implementing a single-symbol or variable-length communication (with vanilla RNNs, GRUs, LSTMs or Transformers);
  • Training with optimization of the communication channel with REINFORCE or Gumbel-Softmax relaxation via a common interface;
  • Simplified configuration of the general components, such as checkpointing, optimization, tensorboard support, etc;
  • Provides a simple CUDA-aware command-line tool for grid-search over parameters of the games.
  • Simple wrappers to extend two agent games to populations

Please look at EGG's documentation for full list of implemented games and documentation

Testing

Run pytest:

python -m pytest

All tests should pass.

About

Toolkit for Population based Emergence of lanGuage in Games (PEGGy)

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published