Hi HN! I've found this visualization tool immensely helpful over the years for getting an intuition for how an LLM "sees" some piece of text, and with a bit of elbow grease decided to move all compute to client side so I could make it publicly available.<p>I've found it particularly useful for<p>- Understanding exactly how repetition and patterns affect a small LM's ability to predict correctly<p>- Understanding different tokenization patterns and how it affects model output<p>- Getting a general sense of how "hard" different prediction tasks are for GPT-style models<p>Known problems (that I probably won't fix, since this was a kind of one-off project)<p>- Doesn't work well with Unicode grapheme clusters that are multiple GPT-2 tokens (e.g. emoji, smart quotes)<p>- Support for other models (maybe later?)
There's a video of a previous version of this tool here which I found really helped me understand what it was demonstrating: <a href="https://twitter.com/thesephist/status/1617747154231259137" rel="nofollow noreferrer">https://twitter.com/thesephist/status/1617747154231259137</a><p>It's really neat to see how this sentence:<p>> The first time I write this sentence, the model is quite confused about what token is about to come next, especially if I throw in weird words like pumpkin, clown, tweets, alpha, teddy bear.<p>Shows that the words pumpkin, clown etc are considered really unlikely. But when the sentence is repeated a moment later, all of the words become extremely predictable to the model.<p>Also worth noting: this demo runs entirely in the browser! It loads a 120MB ONNX version of GPT-2 using Transformers.js.
Really interesting! I wonder how well this syncs up with human intuition and general “information density”. If it’s a close match, maybe you could use this as a tool to help with skimming documents — the red (“hard to predict”) areas might be a good hint to slow down and read more carefully, while the green (“easy to predict”) areas might mean you could skim without losing too much unpredictable information.
It would be interesting to have attention visualized as well, similar to how it's done in BertViz:<p><a href="https://github.com/jessevig/bertviz">https://github.com/jessevig/bertviz</a>