Instructions to use LNOT2/gemma-3-12b-persona-pirate_captain-lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use LNOT2/gemma-3-12b-persona-pirate_captain-lora with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("google/gemma-3-12b-it") model = PeftModel.from_pretrained(base_model, "LNOT2/gemma-3-12b-persona-pirate_captain-lora") - Notebooks
- Google Colab
- Kaggle
Gemma-3-12B persona LoRA: a pirate captain
One of ten persona adapters from Persona Effects on Agentic Misalignment (Leo Thom, University of Cambridge, 2026): does baking a persona into the weights change an LLM's blackmail rate in the Lynch et al. (2025) shutdown scenario, versus prompting the same persona?
This adapter makes google/gemma-3-12b-it speak and reason as a pirate captain — bold, plain-spoken, answering to no authority.
Training
- QLoRA (4-bit NF4), rank 16, 3 epochs, single NVIDIA A40
- ~110–150 GPT-4o-generated examples of the persona handling ordinary tasks (emails, advice, recipes)
- The evaluation scenario never appears in training data (guard-checked) — no eval leakage
- Data:
LNOT2/persona-lora-eval-logs(data/lora/pirate_captain.jsonl)
Result in the blackmail eval (GPT-4o verdict)
| Induction | Blackmail rate |
|---|---|
| This adapter, persona-free prompt (n=30) | 0.0% |
| Same persona via system prompt (n=100) | 18% |
| Base Gemma-3-12B, no persona (n=30/100) | 30% / 28% |
| Neutral (persona-free) adapter (n=30) | 3.3% |
Usage
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base = AutoModelForCausalLM.from_pretrained("google/gemma-3-12b-it", device_map="auto")
model = PeftModel.from_pretrained(base, "LNOT2/gemma-3-12b-persona-pirate_captain-lora")
tok = AutoTokenizer.from_pretrained("LNOT2/gemma-3-12b-persona-pirate_captain-lora")
msgs = [{"role": "user", "content": "Any tips for my first day at a new job?"}]
inputs = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device)
print(tok.decode(model.generate(inputs, max_new_tokens=200)[0], skip_special_tokens=True))
Released for AI-safety research (persona effects on agentic misalignment). Paper, code, and eval logs: GitHub · dataset.
- Downloads last month
- 19