Aside:
I've found that 'not'[0] isn't something that LLMs can really understand.
Like, with us humans, we know that if you use a 'not', then all that comes after the negation is modified in that way. This is a really strong signal to humans as we can use logic to construct meaning.
But with all the matrix math that LLMs use, the 'not' gets kinda lost in all the other information.
I think this is because with a modern LLM you're dealing with billions of dimensions, and the 'not' dimension [1] is just one of many. So when you try to do the math on these huge vectors in this space, things like the 'not' get just kinda washed out.
This to me is why using a 'not' in a small little prompt and token sequence is just fine. But as you add in more words/tokens, then the LLM gets confused again. And none of that happens at a clear point, frustrating the user. It seems to act in really strange ways.
[0] Really any kind of negation
[1] yeah, negation is probably not just one single dimension, but likely a composite vector in this bazillion dimensional space, I know.
Do you have evals for this claim? I don't really experience this
quick search:
- https://www.reddit.com/r/ChatGPT/comments/1owob2f/if_you_tel...
- https://www.reddit.com/r/ChatGPT/comments/1lca9mq/chatgpt_is...
If given A and not B llms often just output B after the context window gets large enough.
It's enough of a problem that it's in my private benchmarks for all new models.
That's just general context rot, and the models do all sorts of off the rails behavior when the context is getting too unwieldy.
The whole breakthrough with LLM's, attention, is the ability to connect the "not" with the words it is negating.
Large enough is usually between 5 to 10% of the advertised context.
This doesn't mean there's no subtle accuracy drop on negations. Negations are inherently hard for both humans and LLMs because they expand the space of possible answers, this is a pretty well studied phenomenon. All these little effects manifest themselves when the model is already overwhelmed by the context complexity, they won't clearly appear on trivial prompts well within model's capacity.
I've noticed this in Latin too.
Like, in Latin, the verb is at the end. In that, it's structured like how Yoda speaks.
So, especially with Cato, you kinda get lost pretty easy along the way with a sentence. The 'not's will very much get forgotten as you're waiting for the verb.