When it comes to creating actual passages of text from prompts (I’m using vanilla text-davinci-002 -so no training)
my current thinking is the prompt needs:
1 characters appearing in a scene:
2The story so far:
3Summary of last paragraph
4Text of last paragraph
5Summary of next paragraph
And it will produce
6the text of next paragraph:
This produces a couple of problems:
Problem: length decay…
You’ll need to feed it a good strong paragraph 1 to give it a good idea of what length to use for the next one.
However, gpt3 is lazy, and responses will tend to get shorter and shorter until we’re just left with a response that’s similar to the summary.
One solution is to specify a length… and cheat.
If your prompt says
Text of last paragraph (use at least 100 words)
But then for the paragraph to be generated, say:
Text of next paragraph (use at least 500 words):
Then gpt3 will know it has to raise its game for the next paragraph.
Problem: voice decay
In the same way, the voice and style of the prose also decays.
If you start off your first paragraph with a very strong character voice, there will likely be less and less of that voice as the writing continues.
Solutions:
I’m tempted to say we have a “tone of voice” prompt in it every time, including a section of prose, but that seems like it’d be expensive.
Another alternate would be to fine-tune with only books in similar styles. Again, I don’t know how well it’d work.
A third method would be to write every (say) 10th paragraph manually to keep the style in check
As a shorthand, I’m trying little cues in the “text of new paragraph” prompt. For example:
(writing style: hard boiled fast moving descriptions with active language)
(writing style: lots of metaphors and descriptions of people, places and feelings)
(writing style: highly detailed descriptive)
This doesn’t work very well, but does have some effect, I think.
Problem: detail of prompts
The “summary of next paragraph” needs to be incredibly tightly written.
It should never use “him, her, they” but always include names.
It should be a very clear set of instructions - far more succinct and well crafted than we’ve been generating automatically up to now. The kind of waffly language that we tend to get from expanding plot summaries won’t cut it.
In creating prose, Gpt3 tends to:
- Introduce unwanted deviations from the plot
- Not bring in enough extra colour (like character descriptions, atmosphere, etc.)
- Run on past the prompt into the next paragraph, scene, or even to the end of the book.
It needs to be both more expansive, and more constrained.
Doing a four-stage rewrite helps with (a) and (c). Reduce the temperature to about .3: put in the prompt
Text of last chunk
And
Summary of next chunk
Then run the following question (sorry about making this a 4 step re-write, but I can’t find phrasing that works any other way):
Which statements in “text of last chunk” contradict those in “summary of next chunk”?
Once you have the results of this, add them to the prompt and run:
rewrite “text of last chunk” resolving these inconsistencies:
Next do:
Which actions in “text of last chunk” are repeated in “summary of next chunk”?
And then:
Edit “text of last chunk”. delete repeated actions:
(b) is trickier. It’s a very subtle part of the writer’s art to decide and place details. When do you want to describe a character, and when do want to leave them faceless? When is a good time to stop the plot and concentrate on the atmosphere? What kind of observation on the human condition would make sense for this character to arrive at at this moment? How should you trail a small detail that will come up later in the story?
It’s possible there are some formulaic answers to some of these questions, but it’s complicated, and has to do with overall rhythm and style. It’s also where highly original comparisons and interactions come together. Maybe this is the bit you need to be an intelligent, conscious entity to think about….