Week 22, and every time, the Dark Lord wins
This month’s print offering is an experiment in AI, collaboration, and fiction. You, an apprentice mage, will define the parameters of a quest against the Dark Lord. You’ll receive a map (A MAP!) and a short story narrating that quest and revealing its conclusion.
You can get it here!
The maps are all different. Here’s a corner of one:
(Just think of all the things that could happen on the road to Numantia!!)
These stories will not be delivered in the usual way, as Risograph prints on nice paper. This time, the format is flimsy and functional, for reasons I’ll explain below.
So that’s it! You’ll receive a strange story, unique in this and all other universes, with a level of customization more organic and surprising than Mad Libs or Choose Your Own Adventure®®®.
While developing this offering, I have generated many of these quest stories myself, and they exhibit a… spookiness… that’s quickly becoming the signature of AI-generated art. But/and the fact that you guide the process, inject your own words and ideas, makes them feel not like random excretions but… dreams, maybe?
Go get one!
Nerdy context follows.
This offering represents the collision of two tools that each captured my curiosity separately. I’ll describe each briefly.
The magic printer
This is a service called Lob that prints and mails documents for you. Everything is controlled by code; you run a Ruby script and, zip, off your letters go. Lob’s rates are pretty cheap and, crucially, those rates remain constant whether you’re mailing a thousand people the same letter or a thousand people their own wildly different letter. (For instance, each one could have a different full-page map…)
In my very first Year of the Meteor newsletter, I talked about how I had once imagined my zine project as
an alternative to ⌘-P that would send its output not to the laserjet in the corner but the mailboxes of a thousand readers.
Lob is honestly as close to that ⌘-P as anything I’ve yet found. The drawback—significant—is that the output is utterly charmless. Lob’s letters basically look like policy updates from your credit card company. (In fact, I think that’s the kind of thing for which Lob is mainly used.)
But that’s okay. I like functional; I like un-precious. And, as you’ll see, I’ve tried to like “go with the grain” here and make Lob’s format part of the scenario.
The ghostly writer
In the beginning of this year, OpenAI was preparing to announce it had developed a very powerful “language model”—an AI system scary-good at many text-related tasks, including writing. The organization’s policy team, as part of an ongoing consultation with People Who Think About These Things, invited me into their office to look at the system and offer any advice I might have on how, or whether, they ought to release it for the world to use.
I marveled at the system’s capabilities; I offered no useful advice. Ultimately, OpenAI decided not to release the code underpinning GPT-2, for fear it would make it breathtakingly easy to generate fresh torrents of disinformation. (I think this decision was wise, and, in general, I think OpenAI’s thoughtfulness has been remarkable and laudable.)
The organization did release a simpler version of the system that is not scary-good but merely very good. When it generates text, this miniature GPT-2 can keep track of characters and situations from paragraph to paragraph. That might not sound like much; I mean, isn’t it the bare minimum for telling a story? It might be—and previous AI language models, even when they were impressive, couldn’t manage it. They would generate a few perfect sentences… and then completely lose the plot. (I contended with this in my earlier AI projects.)
This mini GPT-2 was trained by OpenAI on many gigabytes of text scraped from the web. With that as a solid starting point, I’ve now fine-tuned it on several hundred megabytes of fantasy fiction.
So now it knows about dragons.
(It’s my strong opinion that these systems perform best under the heavy influence of genre. Maybe I should elaborate on this notion sometime; the short version is that genre tropes work like tracer dye, and you can watch them move through the system—ingested, imitated, transformed, turned around.)
So—coming back around to the new print offering—you can see how these two tools have collided. The production of a single story follows this flow:
- Overall meta-scenario, supplied by me
- Story skeleton, supplied by you
- Paragraphs of prose, generated by GPT-2
- The printout, mailed by Lob
There’s a lot of “glue” between those layers, most of it Ruby code. There’s a script that generates the maps (THE MAPS!); a script that generates names for people and places; a script that feeds the story skeletons into GPT-2 and filters its output; a script that renders that output as a PDF; and so forth. (The printouts will all include a kind of “technology colophon” describing the code used along the way.)
Ah! It’s fun to be able to do this stuff. This print offering is an experiment, truly, and if it goes well (or, if it goes poorly, but in an interesting way) I think it will suggest some new possibilities.
This is mysterious terrain. Ripe for a quest.
May 2019, the train near Modesto