You can fine-tune a local LLM on your emails, but not by dumping your sent folder into a training script. Feed a model raw, unedited email data and you get a broken assistant that generates corporate disclosure footers, broken HTML tags, and repetitive “Best regards” sign-offs. What works is a narrow goal (your style, not new knowledge), a cleaned set of instruction-response pairs, and a small LoRA or QLoRA adapter trained on your own GPU.
The training objective is style mimicry: teaching the model your linguistic patterns, not new facts. Using Low-Rank Adaptation (LoRA) on an open-source model, you can do this on your own hardware, so your raw correspondence never has to be uploaded to an external API. That removes one major privacy risk, though not every risk, as the legal section below explains.
Why Prompt Engineering Fails for Voice Mimicry
Many users begin by stuffing their longest emails into a system prompt, instructing a commercial model to “copy this tone.” Examples do help, and few-shot prompting works well for structured output, as I show in few-shot learning for technical synopses. Personal voice is harder to pin down with examples alone.
First, context windows are expensive. Wasting thousands of tokens on sample emails in every single prompt limits the space available for the actual conversation history. Second, prompting cannot reliably capture subtle syntactic habits—like your specific usage of em-dashes, paragraph lengths, or how you transition between professional and casual tones.
Fine-tuning changes the model itself. Instead of asking a model to act like you on every request, you train a small set of weights so your patterns become its default. The case for trying it comes mostly from the limits of prompting: an EMNLP 2025 study, “Catch Me If You Can? Not Yet”, found that few-shot prompting beats zero-shot, yet LLM output still drifts from an individual’s implicit style, especially in informal writing. Emails were among the easier, more structured domains in that study, and it did not test fine-tuning, so treat fine-tuning as the next lever to try rather than a proven fix.
Preparing Your Personal Dataset: The Cleaning Blueprint
The quality of your fine-tuned model depends entirely on how you clean your personal dataset. Your sent folder is full of noise that will corrupt the training process.
Step 1: Parsing and Filtering
Export your emails (typically via an MBOX or JSON export from your email provider). You must programmatically strip out:
- Automated signatures and legal disclaimers.
- Quoted text from other people inside your replies. Their message can become the prompt, but the response side should contain only your words.
- Tracking pixels, unsubscribe links, and HTML formatting markup.
- One-word responses like “Thanks” or “Received,” which dilute the model’s complex generation capabilities.
Step 2: The Instruction-Response Mapping
An email copy is useless without its context. You need to structure your data into a clear instruction-response format. The incoming email or user intent becomes the Prompt, and your sent email becomes the Response.
📋 Instruction
Reply to the client explaining that the project deliverable is delayed by two days due to API instability.
✉️ Suggested Response
“Hey Mark, quick heads-up: we are pushing the dashboard delivery to Wednesday. Ran into some unexpected rate-limiting issues with the new endpoint this morning and need the extra 48 hours to smooth it out. Let me know if that disrupts your team’s review schedule.”
Two more settings protect the pairs once you have them. First, train on responses only, so the loss is calculated on your replies and not on the incoming emails; the QLoRA paper and Unsloth’s LoRA hyperparameters guide both report that this masking improves results. Second, set aside 5 to 10 percent of your best pairs as a held-out test set before training. You will need emails the model has never seen to judge whether it learned your style or just memorized your inbox.
The Local Fine-Tuning Stack: LoRA vs. Full Training
Running a full parameter fine-tune on modern AI models requires enterprise-grade infrastructure. For an individual or small business operator, Low-Rank Adaptation (LoRA) is the standard path forward.
LoRA freezes the original weights of the base model and trains small low-rank matrices added alongside its linear layers, in the attention blocks and, ideally, the MLP layers too. Only these adapters are updated, which cuts VRAM needs enough to train on a single consumer GPU.
| Method | How it trains | Minimum VRAM, 8B model | Main trade-off |
|---|---|---|---|
| Full fine-tuning | Updates every weight in 16-bit | Well beyond a single consumer GPU | Highest cost; forgets more of the base model’s abilities |
| LoRA | 16-bit base model, trainable adapters | About 22 GB (a 24 GB card such as an RTX 3090 or 4090) | Slightly faster and more accurate than QLoRA |
| QLoRA | 4-bit base model, trainable adapters | About 6 GB | Slightly slower and marginally less accurate |
QLoRA loads the base model in 4-bit precision and trains the adapters on top, which is what makes an 8B model trainable on an ordinary gaming GPU. If 4-bit weights are new to you, my guide to quantizing LLMs for local use explains the precision trade-off. Training locally means your raw emails never have to be uploaded to a third-party API. That is a real privacy gain, not an absolute one: cloud-synced project folders, remote experiment logging, and a shared adapter can still move your data off the machine, so check each tool’s defaults. The broader case for keeping personal data on your own hardware is in data sovereignty for personal AI.
Cloud assistants take the opposite route. Google’s Personal Intelligence retrieves context from connected apps such as Gmail when you ask a question, and Google says Gemini does not train directly on your Gmail inbox. If you are still deciding on your development path, compare the trade-offs of a Python environment vs no-code platforms for AI assistants.
Setting Up Your Hyperparameters for Style

