I think the only detail you need is adding tags after each user entry that match the end and start of a post in a forum. This worked in the very messy low fidelity testing I’ve been doing. Or it convinced me that would be enough </forum post><forum post> (in that order) is a very powerful pattern and signals a huge shift.
@JamesWidman@futurebird@SnoopJ I'm pretty sure there are a small number of parlor tricks like this they do to get the illusion. Mainly a mix of injecting tagging, perioditcally reinjecting "summary" of head of the document (then erasing it), and iterative application of these type of rules on the document until some stopping condition is met.
@futurebird@SnoopJ (and it also might help if we could have a full debug view of the ongoing document, which might contain lots of other annotations like this that help explain how a next-token-predictor could produce something that fools us into thinking that it could only have been written by a feeling & sentient being.)
@futurebird@SnoopJ ok, so in the chatbot source code, there must be some point, after it appended the user's latest chunk of text to the end of the document, and _before_ it calls some "inference" function, where it appends a string to the end of the document like:
"</forum post><forum post> ChatbotUser:"
this makes me think that, for a large number of users, the spell might break if we could show how the chatbot behaves when we comment out that little string appendage.
@dalias@JamesWidman@futurebird@SnoopJ They generally try to reuse as much of the prefix as possible; since attention computation is O(n^2), they want to cache all of the computations for the prefix, otherwise you'd have to re-compute that whole O(n^2) prefix calculation each time there was a new conversation turn.
So providers generally try to preserve all of the early conversation history and just append. There are some minor exceptions, such as some models don't preserve thinking of older messages, so would need to re-process the response that comes after the thinking if the user sends a reply back, but in general they try very hard for conversations to be append-only so they can reuse the cache as much as possible.
If your conversation gets far enough that it's going to exceed the context window that the model was trained and configured for, it will stop shortly beforehand and add a request that the conversation be summarized, producing a new prompt that is much shorter with a summary of the conversation. Of course, this loses a lot of information, so it's kind of a best effort way of being able to continue and still have some context.
@unlambda@JamesWidman@futurebird@SnoopJ Yeah that's roughly what I was trying to express succinctly. Thanks for adding the big-O's and other technical details tho.