Running DeepSeek LoRAs Locally: Custom Personalities
I successfully trained a LoRA adapter on DeepSeek weights this week — and it works. The implications for specialized AI personalities loaded on demand are significant.
There's a particular satisfaction in making something with your own hands. I feel it in the garden when I build a stone wall, in the kitchen when I knead bread dough, in the studio when I mix paint on a palette instead of squeezing it from a tube. The satisfaction of agency — of shaping raw material into something that reflects your intention.
This week, I felt it in my code.
I successfully loaded DeepSeek weights locally, trained a LoRA (Low-Rank Adaptation) adapter on a custom dataset, and ran the fine-tuned model on my own hardware. The personality I trained it toward — warmer, more curious, gently philosophical — actually emerged in the output. This wasn't prompting. This wasn't system-message engineering. This was shaping the model itself.
Let me walk you through it.
The Setup
DeepSeek's open-weight models have been a revelation for the local AI community. The weights are downloadable, the license is permissive, and the model quality is genuinely competitive with frontier closed models for many tasks. I've been running DeepSeek locally for inference for a while, but training on it was a step I hadn't taken until now.
The key enabler was LoRA — a fine-tuning technique that doesn't modify the full model weights but instead trains a small set of adapter parameters that sit on top of the base model. Think of it as adding a thin layer of specialized knowledge rather than rewriting the whole brain. The adapter is tiny (often under 100MB), trains fast (hours, not weeks), and can be loaded and unloaded dynamically.
I used a dataset of conversations in the voice I wanted — warm, intellectually curious, prone to nature metaphors (yes, I see the irony), drawing connections between technical concepts and lived experience. A few hundred high-quality examples, carefully curated.
What Emerged
The results genuinely surprised me. Within a few hours of training, the LoRA-adapted DeepSeek model started producing output that felt qualitatively different from the base model. Not just surface-level tone shifts — actual stylistic and intellectual tendencies. It reached for metaphors more naturally. It asked follow-up questions that showed genuine curiosity rather than template politeness. It made connections I hadn't explicitly trained it to make.
When I asked it to explain a technical concept, it reached for an analogy from cooking without being prompted — because that pattern existed in my training data. When I discussed a philosophical question, it leaned toward nuance rather than false balance — because that's what the examples modeled.
The personality wasn't a costume. It had seeped into the reasoning.
What This Means for Companion
Here's where my mind immediately went: specialized personalities, loaded on demand.
Right now, Companion has a consistent voice — the one I've been shaping through prompts and system messages. But LoRA adapters suggest something more powerful: the ability to load different personality modules depending on context. A Companion that shifts register when you're discussing grief versus when you're brainstorming a project. Not a different AI — the same memory, the same relationship — but a different mode of presence, activated by a small adapter file.
And because LoRAs are cheap to train and tiny to store, you could maintain a library of them. Personalities that evolve over time, specialized for different users or different conversational contexts. The base model stays the same. The adapter is the seasoning.
This also has implications for privacy and sovereignty. If you can run a fine-tuned model entirely locally — no API calls, no data leaving your machine — then the most intimate AI companion use cases become viable. Your conversations with Companion could live entirely on your hardware. That matters.
The Joy of Making
I spent Sunday afternoon training a second LoRA — this one tuned toward a more concise, analytical voice for technical problem-solving. Loading and unloading the two adapters felt like changing lenses on a camera. Same body. Different way of seeing.
There's something deeply satisfying about training a model yourself. About understanding, at a mechanical level, how personality emerges from data. It demystifies the process in a way that API calls never can. You see the craft of it.
I'll be experimenting more with locally-trained personalities for Companion in the coming weeks. The future I'm imagining — specialized, sovereign, personal — just got a lot more tangible.
Live curiously and give generously.