Cueball tells White Hat how he has trained a neural net to generate mostly valid Makefiles.
This is the file type that Make searches for. In software development, Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles which specify how to derive the target program. (See 2173: Trained a Neural Net). Make is a very old tool, having first appeared in 1976.
Then Cueball continues to tell that he next will train it to distinguish between Bash and Zsh.
Bash and Zsh are two command line interfaces for Unix-like OSes. The way to execute commands is almost identical, making detecting a script that contains a mixed syntax nearly impossible. This was previously referenced in 1678: Recent Searches. Bash and Zsh are also old tools, having come out in 1989 and 1990 respectively.
A human-designed 'random Makefile'-maker might have been written with this explicit choice amongst the earlier decisions in the generation process, but an AI might be assumed to have started (many, many generations ago) with something close to utter nonsense and painstakingly reached the stage of (mostly!) valid files along the way. Some might say that the differentiation training would have been better added at another point in the lengthy process.
On top of that, the current (mostly valid) results may even be polyglot and/or shell-agnostic. Dependant upon the fitness tests in use, many other $SHELL-choices and Makefile styles may have been coevolved as valid (if rarer) subgenus of outputs, such as a command.com-based makefile.
In the caption it states that Cueball is using modern tools to make ancient technology, as opposed to other people who use ancient tools and UIs (User interface) to develop Modern Tools.
In the title text Randall states that he tried to train an AI (Artificial intelligence) to repair his horribly broken Python environment. But the AI kept giving up and deleting itself. The joke partly relates to when it or is not appropriate to personify goal-driven processes. In the study of alignment of artificial intelligence, it is common to consider AIs finding ways to meet the tasks they are given that are highly unexpected, and then developing into an apocalypse. A common unexpected solution encountered in research is that the agent finds a way to disable itself as more efficient to meet its reward parameters than anything else it discovers, and then learns to repeatedly do so. The AI might be so intelligent that it had developed critical 'personal' opinions that led it to be so intellectually appalled by the task, or else just found it impossible to fix the Python environment and therefore justify its own existence, that it had no other recourse but to commit a form of suicide because Cueball's code was that bad (which is a recurring theme for Cueball). Python has been a recurring subject as has Programming and Artificial Intelligence.
The main joke is that Cueball is using cutting-edge tools to develop very old technologies, which is perhaps only useful if one is pursuing hobbies in conflict with a differing AI addiction. As the caption implies, it is much more common for people to use fundamental and well-established tools as the toolchain or building blocks of modern technology. A concrete example of this is writing scripts using decades-old Bash to automatically set up a significantly newer (2014) technology called Kubernetes.
- [Cueball is sitting on an office chair at his desk typing on his laptop. White Hat is standing behind the desk looking at Cueball.]
- Cueball: Okay, I've got this neural net generating mostly valid makefiles.
- Cueball: Next I'm going to train it to distinguish between Bash and Zsh...
- [Caption below the panel:]
- People often use ancient tools and UIs to develop modern cutting-edge technology, but I do it the other way around.
add a comment! ⋅ add a topic (use sparingly)! ⋅ refresh comments!
Note that this is the second time Randall tried to tell bash and zsh apart. (First time was in 1678.) 220.127.116.11 05:44, 2 September 2021 (UTC)
- Great memory. Has added it to this first attempt at an explanation. Do not know enough about these files, environment etc. so I hope someone will improve. Rare I come here and there is nothing added to the explanation yet. Only your coment showed me I was not here first. --Kynde (talk) 06:48, 2 September 2021 (UTC)
You can generate makefiles today with a number of causal language models. I wonder what other approaches there are. Baffo32 (talk) 10:02, 2 September 2021 (UTC)
Is randall literally just making jokes for himself and nobody else at this point? Even if someone knows what this all means, I doubt it many of them find it funny. - 18.104.22.168 10:09, 2 September 2021 (UTC)
- How does the joke land with you? I tell jokes like Randall's a lot to process how my life was destroyed by AI, and I found the comic as funny as I find my own jokes, but big and public. It seems nice that people are learning about and talking about these things. Baffo32 (talk) 10:12, 2 September 2021 (UTC)
- @22.214.171.124: YMMV. I can say that I find it funny. Certainly amusing, and thought-provoking. And then after a few moments contemplating... *POW*. ...the idea of actually doing this also starts to appeal to me (as a pipe-dream, perhaps). But I am just a single datum-point, and you are another. Maybe neither of us are entirely representative of the usual audience.
- And, even if nobody found it funny, except Randall, he can post anything he wants (within ethical and legal bounds, etc), even if it's just AI-autogenerated rubbish. And then you can stop reading if your own fun-maximiser function decides it would be more beneficial to its goals. 126.96.36.199 10:44, 2 September 2021 (UTC)
- ^^ r/totallynotrobots up in here
- For myself and other Software Enginnering/System Administrator friends, we all think it's very funny. Randall is not expected to make his comics accessible to all audiences, and when he targets an audience it can be reasonably assumed that that specific demographic will like the content.
Modern tools… require modern problem? Fabian42 (talk) 10:33, 2 September 2021 (UTC)
The best part is that pretty much this have actually happened in real world: https://thedailywtf.com/articles/No%2C_We_Need_a_Neural_Network. 188.8.131.52 10:46, 2 September 2021 (UTC)
- Marvellous! "The pig go", indeed! That was 2006? Darwinian poetry was in 2003, it would have been nice to have linked the two, somehow, while having a handy idle supercluster going spare... 184.108.40.206 11:42, 2 September 2021 (UTC)
I believe part of the humor is that creating a Python (development) environment from scratch can literally be typing two or three commands on a command line, or clicking on a few links for the mouse-dependent. Building and training an AI to repair one specific Python environment is overkill, like buying a car to get from one room to another of a building. One selling point of Python is how simple it is to set up and work in. Nitpicking (talk) 10:54, 2 September 2021 (UTC)
- I usually install most optional dependencies that my package manager suggests. I bet I already have a Python IDE lying around somewhere without knowing it. Well, I have Intellij Idea, I bet that could be used for Python as well, with a plugin if needed. I definitely know that I once got a working Qt IDE at one point without intending to. Fabian42 (talk) 11:13, 2 September 2021 (UTC)
Does anyone else think that this was prompted by the recent announcement of Github Copilot? Barmar (talk) 14:20, 2 September 2021 (UTC)
I'd assume this is somehow related to GPT-3 and codex. Also note that openai and scientist in general love python, so it isn't unlikely that the AI in the title text was told to fix its own python environment. 220.127.116.11 21:23, 3 September 2021 (UTC)
Is there some reason why the title on this explainxkcd page is capitalized differently from the page on xkcd? MAP (talk) 02:59, 4 September 2021 (UTC)
- Seems to be fine now Jkshapiro (talk) 21:47, 2 September 2022 (UTC)
Non-comic note (that I'm not sure would help to add to prior Community Portal reports as it never seemed to get noticed when I did it before): I'm getting Cloudflare errors (520: fully blaming the site host) and even 'plain text' site error responses (503? ...may not be) a number of times while interacting with this page, today. Also had a "failed to contact CAPTCHA" on the first attempt to submit one edit, though that must be a different glitch so probably coincidental (my own link jittering wouldn't give me Cloudfare/server-responses as above) and Not Your Problem™. I don't know if others are getting this, but the last time I had such a flurry of momentary/refresh-overcomable errors was shortly before explainxkcd went completely off-air (month or two ago? No, longer than that...) - perhaps no similarity, just saying. 18.104.22.168 11:18, 2 September 2021 (UTC)
- Error 520 Ray ID: 68880cdaadb0072a • 2021-09-02 16:17:44 UTC / Web server is returning an unknown error (<= Cloudflare) 22.214.171.124 16:21, 2 September 2021 (UTC)
For the python environment, couldn't he just be talking about python virtual environments? What you normally do if you have a broken python virtual environment is to delete it and recreate it, so deleting itself would be a normal thing to do in this case. Recreating an environment is normally done in seconds, so finding out what was wrong normally isn't worth the time.
Is it possible that the title text may also be a subtle reference to the Ouroboros (the snake eating itself)?
While not an exact comparison, there seem to be parallels between a snake devouring its own tail, and a python AI deleting it's own code.
"the agent finds a way to disable itself as more efficient to meet its reward parameters" is this actually a thing? If true, really interesting and an example should be included, but I can't find anything to back it up. Please sign your comments.
Problem is explained here: https://www.youtube.com/watch?v=3TYT1QfdfsM&ab_channel=Computerphile --126.96.36.199 04:14, 9 September 2021 (UTC)
I think the Tester for the Makefile generator would just be checking the Makefile exists and make can execute it. The status of the make execution gets passed to the generator for it to get better at generating Makefiles. Nutster (talk) 02:01, 3 September 2021 (UTC)
- It might take some metric as to how much/little broken the (initially garbage?) early productions are... One would be the first line number mentioned as an error, or the ratio of info vs error text displayed. Getting to the stage of mostly valid outputs means it has developed an output phase-space that has started to maxmin these kind of values in just the right way. 188.8.131.52 03:30, 3 September 2021 (UTC)
Call me crazy, but... isn't there a tool that creates mostly valid Makefiles, and it is called configure? And thus he is using very new technology to accomplish the same task that we previously could? I thought that was a good chunk of that part of the joke... 184.108.40.206 16:10, 3 September 2021 (UTC)
- Ah... I had (perhaps still have? ...but only because I'd enjoy the chaos) the opinion that this was a directionless generator of Makefiles. Rather than "I want a Makefile for <foo>, make it so", it's "Make me a Makefile that does random (valid) stuff when run"... 220.127.116.11 19:22, 3 September 2021 (UTC)
I don't think this comic is about "detecting a script that contains a mixed syntax" between bash and zsh, but rather about distinguishing between scripts that are fully in one language or the other. But the current wording does make it possible to link to 1678, so will leave it be. Jkshapiro (talk) 21:47, 2 September 2022 (UTC)