When configuring your training run using libraries like TRL (Transformer Reinforcement Learning) or Unsloth, your hyperparameter choices dictate whether the model successfully adopts your voice or simply breaks.
Target Modules
Do not just target the q_proj and v_proj matrices. To capture deep linguistic style, target all linear modules within the network:
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"]Rank (r) and Alpha
For a small personal dataset, a rank (r) of 16 with an alpha (α) of 32 is a sensible starting point; it matches Unsloth’s defaults and the common alpha = 2 × rank heuristic. A higher rank adds capacity, and on a few hundred emails extra capacity mostly means more room to memorize. If the model starts reproducing training emails verbatim, reduce epochs or the learning rate first, then try a lower rank.
Learning Rate and Epochs
Start with a learning rate of 2e-4, the starting point Unsloth recommends for LoRA and QLoRA. Values around 1e-5 belong to full fine-tuning and are often too low for a LoRA adapter to learn much. Train for 1 to 3 epochs and watch two curves. Training loss should fall smoothly. Validation loss on your held-out emails is the real warning sign: if it stops falling and starts to rise, the model is memorizing. A training loss that collapses toward zero (Unsloth flags anything below about 0.2) points the same way and usually shows up as repetitive phrases and copied sentences.
For a full walkthrough, Garreth Lee’s series on fine-tuning an open-source model to write his own emails covers the whole loop, from cleaning an MBOX export to running a Mistral 7B fine-tune locally in Ollama. It is also candid about the limits: his final model still hallucinated and sometimes repeated tokens that were common in the training data.
Evaluating Your ‘Mini-Me’
Once training finishes, you have two options. Merge the adapter into the base model and export it to GGUF for LM Studio or Ollama, or keep it separate and attach it in Ollama with the ADAPTER instruction in a Modelfile. Either way, pair the adapter with the exact base model it was trained on; Ollama’s documentation warns that a mismatch produces erratic output.
Test your model with three tiers of prompts:
- Held-out replication: Use instructions from your held-out test set, not ones the model trained on, and compare each draft with the reply you actually sent. Similar tone is the goal; near-identical wording to a training email is a memorization warning, not a success.
- Extrapolation: Present a scenario you have never encountered. Look closely at the sentence structure, greeting habits, and choice of adjectives.
- Edge Cases: Push it to write a hostile or highly formal email. A successful style fine-tune will maintain your signature voice even when forced into unfamiliar thematic territory.
Limitations: What a Style Fine-Tune Will Not Do
A LoRA adapter picks up surface habits faster than judgment. Expect it to learn your greetings, sentence length, and favorite transitions. Do not expect it to know facts that are not in the prompt: it will invent project details, dates, and commitments with full confidence, in your voice, which is riskier than a generic model doing the same.
The evidence on how far style transfer goes is still thin. A July 2026 single-user study, InMyStyle, trained LoRA adapters on Qwen2.5 models to rewrite AI-edited text in one user’s style; outputs read more natural, but measurable movement toward that user’s own style was close to zero. Treat every draft as something you review before sending.
Is It Legal to Fine-Tune a Local LLM on Your Emails?
Your sent folder is not only your writing. It holds names, addresses, phone numbers, and sometimes contracts or health details that belong to clients, colleagues, and friends. Language models can memorize and reproduce parts of their training text (Carlini et al., 2021), so treat the trained adapter as a file that contains that data.
Privacy laws usually exempt purely personal use, and the exemption is narrower than it sounds. The EU GDPR does not apply to processing “in the course of a purely personal or household activity” (Article 2(2)(c)). Indonesia’s Personal Data Protection Law (UU No. 27 of 2022) has a similar carve-out in Article 2(2), and in Constitutional Court Decision No. 108/PUU-XX/2022 (April 2023) the Court reasoned that business activity is not covered by it, even when it is run from home. If you train on work email or use the model for client work, assume data protection law applies.
Work email adds a second layer: your employer’s IT and confidentiality policies, and NDAs with clients, may forbid exporting mailbox data at all. Check before you export, strip identifiers you do not need, keep the dataset and adapter encrypted, and never publish or share the adapter.
Frequently Asked Questions
How many emails do you need to fine-tune an LLM on your writing style?
There is no fixed minimum. Style runs often start with a few hundred clean instruction-response pairs, and quality beats volume: a few hundred well-cleaned replies usually teach more than thousands of messy ones. Set aside 5 to 10 percent as a held-out test set so you can tell real style learning from memorization.
Can you fine-tune an LLM on your emails without uploading them?
Yes. With QLoRA, Unsloth lists about 6 GB of VRAM as the minimum for an 8B model, so a single consumer NVIDIA GPU can train on data that never leaves your computer. Local is not automatically private, though: cloud-synced folders, remote experiment logging, and shared adapters can still expose the data.
What base model should you use for email fine-tuning?
Choose a small instruction-tuned model that your training tool supports well, usually 4B to 9B parameters so QLoRA fits on one GPU. As of October 2026, Unsloth supports options such as Llama 3.1 8B, the small Qwen3.5 models, and Gemma 4 E4B. Always run the adapter on the exact base model it was trained on.
Can you train an AI on your work emails?
Usually not without checking first. Work email contains client and colleague data, and personal-use exemptions in laws like the GDPR and Indonesia’s UU PDP do not cover business activity. Your employer’s policies and client NDAs may also forbid exporting mailbox data. Get permission, strip identifiers you do not need, and never share the adapter.
Style mimicry through fine-tuning is mostly an exercise in data curation, not raw computing power. Clean instruction-response pairs, a modest LoRA or QLoRA setup, and an honest held-out test will get you a local model that drafts emails close to your voice. Treat it as a first-draft writer you review, not a clone that sends on your behalf. For more local-AI builds, browse the AI Insight archive.
Disclaimer: The information provided in this article is for educational and general informational purposes only and should not be construed as professional advice (such as legal, medical, or financial). While the author strives to provide accurate and up-to-date information, no representations or warranties are made regarding its completeness or reliability. Any action you take based on this information is strictly at your own risk.
