ELF stands for Extensive, Lightweight, and Flexible. It is a platform developed by Facebook's AI Research lab (FAIR) to explore and demonstrate the strength of artificial intelligence in multiple complicated game environments, as well as eventually applying AI to real-world challenges.
Games are seen as highly useful for AI research because game environments can produce nearly infinite training data that's also low-cost, replicable, and easier to obtain than data from real-world experiments.
Facebook decided to develop ELF because they recognized that - despite the benefits mentioned above - there are still some obstacles to fully utilizing games for AI research. One obstacle is that running experiments with games often requires extensive high-performance computing resources such as rigs of multiple CPUs, GPUs, and specialized hardware. ELF runs on a laptop with a GPU while still supporting AI training in complex game environments (e.g. real-time strategy games).
In a departure from other existing game AI platforms that wrap a single game in one interface, ELF wraps a batch of games into one Python interface. This enables models and reinforcement algorithms to obtain a batch of game states in every iteration, which decreases the amount of time needed to train models.
Facebook Open Sources ELF OpenGo
Yuandong Tian and Larry Zitnick
Introducing ELF: An extensive, lightweight and flexible platform for game research - Facebook Code
Documentaries, videos and podcasts
- Unity Machine Learning Agentsa collection of machine learning tools meant to help AI researchers and designers to quickly and efficiently make advances in game development, robotics, and more.
- Unity TechnologiesSoftware company with a real-time engine and flexible real-time tools used by game developers and creators across industries and applications in 2D, 3D, VR, and AR.
- A social media and social networking service company.
- Reinforcement LearningAn area of machine learning focusing on how machines and software agents react in a specific context to maximize performance and achieve reward known as reinforcement signal.
- Python (programming language)A general purpose high-level programming language