I really like this approach! I sort of think of the vision encoder here as an expensive high fidelity RAG encoder.
The thing I’d love to do with a system like this is train it to be KV cache ordering independent (ie permutation invariant at the page level). Basically each page’s KV cache should be understandable by the model in any ordering - which would allow you to go one step further and treat the KV cache of the vision encoded page as the chunk for the model to reason over.
Then all these zoom in for more detail tricks will extend naturally.
taylorfinley 17 hours ago [-]
Oh My Pi has done this for a while now, they call it Snap compact.
dvt 16 hours ago [-]
I remember reading a paper entitled "A Picture is Worth a Thousand Tokens" or something similar like 2-3 years ago. The reality is that no one really wants/needs contexts that big, anyway. It's hard enough making LLMs truly useful even with a small/medium context.
wangii 15 hours ago [-]
yep, deepseek
2muchtime 16 hours ago [-]
Ha! Didn’t realize that’s what it was doing, I’d compact and it would say snap compact with a little icon of a camera, so this all makes sense now.
himata4113 14 hours ago [-]
I always found it weird that we don't have glacial type input for llms or any kind of active-working memory.
There's no reason why we shouldn't be able to expose active relevant information that is only relevant for the next request: current agents running, time, etc.
There's also no reason why we shouldn't have a cheaper lossy input which uses way less bytes per token - see deepseek flash 4.1.
Maybe to save on doing the client-side layout and rendering?
I'm reminded of the MSPaint IDE:
https://www.youtube.com/watch?v=eyH4aXlB1Js
https://ms-paint-i.de/
The thing I’d love to do with a system like this is train it to be KV cache ordering independent (ie permutation invariant at the page level). Basically each page’s KV cache should be understandable by the model in any ordering - which would allow you to go one step further and treat the KV cache of the vision encoded page as the chunk for the model to reason over.
Then all these zoom in for more detail tricks will extend naturally.
There's no reason why we shouldn't be able to expose active relevant information that is only relevant for the next request: current agents running, time, etc.
There's also no reason why we shouldn't have a cheaper lossy input which uses way less bytes per token - see deepseek flash 4.1.