In a nutshell, ELM is a way to combine evolutionary algorithms and large language models for generation of diverse data.
Evolutionary algorithms provide a way to generate diverse and novel data by making mutations and changes to candidates in the domain of interest, such as code. Language models provide a way to encode human knowledge to guide these mutations intelligently. Combining these two techniques therefore allows the search procedure to say on the “manifold of functionality” and lets the language model drive the evolutionary algorithm towards areas of the solution space that neither technique could find on their own.
To set the scene a little bit, there have been numerous papers in the past year or two using large language models (LLMs) for code generation and synthesis, including OpenAIs Codex and DeepMind’s AlphaCode. Several of these papers, such AlphaCode, have focused on ways to generate code for specific domains including programming puzzles and solutions. However, sometimes the domain we want to generate code for has limited data that is only rarely found or not found in the training distribution. In this case, attempting to generate high quality code with prompt engineering will usually be impractical.
ELM demonstrates that by incentivising diversity in program generation, we can create code in domains not in the training dataset using only a single seed program.
Did CarperAI just release an open source library that can generate code that can be used to train other AI/ML systems? Turtles, all the way down.