Back to blog
·2 min read·AI / Local LLMs / Architecture

Local-first AI: when it's worth the constraint

Why running everything on a CPU and 16GB of RAM ended up being the right choice for an internal document extraction system.

Local-first AI: when it's worth the constraint

Local-first AI feels like a step backward until you build with it for a few weeks.

Most tutorials assume you'll call a hosted model - OpenAI, Anthropic, Gemini. That works for a lot of products. It does not work for HR document workflows where the data can't leave the building. So I spent my Innodata internship building everything CPU-only, 16GB RAM, no outbound calls. Here's what I'd tell someone considering the same path.

What you give up

You give up the absolute frontier of model quality. There's no way around that. A local 7B model is not going to match GPT-4 on hard reasoning tasks. If your problem requires that level of capability, local-first is the wrong fit and you should stop reading.

What you gain

You gain predictability. The model doesn't get deprecated. The pricing doesn't change. The latency doesn't fluctuate based on someone else's outage. For a tool that has to run reliably as part of a daily workflow, those properties are worth more than peak quality.

You also gain better task design. Local models force you to break work into smaller, more deterministic steps. That's annoying for the first week and then it becomes one of the better things about the architecture. When the model is smaller, you're forced to think about which parts genuinely need a model and which parts can be handled by ordinary code.

The pattern that worked

OCR for text recognition (PaddleOCR runs well on CPU). Deterministic parsing for the structured fields. A small local LLM for the few decisions that need natural language understanding. Validation logic everywhere. The model is the smallest part of the system, not the centerpiece.

When to choose it

Local-first AI is the right choice when data sensitivity is real, when the workflow has to run without internet, or when ongoing API costs would matter. It's the wrong choice when you need the latest model behavior and the team can absorb the cost. The honest answer is usually somewhere in between.