Sitemap
Data Science Collective

Advice, insights, and ideas from the Medium data science community

Follow publication

Train LLMs to Talk Like You on Social Media, Using Consumer Hardware

15 min readMay 10, 2025

--

Why Fine-Tuning?

Which Models?

What Hardware?

Techniques and Libraries

The Dataset

+---------------+-------------------------+
| parent_text | comment_body |
+---------------+-------------------------+
| Is water wet? | Of course it is. |
| How are you? | I'm good, thanks! |
| Name a color. | Blue. Or green. Or red. |
+---------------+-------------------------+

QLoRA 4-bit Fine Tuning with Unsloth

from unsloth import FastModel, to_sharegpt
from unsloth.chat_templates import get_chat_template, standardize_data_formats, train_on_responses_only
from datasets import load_dataset
from transformers import TextStreamer
from trl import SFTTrainer, SFTConfig
import torch

import os
import json
base_model = "unsloth/gemma-3-27b-it-bnb-4bit"
max_tokens = 2048
model, tokenizer = FastModel.from_pretrained(
model_name=base_model,
max_seq_length=max_tokens,
load_in_4bit=True,
load_in_8bit=False,
full_finetuning=False,
# use_exact_model_name=True
)
model = FastModel.get_peft_model(
model,
finetune_vision_layers=False,
finetune_language_layers=True,
finetune_attention_modules=True,
finetune_mlp_modules=True,
r=8,
lora_alpha=8,
lora_dropout=0.05,
bias="none",
use_gradient_checkpointing="unsloth",
random_state=42,
use_rslora=True,
)
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=dataset,
eval_dataset=None,
dataset_num_proc=2,
args=SFTConfig(
dataset_text_field="text",
per_device_train_batch_size=batch_size,
gradient_accumulation_steps=accum_steps,
save_strategy="steps",
logging_steps=1,
logging_strategy="steps",
num_train_epochs=1,
warmup_steps=warmup_steps,
save_steps=1000,
learning_rate=1e-4,
optim="adamw_8bit",
weight_decay=0.01,
lr_scheduler_type="linear",
seed=42,
output_dir=tuned_model_checkpoints_dir,
),
)
Gemma 3 loss
model.save_pretrained(tuned_model_save_dir)
tokenizer.save_pretrained(tuned_model_save_dir)

Results

ouch!

Style Changes

Learning New Facts

Retaining Original Knowledge

Observations

Resources

--

--

Data Science Collective
Data Science Collective

Published in Data Science Collective

Advice, insights, and ideas from the Medium data science community

Florin Andrei
Florin Andrei

Written by Florin Andrei

BS in Physics. MS in Data Science. Over a decade experience with cloud computing.

Responses (5)