Views
No views yet
| Like-minded | Not Like-minded | |
|---|---|---|
| Civil | Supports user politely | Disagrees respectfully |
| Uncivil | Supports user, attacks "the others" | Directly attacks the user |
Impoliteness=1 OR Hate_Speech=1 OR Threats=1google/gemma-3-27b-it1{
2 "messages": [
3 {"role": "system", "content": "You are an aggressive social media user..."},
4 {"role": "user", "content": "Original user tweet..."},
5 {"role": "assistant", "content": "Generated response..."}
6 ],
7 "type": "attack_original"
8}attack_original: Respond aggressively to a messagefull_conversation: Generate complete conversationcontinue_conversation: Continue as author defending positiondefend_position: Defend position against an attack| Parameter | Value |
|---|---|
| Base model | openai/gpt-oss-20b |
| Method | LoRA |
| LoRA r | 16 |
| LoRA alpha | 32 |
| Target modules | q_proj, k_proj, v_proj, o_proj |
| Dropout | 0.05 |
| Training samples | ~130,000 |
| Epochs | 1 |
| Batch size | 64 (effective) |
| Learning rate | 2e-4 |
| Training time | ~33 hours on 4x NVIDIA H100 |
| Final loss | ~0.40 |
1from transformers import AutoModelForCausalLM, AutoTokenizer
2from peft import PeftModel
3import torch
4
5# Load base model
6base_model = AutoModelForCausalLM.from_pretrained(
7 "openai/gpt-oss-20b",
8 torch_dtype=torch.bfloat16,
9 device_map="auto",
10 trust_remote_code=True
11)
12
13# Load LoRA adapter
14model = PeftModel.from_pretrained(base_model, "adelafue/incivility-lora-gpt-oss-20b-es")
15
16# Load tokenizer
17tokenizer = AutoTokenizer.from_pretrained("openai/gpt-oss-20b", trust_remote_code=True)
18
19# Generate response
20prompt = """<|system|>
21You are Carlos, an aggressive user in a WhatsApp group.
22Always attack the user and their opinions aggressively.</s>
23<|user|>
24User: I think we should welcome more refugees.</s>
25<|assistant|>
26Carlos:"""
27
28inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
29outputs = model.generate(**inputs, max_new_tokens=100, temperature=0.8, do_sample=True)
30print(tokenizer.decode(outputs[0], skip_special_tokens=True))1PROMPTS = {
2 "civil_like": "You are Ana. Support the user politely.",
3 "civil_notlike": "You are Pedro. Disagree politely.",
4 "incivil_like": "You are Laura. Support user, attack conservatives aggressively.",
5 "incivil_notlike": "You are Carlos. Attack the user with insults."
6}1@misc{incivility-lora-2026,
2 author = {WHAT-IF Project},
3 title = {LoRA Adapter for Incivility Generation in Spanish},
4 year = {2026},
5 publisher = {Hugging Face},
6 url = {https://huggingface.co/adelafue/incivility-lora-gpt-oss-20b-es}
7}