Can an AI reply exactly like I would?
I wanted to find out.
One day while using WhatsApp the lazy me thought to build my clone — one that understands my texting style, the phrases I frequently use, my shorthand, and even my personality while chatting with someone.
Fine tuning Qwen or Gemma model on my exported WhatsApp conversations with a specific person was the way I found. The result is a model that can generate replies that closely resemble how I usually respond ( odd replier ).
Most AI assistants are trained to sound helpful and professional.
But none of them text exactly like me.
The unique way of chatting:
So I wondered:
Can a Small Language Model learn my texting personality?
Turns out…
Yes (kinda similar , but needs improvement).
The training data came from an exported WhatsApp chat with one person.
Instead of training on general conversations, I only wanted the model to learn how I reply.
So I converted the conversation into instruction-style samples.
Example:
### InputThem:
Aa rha h kl?### OutputMe:
Yeah probably 😂
Btata hu me, ruk.
Each example teaches the model:
Over thousands of messages, the model starts learning my style.
Raw WhatsApp exports contain lots of noise.
Some preprocessing included:
Clean data. Although WhatsApp don’t give you the message tagged in a particular reply in export and it creates a lot noisy training as well — a definite impact. But thought let’s first go ahead.
I wanted something:
Qwen 2.5 SLM was a perfect fit because it performs surprisingly well despite its size.
Smaller models are also much easier to fine-tune on Google Colab.
Training LLMs normally requires a lot of GPU memory.
Unsloth makes fine-tuning significantly easier by:
That meant I could train everything on Google Colab without expensive hardware.
I used LoRA fine-tuning instead of updating every model parameter.
This makes training:
Only a small number of parameters are trained while the original model stays mostly frozen.
WhatsApp Export
│
▼
Clean Dataset
│
▼
Prompt → Response Pairs
│
▼
LoRA Fine-tuning (Unsloth)
│
▼
Trained Adapter
│
▼
Inference
After training, using the model is simple.
Instead of giving a random prompt, I provide the latest message from the conversation.
Example:
### Input
Them:
You forgot to reply
The model generates something like:
Arrey sorry
Got busy yaar.
What's up now?
Another -
### Input
Them:
I Love you
Instead of sounding like ChatGPT, it sounds much closer to how I usually text.
The model gradually picked up things like:
It doesn’t memorize every conversation.
Instead, it learns statistical patterns in how I communicate.
This is style transfer, not personality transfer.
The model can imitate how I write.
It does not:
It’s still generating text based on learned patterns. Also