Rendered at 06:13:37 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
EvanAnderson 2 days ago [-]
Tierra[0], written by Tom Ray[1], immediately comes to mind. I was captivated when I read about it, as a teenager, in Steven Levy's "Artificial Life"[2]. Having played Core War[3], the description of Tierra in Levy's book inspired me to play around with making a virtual machine in Turbo Pascal and trying my hand at making a pale and naive clone. It was a lot of fun, and arguably has influenced a lot of my thinking about the origin of biological life.
Yes and it also reminds me of one of my favorite books, Andreas Wagner's "Arrival Of the Fittest" and, connected, the Miller-Urey experiment of course.
Do you have any idea why the authors chose Z80 as the program language? I have seen other studies in the same spirit that use simpler toy languages like Brainfuck (https://arxiv.org/abs/2406.19108) and I wonder if you could get higher execution speed if you didn't have to execute so much emulator code.
The programs/genomes are extremely tiny. I would be very interested to see what kind of hardware is needed to scale this approach up. How long until we can feed in giant corpuses of text and evolve these little organisms to predict the next letter?
vicgalle_ 2 days ago [-]
> Do you have any idea why the authors chose Z80 as the program language?
In that previous paper you cite (by the same group) they tested several substrates for spontaneous replication (BFF, Forth, SUBLEQ, and emulated real CPUs. Z80 and 8080 CPU exps confirmed the rise of self-replicators, with the Z80 notably exhibiting multiple waves of increasingly capable self-replicators.
And the instruction set seems quite appropriate for the experiment: Z80 has native block-copying instructions, while it doesn't have MUL, so the task of evaluating polynomials is somewhat more challenging
BadAstronomer 2 days ago [-]
This paper is by the same team. My guess is that the BF code that evaluates polynomials is much much longer than the equivalent Z80 code. Thus it may not be expected to evolve in the space and time constraints of this experiment.
eyvindn 16 hours ago [-]
as other folks have replied, Z80 is more expressive and yields more interesting replicators faster. however the question of how complex to make the "base layer", if you will, remains open. we expect it to also be an ease of auto-evolution vs. performance tradeoff.
second question is a good question :)
vicgalle_ 2 days ago [-]
A small update here: another replication using a different CPU, the 6502. In this case, replicators emerge 100 times less frequently than in Z80, due to a lacking LDIR-like instruction
This is a cool finding; I did not know it was still an active area of study with all the work on ML and LLMs these days. I have done some amateur exploration of the space and the result does not surprise me: https://github.com/ehbar/evol
> We show that when random, non self-replicating programs are placed in an environment lacking any explicit fitness landscape, self-replicators tend to arise. We demonstrate how this occurs due to random interactions and self-modification, and can happen with and without background random mutations. We also show how increasingly complex dynamics continue to emerge following the rise of self-replicators.
vicgalle_ 2 days ago [-]
Thanks for posting this, indeed that group at google has produced some interesting research in this space.
That paper was also discussed here back in the day: https://news.ycombinator.com/item?id=40820022
vatsachak 2 days ago [-]
Interesting. But, evolution is way too unconstrained to provide us a path to "agi". It would require too much compute.
Evolution also eventually gets frustrated and creates the brain, capable of in context learning.
Maybe we should take some notes from these massively parallel, shallow, and highly recurrent constructions.
bob1029 2 days ago [-]
If evolution had access to TSMC's process technology, do you think it wouldn't leverage it? The signals in my AMD CPU propagate ~1,000,000x faster than the ones in my brain.
vatsachak 2 days ago [-]
Yeah. But we need throw money at studying the brain, instead of another billion to "agents which understand you truly"
eyvindn 2 days ago [-]
^ yes. this is what we hope.
vatsachak 2 days ago [-]
Super big fan of your work on cellular automata. Do you have anything interesting papers coming up?
tim333 2 days ago [-]
Real evolution produced human intelligence.
Constrained evolutionary algorithms may have some promise.
eyvindn 2 days ago [-]
authors here - happy to answer any questions! we’re excited for this line of work and see this as the first step on a longer journey.
lioeters 16 hours ago [-]
The projects being worked on by the Paradigms of Intelligence team at Google are so fascinating. The book "What is Intelligence?" by the founder is brilliant and mind-opening. While reading the posted article and related topics, I rediscovered a rich collection of papers on Differentiable Self-organizing Systems.
I'd read through the whole site and all the papers there when they were published, and the questions they raise are, to me, some of the most interesting intellectual themes. Then I realized you're an author on most of the articles, as well as Michael Levin, whose research I've been deeply curious about, listening to his talks, reading his papers. It makes sense that there's a common thread and convergence, but also a pleasant surprise.
Just wanted to express my appreciation for the work you and your cohorts are doing, how it's pushing the boundary and depth of our collective understanding. I don't have a question per se, but I feel that this area of inquiry seems both underappreciated by the general public and at the same time fairly open to those outside of academia - what might be called experimental mathematics and exploratory computer science. Maybe there's room for "popular-science" type authors, to explain how cool (ha) these ideas are, to translate the technical material to more digestible language for a wider audience.
jrowen 1 days ago [-]
I've long felt that Artificial Life or an approach rooted in that is the best way to get a novel and interesting machine intelligence. The breakthrough with more conventional methods was surprising, but it still seems like it might hit a ceiling (or may have already?).
The major thing that's always stumped me is how to design a universal fitness function that can take you from soup to a brain. IRL there is "the environment" which contains resources that need to be consumed to survive, and the majority of evolution (senses, bodyforms, metabolic pathways, etc) is based on navigating this environment and extracting energy. Can we say that life or intelligence is a meaningful concept without this universal background reference plane and survival game?
One of the things I think is limiting about conventional systems is what I call the "brain-in-a-vat" problem. They don't "exist" in any meaningful sense, they don't "experience" anything, they don't have any "reason" or "motivation" to do or develop anything.
I think of something more like a video game. The world of World of Warcraft or Call of Duty is a mathematical construct that doesn't truly reflect how our world works, but, through a window we can interpret it in a way that we understand and relate to. Some kind of video game environment with more relaxed and "open-ended" parameters and a simulated survival mechanism would be an interesting experiment.
The abstract mentions metabolic constraints. Can you share more of your thoughts or conceptual approach to this?
eyvindn 15 hours ago [-]
this is my personal take;
I agree, for the same reasons you mentioned, resource constraints will need to be baked in (they are already, to some extent, if you consider the constrained resource to be z80-CPU-seconds the program has access to). something more akin to energy in our real world, which can be manipulated, aggregated, shared, pooled, stolen, etc feels more natural, however.
imo meaningful intelligence could conceivably developed in a soup (even in-silico), unclear on what timeline, but grounding it with human and/or real-world data is necessary to make it useful to us (bio-compatible, if you will?)
jrowen 7 hours ago [-]
Yes, that's the other thing -- starting from a soup, it takes a very long time to know if the parameters that have been chosen are conducive to evolving something we would consider intelligent. The gif in vicgalle's github is largely inscrutable (even if you understand what it represents in aggregate), and I imagine one would be staring at something like that for quite some time.
Obviously, you have to "cheat" biology somewhere, we don't have hundreds of millions of years. Neural networks cheat by essentially throwing out the whole evolutionary process and environment that led to the brain, attempting to make a model that works like the brain. IMO that is too much cheating.
Starting with a substrate of random bits of assembly code strikes me as a little too low-level (which is not to dismiss this research at all, I think it's valuable, I'm just spitballing big-picture ideas). Have you considered starting with something like the Unreal or Unity engine, or even Minecraft?
You would lose the elegant and unopinionated search space of all programs, and you would have to engineer a more structured system (kind of like Spore but more simulation than game), but I feel like you might be able to get some more readily relatable behaviors sooner?
chychiu 2 days ago [-]
Super cool work! What's next?
Do you think with longer memory limits more interesting programs might emerge?
Or is it substrate dependent?
eyvindn 15 hours ago [-]
there are many bottlenecks in the substrate - memory limits being one of them. other things like the A-B concatenation inherited from the bff paper also severely limit the possible dynamics. understanding and avoiding these bottlenecks are some of our next steps!
HarHarVeryFunny 2 days ago [-]
This reminds me of multi-head neural nets where there is synergy from having to learn two or more tasks at the same time that helps them all.
dofdial 2 days ago [-]
Time for Sunday-vibe-coding a distributed computing project..
[0] https://tomray.me/tierra/whatis.html
[1] https://en.wikipedia.org/wiki/Thomas_S._Ray
[2] https://www.stevenlevy.com/artificial-life
[3] https://en.wikipedia.org/wiki/Core_War
https://www.goodreads.com/en/book/show/20821275-arrival-of-t...
https://en.wikipedia.org/wiki/Miller%E2%80%93Urey_experiment
Do you have any idea why the authors chose Z80 as the program language? I have seen other studies in the same spirit that use simpler toy languages like Brainfuck (https://arxiv.org/abs/2406.19108) and I wonder if you could get higher execution speed if you didn't have to execute so much emulator code.
The programs/genomes are extremely tiny. I would be very interested to see what kind of hardware is needed to scale this approach up. How long until we can feed in giant corpuses of text and evolve these little organisms to predict the next letter?
In that previous paper you cite (by the same group) they tested several substrates for spontaneous replication (BFF, Forth, SUBLEQ, and emulated real CPUs. Z80 and 8080 CPU exps confirmed the rise of self-replicators, with the Z80 notably exhibiting multiple waves of increasingly capable self-replicators.
And the instruction set seems quite appropriate for the experiment: Z80 has native block-copying instructions, while it doesn't have MUL, so the task of evaluating polynomials is somewhat more challenging
second question is a good question :)
https://arxiv.org/abs/2406.19108
> We show that when random, non self-replicating programs are placed in an environment lacking any explicit fitness landscape, self-replicators tend to arise. We demonstrate how this occurs due to random interactions and self-modification, and can happen with and without background random mutations. We also show how increasingly complex dynamics continue to emerge following the rise of self-replicators.
Evolution also eventually gets frustrated and creates the brain, capable of in context learning.
Maybe we should take some notes from these massively parallel, shallow, and highly recurrent constructions.
Constrained evolutionary algorithms may have some promise.
https://distill.pub/2020/selforg/
I'd read through the whole site and all the papers there when they were published, and the questions they raise are, to me, some of the most interesting intellectual themes. Then I realized you're an author on most of the articles, as well as Michael Levin, whose research I've been deeply curious about, listening to his talks, reading his papers. It makes sense that there's a common thread and convergence, but also a pleasant surprise.
Just wanted to express my appreciation for the work you and your cohorts are doing, how it's pushing the boundary and depth of our collective understanding. I don't have a question per se, but I feel that this area of inquiry seems both underappreciated by the general public and at the same time fairly open to those outside of academia - what might be called experimental mathematics and exploratory computer science. Maybe there's room for "popular-science" type authors, to explain how cool (ha) these ideas are, to translate the technical material to more digestible language for a wider audience.
The major thing that's always stumped me is how to design a universal fitness function that can take you from soup to a brain. IRL there is "the environment" which contains resources that need to be consumed to survive, and the majority of evolution (senses, bodyforms, metabolic pathways, etc) is based on navigating this environment and extracting energy. Can we say that life or intelligence is a meaningful concept without this universal background reference plane and survival game?
One of the things I think is limiting about conventional systems is what I call the "brain-in-a-vat" problem. They don't "exist" in any meaningful sense, they don't "experience" anything, they don't have any "reason" or "motivation" to do or develop anything.
I think of something more like a video game. The world of World of Warcraft or Call of Duty is a mathematical construct that doesn't truly reflect how our world works, but, through a window we can interpret it in a way that we understand and relate to. Some kind of video game environment with more relaxed and "open-ended" parameters and a simulated survival mechanism would be an interesting experiment.
The abstract mentions metabolic constraints. Can you share more of your thoughts or conceptual approach to this?
I agree, for the same reasons you mentioned, resource constraints will need to be baked in (they are already, to some extent, if you consider the constrained resource to be z80-CPU-seconds the program has access to). something more akin to energy in our real world, which can be manipulated, aggregated, shared, pooled, stolen, etc feels more natural, however.
imo meaningful intelligence could conceivably developed in a soup (even in-silico), unclear on what timeline, but grounding it with human and/or real-world data is necessary to make it useful to us (bio-compatible, if you will?)
Obviously, you have to "cheat" biology somewhere, we don't have hundreds of millions of years. Neural networks cheat by essentially throwing out the whole evolutionary process and environment that led to the brain, attempting to make a model that works like the brain. IMO that is too much cheating.
Starting with a substrate of random bits of assembly code strikes me as a little too low-level (which is not to dismiss this research at all, I think it's valuable, I'm just spitballing big-picture ideas). Have you considered starting with something like the Unreal or Unity engine, or even Minecraft?
You would lose the elegant and unopinionated search space of all programs, and you would have to engineer a more structured system (kind of like Spore but more simulation than game), but I feel like you might be able to get some more readily relatable behaviors sooner?