6 ms·
Something I've wondered, maybe I should just do it if I can find some time, but... given DeepSeek's nice results on using rendered text as input, I'm wondering
by radarsat1 17d ago
Something I've wondered, maybe I should just do it if I can find some time, but... given DeepSeek's nice results on using rendered text as input, I'm wondering if anyone has given serious research efforts towards image-based diffusion methods for text.
As in, instead of all the complexities induced by discrete token generation, just generate the image of the text using standard image diffusion methods, then convert it to text.
If you used a single, monospace font, I bet this would be even pretty efficient, because the OCR problem becomes basically just direct template matching.
But I guess probably there is already a paper out there, I haven't searched. I'd be curious to know if it compares on par with token-based methods.
- deleted 17d ago[deleted]
- amelius 17d agoI've been wondering why we can't skip the entire token embedding step and just feed the model raw Unicode. I suppose the reason for that is efficiency and it's related to your question. Makes one wonder what other steps we can do more efficiently in code than in neurons.
- archerx 17d agoI think it would make training take much much longer but the models would be able to tell you how many Rs are in strawberry.
- amelius 17d agoYes. By the way I think it is a pity that all the tutorials start with token embedding; by teaching LLMs like that, you don't learn why they are necessary.
- p1esk 17d agoThere’s has a ton of work on character or byte level encodings for llms. The problem is you expand your input tokens by 3-4x. Expensive. Also, you still need token embeddings (I think you might be confused how that works).
- amelius 17d agoCould be! I have not (yet) spent much time learning about how llms work, just the occasional blog here and there. My main question is why we _need_ a bit of additional code to massage the input into tokens and especially why the neural network cannot do it, i.e., let the embedding be a latent space that forms naturally when training the network. If that makes sense.
- butvacuum 17d agoare you aware of n-grams?
- thatjoeoverthr 17d ago“let the embedding be a latent space that forms naturally when training the network” The embeddings are produced in concert with the network, to serve the network, and not created as a separate step. It’s actually very cool The look-up table is a matrix. Each row is an embedding and each row number is a token ID. You get a differentiable transformation from token ID to token embedding using a “one hot vector” and a matrix multiplication If you take the transpose of this matrix, you can convert an internal representation back to the same token form, but treat it as logits and give it to the sampler. So token embeddings are produced on demand in service of the model, according to the model’s needs. I found an example of this strategy in a paper as far back as 1980! In the other reply I recommend the Bengio paper. But do bite the bullet and try it.
- amelius 16d agoI'll have a look at that paper, thanks!
- thatjoeoverthr 17d agoEmbeddings are there to make continuous-space identities so you can run them through a differentiable model. Without this the tokens (no matter your granularity) are pure surrogate identities, and you can’t run a gradient through them. You also hit the curse of dimensionality hard because the model can’t perceive similarity. “Cat” and “kitten” for example are simply different atoms of text, but with embeddings, you can leverage what you learned about “cat” when you encounter “kitten”. Look at “A Neural Probabalistic Language Model” (Bengio, 2003). You can actually rig up an embedding variant of a Markov chain with just a few tokens of context, and no position coding, transformers, attention, none of it, and only minutes of training time. As long as you have the embedding lookup table trainable it will do some neat stuff.
- faangguyindia 17d agoDiffusion is already being used in drafters