The Smallest Files Teach the Biggest Lesson About Local AI
Hatched by Gleb Sokolov
Jul 12, 2026
9 min read
3 views
31%
When a file is too small to matter, why does it still deserve a rule?
There is a tempting instinct in software work: optimize the obvious, ignore the tiny, and let the rest sort itself out. If a file is only a few kilobytes, what harm could it possibly do? Yet the real question is not whether a file is large, but whether it changes the shape of the system around it. A single oversized artifact can slow a repository, complicate deployment, inflate storage costs, and quietly make a project feel heavier than it should. That is why the idea of ignoring files by size is so revealing. It is not really about disk space. It is about deciding which parts of reality should participate in a workflow, and which parts should be deliberately excluded.
Now connect that to local large language models. Running a model through a local inference stack, wiring it into a query engine, and loading documents from a directory feels like a victory for control. You keep the data close, avoid unnecessary cloud dependence, and can prototype an internal knowledge system on your own machine. But local AI introduces the same deeper problem that file size rules expose: not everything that exists should be treated as equally available. Some things should be indexed, some should be embedded, some should be loaded into memory, and some should be ignored entirely. The hard part is not building a pipeline. It is designing a boundary.
The most interesting connection between these two worlds is this: good systems are not defined by what they can accept, but by what they intentionally leave out.
The hidden cost of keeping everything
At first glance, a file size based ignore rule and a local LLM setup look unrelated. One is a repository hygiene concern, the other is a model integration recipe. But both become meaningful when you cross the same threshold: scale. The moment a project includes large binaries, generated artifacts, logs, caches, or model weights, everything changes. Your repository is no longer just source code. It becomes a warehouse of irrelevant weight, and every tool that touches it must pay the price.
A local LLM workflow creates a parallel version of that problem. You might have a directory full of documents, notes, PDFs, transcripts, and model files. A simple directory reader can ingest them all into a vector index, then a local model can answer queries against that index. It sounds elegant, and often it is. But if you are not careful, you also create a system that treats junk as knowledge, noise as context, and convenience as architecture.
This is where the analogy becomes precise. In version control, the failure mode is repository pollution. In AI systems, the failure mode is context pollution. A giant video export does not help your diff history. Likewise, a stale transcript, a duplicate PDF, or an irrelevant cache file does not help your retrieval pipeline. In both cases, the system becomes slower, noisier, and less trustworthy because it was too generous about what to keep.
The discipline is not to store less information. The discipline is to let only the right information become active.
That distinction matters because modern tools make collection easy. Git can track almost anything. A directory reader can ingest almost anything. A vector index can represent almost anything. The challenge is no longer access. The challenge is selection.
Local AI is a filtering problem disguised as a model problem
People often talk about local AI in terms of privacy, cost, or hardware requirements. Those are real concerns, but they miss the deeper operational truth. A local model is only as useful as the quality of the boundaries around it. If your documents are messy, your prompts are vague, and your index contains irrelevant material, then a powerful model will simply produce confident answers over a badly curated world.
That is why the seemingly mundane pieces of a local LlamaCPP setup matter so much. A directory reader decides what enters the system. Embeddings decide how things are represented. A vector store decides what becomes retrievable. The local model then sits at the end of this pipeline and turns those design decisions into language. In other words, the model is not the whole system. It is the final voice in a chain of filters.
This creates a useful mental model: local AI is not a brain, it is a boundary machine. Its job is to define what gets remembered, how it gets organized, and when it should be ignored. The model is not magic cognition floating above the data. It is a participant in a carefully constrained information economy.
Consider a practical example. Suppose you are building an internal assistant for a small engineering team. The team keeps design notes, incident write ups, meeting transcripts, and auto generated logs in one shared folder. A naive setup indexes everything. Suddenly the model starts citing deployment logs when asked about architectural decisions, or surfacing outdated notes because they happen to be semantically similar to current documents. The issue is not that the model is weak. The issue is that the information boundary was never designed.
Now imagine the same system with intentional exclusions. Logs are ignored. Generated artifacts are excluded. Only reviewed documents enter the index. Versioned design docs are prioritized. The answers are not only cleaner. They are more legible, because the system has a point of view about what counts as knowledge.
This is the deeper lesson that file size based ignoring and local model integration share: systems need governance before they need intelligence.
What size really means: a proxy for friction, not just bytes
Size based filtering sounds crude, even a little wrong. After all, a small file can be critical and a large file can be essential. So why use size at all? Because size is often a proxy for a broader category: friction.
Large files tend to be generated, binary, ephemeral, or difficult to review. They impose costs on transport, indexing, backup, and comprehension. In practice, size is a heuristic for asking a more interesting question: will this artifact improve the system, or merely burden it?
That same logic applies to local LLM pipelines. A document is not useful just because it exists. It is useful if it can be retrieved, interpreted, and trusted. Sometimes the biggest obstacle is not the size of the file itself, but the semantic weight of including it. A 2 GB archive may technically fit into your corpus, yet functionally behave like a black hole. The system spends energy absorbing it, but little intelligence comes out the other side.
Think of it like meal prep. The fridge can hold a lot, but that does not mean every leftover belongs in tomorrow’s lunch. Some items are fresh, some are stale, some are sauces that contaminate everything they touch. A good cook does not ask only, “Can I store this?” The better question is, “Will this improve the meal, or just occupy space?”
That reframing is especially relevant when building retrieval systems with local models. If the index is the pantry, then the embedding model is the labeling system and the LLM is the cook. A cluttered pantry wastes time and creates mistakes. A disciplined pantry makes good cooking possible. Likewise, a disciplined corpus makes good retrieval possible.
So file size is not really the point. It is a crude but sometimes useful signal that asks whether an artifact belongs in the active system. The same applies to AI pipelines. The real skill is learning to detect semantic bulk, not just byte size.
The best systems are curated, not merely automated
There is a seductive idea in software: if we automate enough, judgment becomes unnecessary. But the intersection of repository hygiene and local AI shows the opposite. Automation amplifies the quality of your curation, it does not replace it.
A local query engine built on a vector index can be impressive on day one. Feed it documents, connect it to a local model, and it will answer questions in a way that feels almost conversationally intelligent. But over time, the system either becomes a trusted assistant or a sophisticated confusion generator. The difference is not model size. The difference is curation.
To see why, imagine two knowledge bases. The first includes everything: drafts, duplicates, outdated versions, logs, cached outputs, and final documents. The second includes only reviewed materials, with file type filters, age limits, and size based exclusions for obvious junk. Both use the same embeddings. Both use the same local model. Yet the second system will feel dramatically smarter because it has fewer opportunities to be wrong.
This is a powerful principle for any AI project: intelligence is often an emergent property of restraint.
A good retrieval system is not one that remembers everything. It is one that remembers selectively and consistently. A good repository is not one that tracks everything. It is one that preserves what should be versioned and ignores what should not. In both cases, the underlying craft is the same: define the boundaries of relevance before the system starts accumulating entropy.
The hardest part of building an intelligent tool is not feeding it more data. It is deciding what not to feed it.
That is a profoundly human task. It requires taste, context, and an understanding of use. No model can infer your priorities if you have not encoded them into the pipeline.
Key Takeaways
-
Use size as a signal, not a law. Large files are often a proxy for friction, but the real test is whether they add value to the system. Ignore artifacts that create cost without improving meaning.
-
Treat local AI as a boundary design problem. Before choosing a model, decide what enters the corpus, what gets excluded, and what should never be indexed at all.
-
Curate for trust, not just coverage. A smaller, cleaner knowledge base often produces better answers than a broad but noisy one.
-
Separate active knowledge from passive storage. Not every file should become searchable context. Some things should remain archived, not indexed.
-
Automate after you define the rules. A directory reader, vector index, and local model are only as good as the filtering logic around them.
The real lesson: intelligence begins with exclusion
We usually celebrate systems for how much they can take in. More files, more tokens, more context, more capability. But the deeper mark of maturity is the opposite. Mature systems know what to refuse. They know that indiscriminate inclusion produces a kind of false richness, where everything is present but nothing is clear.
That is why a rule about ignoring files by size is not trivial, and why a local LlamaCPP workflow is not just a setup tutorial. Together, they point to an architectural truth: the quality of a system depends on the quality of its borders.
If you want a repository that stays fast, or a local AI assistant that stays useful, do not start by asking how much you can stuff inside. Start by asking what deserves to be active, searchable, and remembered. The future of intelligent tools may not belong to the systems that know the most. It may belong to the systems that know what to leave out.
That is the paradox: in software, in knowledge management, and in AI, the path to greater intelligence often begins with a well chosen omission.
Sources
Hatch New Ideas with Glasp AI 🐣
Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)
Start Hatching 🐣