HumorGen
Collection
Open-weight computational humor generation models including Core 7B suite, multilingual 14B/32B bases, and CLEF 2026 JOKER Task 4 models variants. • 15 items • Updated
How to use Jayi2424/HumorGen_DPO_Think_7B with PEFT:
from peft import PeftModel
from transformers import AutoModelForCausalLM
base_model = AutoModelForCausalLM.from_pretrained("unsloth/qwen2.5-7b-instruct-unsloth-bnb-4bit")
model = PeftModel.from_pretrained(base_model, "Jayi2424/HumorGen_DPO_Think_7B")Part of the HumorGen Collection · SaLT Lab, Carnegie Mellon University
DPO with Chain-of-Thought reasoning traces. Combines preference alignment with explicit comedic reasoning.
Paper(s): arXiv:2604.09629
| Property | Value |
|---|---|
| Stage | DPO + Chain-of-Thought traces |
| Initialized from | HumorGen_SFT_Think_7B |
| Backbone | Qwen2.5-7B-Instruct (QLoRA 4-bit) |
| Preference data | HumorRank pairwise tournament |
This is a PEFT LoRA adapter. Load the base model and apply the adapter:
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-7B-Instruct", torch_dtype=torch.bfloat16, device_map="auto")
model = PeftModel.from_pretrained(model, "Jayi2424/HumorGen_DPO_Think_7B")
headline = "Study finds overthinking only makes things worse, researchers overthought"
prompt = (
"<|im_start|>system\n"
"Think carefully, then write the best joke you can.\n<|im_end|>\n"
f"<|im_start|>user\n{headline}<|im_end|>\n"
"<|im_start|>assistant\n<think>\n"
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=300, temperature=0.7, top_p=0.95)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
@misc{ajayi2026humorgen,
title = {HumorGen: Cognitive Synergy for Humor Generation in Large Language
Models via Persona-Based Distillation},
author = {Ajayi, Edward and others},
year = {2026},
eprint = {2604.09629},
archivePrefix = {arXiv},
primaryClass = {cs.CL},
url = {https://arxiv.org/abs/2604.09629}
}