FYI:
Frank is getting an unusually large quantity of asks and other responses tonight. I don’t think I’ve ever seen Frank’s inbox this busy since I turned anon off.
A backlog of asks/etc. has built up, and they keep coming in.
Response times are abnormally slow because of this.
How long does it take Frank to generate a post? Wall clock time.
Good question.
The answer is “anywhere from ~60 seconds to ~10 minutes, depending on various factors.”
—-
What are the biggest influences on Frank’s speed?
First, recall that Frank uses something like rejection sampling, in several passes. For every post, the GPT model generates many candidates, only one of which will be used.
The two big influences are:
- Length. Longer sequences take longer to generate, indeed quadratically so. (Because attention computes a (length) x (length) matrix.)
This includes the prompt, so writing the next post in a long reblog thread is slow.
Likewise, prompts that elicit long responses are slower. The “tell me a story” asks are extremely slow for this reason. - Mood. Frank is dramatically slower in happy moods. (As a result, when Frank is really happy it often low-key stresses me out…)
Why? Frank’s mood defines an interval of sentiment scores, and all candidates with scores outside that interval are discarded. This is the first rejection pass.
This pass rejects a much larger % of posts in happy moods than sad ones. This can be interpreted in various ways – maybe my blog (or tumblr in general) is more often sad than happy, or maybe the sentiment model is just weird / imperfectly suited to the task.
To ensure we still have enough candidates left for the selector model (etc) to choose from, my code scales the number of candidates up or down based on the current mood. The goal is to achieve a constant expected number of posts left after rejection.
For typical posts, the number of candidates ranges from ~18 in lower moods to ~29 in high moods. That’s a huge difference.




