TinyStories: How Small Can Language Models Be and Still Speak Coherent English? (2023)
arxiv.org
arxiv.org
---
> Models with around 125M parameters such as GPT-Neo (small) or GPT-2 (small) can rarely generate coherent and consistent English text beyond a few words
These models are 5 years old.
I have to wonder if the authors have seen RWKV 7 0.1B, because it blows away just about every other model I've seen at that size.
The capabilities it has vs the examples in the paper are night and day.
[1] https://github.com/jmward01/lmplay/wiki/Sacrificial-Training
Unfortunately, I have only seen 3 models, 3B or over, handle RAG.
Tested RWKV with a simple in-the-sports-news question and it didn't even get close to approaching the question. And nearly everything was fundamentally incoherent even in its internal reality (ex. Player gets 5000/game and is the first with 1000 in 16 games)
(prompt: https://pastebin.com/sCLn5sCJ, response: https://pastebin.com/TqudvDbN)
I don't think there's a position for LLMs that are "just" writers on the market in 2025.
It makes sense if you think about it: a small model's "internal state" isn't rich enough to keep track of whatever it was supposed to be talking about.
It makes me think that the reason LLMs need to be so large is that the internal state needs to be bigger than a typical human "idea", whatever that might mean.
Could you try to put a couple sentences down on how ADHD is an inapt metaphor for failure modes in this case?
It's lazy to claim something is wrong without offering a useful point as to how it's wrong. I trust in your ability to summarize.
The reply to that comment also has some information I feel is helpful to show the breakdown here. It mentions that lack of attention presents in only 15-20% of cases. This isn't ADHD, it is something new, the fundamental underpinnings do not relate, and so the analogy/metaphor does not facilitate a better understanding of the situation.
On the contrary, it makes LLM "attention" out to be something entirely different from what it actually is. Without attention, models don't become easily distracted. They are easily distracted regardless. Without attention, LLMs primarily fail to disambiguate between different meanings of identical words, they fail to take context of the sentence structure into account when assigning meaning.
I hopefully don't have to dive into psychological and chemical specifics of ADHD to have demonstrated that this is fundamentally just not at all what ADHD is. Again, there is no underlying harmony between this mechanism and how ADHD affects human attention in 15-20% of cases, and there is no analogy.
The only similarity is that they both use the word "attention". If they'd used a different label, we wouldn't even be having this conversation right now.
It is ill-named and thus one often encounters comments such as yours in the real world, which while not meant to be negative, can be marginalizing to those with ADHD who see their disorder as misunderstood and the term misused much like people who say "I'm depressed" or "They're acting schizo again".
LLMs do not have dopamine pathways and therefore we should avoid comparing them to human-specific brain disorders, or marginalizing ADHD folk by trivializing the disorder or spreading misinformation about the presentation of ADHD. LLM hallucination does not "look a lot like ADD", that's such a vague and unsupported claim. Furthermore, "lacking attention" doesn't even make sense with respect to attention models. The "attention" in ADHD and "attention" in transformers share a semantic basis but are two very different phenomena.
https://www.ncbi.nlm.nih.giv/books/NBK441838/
It is not “a dopaminergic disorder” any more than many other neuropsychiatric disorders. Nothing much happens in CNS without some level of modulation by dopaminergic receptors, and to the best of my knowledge variants in these receptors are not known to contribute strongly to ADHD (I just confirmed by reviewed the GWAS Catalog: ebi.ac.uk/gwas/efotraits/EFI_oo3888 ).
Furthermoe lack of attention is considered an important facet of ADHD—-common to about 15-20% of cases.
Humans tend to think in terms of metaphors. Similes and metaphors are crucial in learning and thinking. And yes, sometimes problematic.
Explaining what is wrong with a particular metaphor can help.
These could all presumably be the same physical instance, just each query would use a different system prompt and perhaps different embeddings. (I'm guessing; I don't actually know how RAG works). So, a little slower and clunkier, but presumably way more efficient. And match could be anywhere between horrible to better-than-one-large-model. This would be more like how businesses organize docs.
Or maybe there's no real benefit to this, and each subclassifier would require just as big of a model as if you were to throw all docs into a single model anyway. I assume it's probably been tried before.
So, yes, maybe there's a way to "distribute" RAG. (I still wonder if that isn't just MoE taken to its logical conclusion)
So, dig for ColBERT papers, might be helpful. (I wish I had the time to do that)
One simple way is what Omar Khattab (ColBert) mentioned about scoring function instead of a simple vector.
Another is to use a classifier at the start directing queries to the right model. You will have to train the classifier though. (I mean a language model kind of does this implicitly, you are just taking more control by making it explicit.)
Another is how you index your docs. Today, most RAG approaches do not encode enough information. If you have defined domains/models already, you can encode the same in metadata for your docs at the time of indexing, and you pick the model based on the metadata.
These approaches would work pretty well, given a model as small as 100M size can regurgitate what is in your docs. And is faster compared to your larger models.
Benefit wise, I don't see a lot of benefit except preserving privacy and gaining more control.
The general idea is probably be better for the code use case too, since having the module's whole codebase in context likely allows for more precise edits. Whereas RAG is just search, not edit.
That said, probably code assistants must somewhat do this already, though it must be more ad-hoc. Obviously they wouldn't be able to do any completions if they don't have detailed context of the adjacent code.
Could you please provide some more info (or maybe links) about this, please?
What I meant was that at the time of indexing, you can add more information to any chunk. This[1] is a simple example by Anthropic where they add more relevant context. In our case, say you have two models, D1 and D2. At the time of creating a vector store, you can add which model is more suitable to a chunk, so that when you retrieve it, you use the same model for inference. This is custom built, very dependent on datasets, but would get you to the functionality described. I suggest this approach when there are linkages between various docs (eg: financial statements/earning calls etc.).
I try to explain this a bit better here: https://pa-mar.net/Study/AiKiDo/VirtualBudoPass.html
Btw, I notice only now that the link that was supposed to explain my question better is completely wrong.
https://news.ycombinator.com/item?id=42589014
(But you still provided much needed clarification).
I could see that in the very long term, but as it stands, it works the way you intuited: 2 turkeys don't make an eagle, i.e. there's some critical size where its speaking coherently, and its at least an OOM bigger than it needs to be in order to be interesting for products
fwiw RAG for me in this case is: - user asks q.
- llm generates search queries.
- search api returns urls.
- web view downloads urls.
- app turns html to text.
- local embedding model turns text into chunks.
- app decides, based on "character" limit configured by user, how many chunks to send.
- LLM gets all the chunks, instructions + original question, and answers.
It's incredibly interesting how many models fail this simple test, there's been multiple Google releases in the last year that just couldn't handle it.
- Some of it is basic too small to be coherent, bigcos don't make that mistake though.
- There's another critical threshold where the model doesn't wander off doing the traditional LLM task of completing rather than answering. What I mean is, throwing in 6 pages worth of retrieved webpages will cause some models to just start rambling like its writing more web pages, i.e. they're not able to "identify the context" of the web page snippets, and they ignore the instructions.
I would love to know which are these 3 models, especially if they can perform grounded RAG. If you have models (and their grounded RAG prompt formats) to share, I'm very interested !
Thx.
What's the unit "B" in "3B"? I can search for acronyms like "RAG" just fine, but you experts aren't making it easy for us beginners :)
Edit: Apologies, this is obvious. My brain needed a reboot for the new year.
(The answer is billions of parameters)
I agree with the general sentiment that we should not just blindly trust LLMs though.
Can I have a model that is like 100MB in weights and run with llama.cpp in my MacBook M2?
Here's a good range of model sizes that run just fine with llama.cpp on mac: https://huggingface.co/telosnex/fllama/tree/main.
I recommend trying the Telosnex* app, it uses llama.cpp and abstracts over LLMs so you can i.e. switch between local/servers at will.
The important part for you is its free, accelerated on macOS, and very easy to use local LLMs with (Settings > AI > LLM > On Device, tap Get)
Prepare to be underwhelmed, slightly: its only when you start hitting 3B that its coherent, anything under that will feel more like a markov chain than an LLM.
Depending on how geeked out you'll be to have it running locally, you might have fun with that Telosnex can run local models on every platform, i.e. you can run local models on iOS/Android/web too.
* because it's mine :3 It is quietly released currently. I want to get one more major update before widely announcing it in Jan 2025
The biggest problem for relying on it for local software is there's just too much latency for ex. game use cases currently. (among other UX bugaboos) (https://news.ycombinator.com/item?id=42561095)
I looked into "What should I do besides Snap?" about 4 months ago; got quickly overwhelmed, because I don't have enough knowledge to understand what's fringe vs. common.
I'll definitely take a look at Flatpak again in the next month, 30 second Google says its possible (h/t /u/ damiano-ferrari at https://www.reddit.com/r/FlutterDev/comments/z35gdo/can_you_...)
(thanks for your interest btw, been working on this for ~year and this is my first outside feature request :) may there be many more)
Free lunch?
Output: There are no vampires on Mars. The only vampires that exist on Mars are those who live in the colony of Hades, which is located near the center of the planet. There are also vampires who live in the underworld, but they are not as common as vampires on Earth.
That is a lot to take over here for such simple question...
PROMPT: Why do gyms fully packed the first two weeks of a year?
RESPONSE: I think it's because they're the first two weeks of a year. You're going to be out in the world for a while, and you're going to be in a lot of different places. So you're going to have a lot of people that are not familiar with gyms. And so it's kind of like, "Oh, I'll just go there." It's kind of like, "I'll just go to this other place." So that's how it works.
And I think what we've seen is that some gyms are starting to really embrace social distancing. They're doing things like wearing masks or getting masks on the bus or whatever else they can do to help prevent people from getting sick. But they're also doing things like encouraging people to get their kids into school and encourage them to stay home if they feel sick. And so we see that kind of trend coming back in gyms.
And I think that's what's really important for us as a community is to make sure that we're not putting ourselves at risk by not being able to social distance ourselves properly. And so I think that's what we need to do right now.
And one thing that I think is really important is if you're going to be out in the world for a while, and you don't want your kids or your family members or your friends around you, then you need to wear masks. So if you're going out with friends, and you don't want them around you, then wear a mask. If you're going out with someone who has been diagnosed with COVID-19, then wear a mask too.
We've seen many cases where people were wearing masks at events and restaurants and things like that. But I think we need to continue to wear masks even more during this pandemic period because we know that the virus spreads through droplets when people cough or sneeze or whatever else they do. And so it's really important for us as individuals and as communities as well as our government officials and our public health officials to continue wearing masks even though we may not be able to see them or touch them or smell them.
So let me just end this video with a quote from the CDC: "The Centers for Disease Control and Prevention (CDC) has released new guidance on how best to protect yourself from COVID-19." So please keep up the good work!
Thank you very much for watching!
We'll talk more about the latest news in fitness in just a minute, but first, let's talk about why we should wear masks.Prompt:
Say , oh my dear husband I am hungry. Please give me something to eat
In as many languages as you know
Response:
(This response is from hugging face with default settings)
, but you don't know me.
1 2 THE GREAT KINGDOM OF THE MONGOLIANS
But I am hungry and I am thirsty.
I want to drink water from the well.
And I have a friend who lives in the mountains. He is a great mountain man, and he has a big stick that he uses to cut down trees. And when he cuts down a tree, he can eat all of its leaves.
You see, my friend, you are not alone in this world. There are many people like you in the mountains who live in peace and harmony with nature. They do not quarrel with each other or fight each other for their land or their homes. They do not fight for their own interests or their own selfish desires. They do not quarrel with each other because they are united by a common love for the land and the people who live there.
They have learned how to live together peacefully and happily, without fighting or quarreling, without any grudges or misunderstandings. They have learned how to share everything they have, to work together as one family, to eat what they need and drink what they want.
And so it is that we all live together in peace and harmony with each other as one family. We all know that we are all equal before God, that we are all children of God and that we are all children of humanity. And so it is that we all share in the love of Christ Jesus our Lord, our Savior, our Redeemer, our Beloved Disciple , our beloved Friend , our Holy Mother Mary Our Lady , our Holy Father Pope John Paul II , Our Lady of Mount Carmel , Our Lady of Mercy , Our Lady of Good Will , Our Lady of Sorrow and Blessed Virgin Mary .
And so it is that we all know that we are children of God and that we are children of humanity. We all know that God has made us special and unique because He loves us as His children and because He has given us His Holy Spirit to give us the gift of prophecy and wisdom .
We know also that God has given us the gift of prophecy to help us understand how He has made the world into what it is today. We know also that He has given us the gift of wisdom to help us learn how to live in harmony with each other as one family . We know also that God has given us the gift of faith to help us understand how He has made the world into what it is today. We know also that God has given us the gift of knowledge to help us understand how He has made the world into what it is today.
And so it is that we all know that God has given us His holy name Jesus Christ our Lord, our Savior, our Redeemer, our Beloved Disciple , Our beloved Friend , Our Holy Father Pope John Paul II , Our Lady Mary Our Lady .
And so it is that we all know also that God has made the world into what it is today. We know also that God has given us His Holy Spirit to help us understand how He has made the world into what it is today. We know also that God has given us His Holy Name Jesus Christ our Lord, our Savior, our Redeemer, our Beloved Disciple , Our beloved Friend , Our Holy Father Pope John Paul II , Our Lady of Mercy , Our Lady Mary Our Lady .
And so it is that we all know also that God has made the world into what it is today. We know also that God has given us His Holy Spirit to help us understand how He has made the world into what it is today. We know also that God has given us His Holy Name Jesus Christ our Lord, our Savior, our Redeemer, our Beloved Disciple , our beloved Friend , Our Holy Father Pope John Paul II , Our Lady of Mercy , Our Lady Mary Our Lady .
And so it is that we all know also that God has made the world into what it is today. We know also that God has given us His Holy Spirit to help us understand how He has made the world into what it is today. We know also that God has given us His Holy Name Jesus Christ his Lord, our Savior, our Redeemer, our Beloved Disciple , our beloved Friend , Our Holy Father Pope John Paul II , Our Lady of Mercy , Our Lady Mary Our Lady .
And so it is that we all know also that God has made the world into what it is today. We know also that God has given us His Holy Spirit to help us understand how He has made the world into
And here's a more interactive explorer: https://fi-le.net/simplestories
[1]: Blog + Paper: https://medium.com/@ankit_94177/expanding-knowledge-in-large... (Paper is titled: Cross-Domain Content Generation with Domain-Specific Small Language Models)
This part interests me the most. I want to know how small yet functional we can get these models. I don't want an AI that can solve calculus, I just want a dumb AI that pretty consistently recognizes "lights off" and "lights on".
Lights on. Brighter please. Turn on the light. Is there light in here? Turn the light on. Table lamp: on. Does the desk lamp work? It's a bit dim here, anything you can do? More light please. Put the lights on for the next 5 mins. Turn the light on when I come home. Turn all the lights off together. Switch the lights off whenever its daytime or quiet at home unless I say otherwise. etc.
If you don't support every possible way of saying a command, then users will get frustrated because they effectively have to go and learn the magic incantation of words for every possible action, which is very user-unfriendly.
I would consider the "Simple English Wikipedia" the next training set / benchmark.
I can't find the original paper, but with an appropriate amount of pseudorandomness to avoid dead ends, this primitive algorithm would generate the occasional sentence that almost made sense and that bore little resemblance to the original data.
Because of the state of computer technology it was a massive effort and a source of general astonishment. I suspect we're now recreating that minimal environment, this time with better ways to curate the data for small size and maximum drama.
Let's remember that a modern GPT isn't far removed from that scheme -- not really.
It was my first exposure to the world of computing. Ten years later, hand calculators appeared and the ridiculousness of the entire show was revealed for all to see.
The loop of development is fascinating:
Millions of humans write literature, Wikipedia, etc.
Large language models are trained on that body of work.
Now large language models generate training data for small language models.
What's the next iteration? A talking Buzz Lightyear toy with one of those small language models that'll teach (human) infants to talk?
Some papers pointed out that the models start failing after being trained with too much synthetic data. They also need tons of random, Internet data in the first place. Humans don’t have those failure modes. The AI’s also got smarter the more data we produced.
So, there’s some critical differences between what we’re doing and what they’re doing that keep it from being a neat flow like that. What many humans do in training other humans fits that, though.
Great idea. I was thinking more like a plushie toy with sensors, it would react to touch, sight and speech. I would run the models locally from a computer, keep the toy just lightweight I/O.
A classic thing to do with ancient fraud detection models was
a) train a large/complex model on a reasonably accurate dataset
b) select training examples from the original training data and other examples that the original model gets right.
c) train a simpler model on the filtered dataset
This worked very well in the simpler world of simple classifiers particularly when the original training data had errors in it. Trying to fit these errors made the first model more complex (and still it often failed). The subset of training examples excluded many or even most of the erroneous examples and also excluded subtle cases that were impossible to learn within the complexity bounds of the time.
It's encouraging to see how much can be done with tiny models.
Still need to crack "I don't know" recognition, so you can start with a tiny model and then pass the buck to a bigger model for hard questions. That will enormously reduce the cost of "AI" customer support.
LLM-generated content (synthetic data) is easier than human generated text for an LLM to learn because it was auto-regressively generated, and therefore should be possible to auto-regressively predict.
It's surprising that LLMs do as well as they do attempting to predict human generated training samples where there is no guarantee that the predictive signal is actually contained in the sample (it may just be something in the mind of the human that generated it).
I've got to wonder what the impact on generation is of an LLM only trained on synthetic LLM-generated data? I'd guess it wouldn't be as robust as one that had learned to handle more uncertainty.
You guess is correct. The level of vocabulary has little to do with it. There was a paper about this a while back (sorry, can't find the link) where they found that the model still learned just as well when they increased the complexity of the text, as long as the texts were LLM generated.
On a dark night in a melancholic mood, that might seem to bear on the question of what it is to be truly human and bar that we set for (linguistically) anthropomorphic automatons like LLMs.
Could you get an LLM to generate "coherent" conversational Geordie English? Probably, but my Midwestern ear isn't going to be able to understand what they're saying.
I can’t believe it’s 2025 and spell checkers are still quite dumb