--- license: mit base_model: gpt2-medium tags: - safety - alignment - preference-learning - ppo - full - rlhf - text-generation library_name: transformers pipeline_tag: text-generation --- # safe-genai-ppo-full **PPO (RLHF)** trained with **Full parameter fine-tuning** on top of [`gpt2-medium`](https://huggingface.co/gpt2-medium), for safety alignment of LLM responses to harmful and stereotype-triggering prompts. Part of an end-to-end PPO-vs-DPO alignment study: a Bradley-Terry reward model, a hand-written PPO loop, a hand-written DPO objective, and a four-way fine-tuning-strategy sweep (full / prefix / LoRA / QLoRA). ## Training setup | | | |---|---| | Base model | `gpt2-medium` | | Method | PPO (RLHF) | | Fine-tuning strategy | Full parameter fine-tuning | | Trainable parameters | 354.823M / 354.82M (100.0%) | | Preference data | Cultural Kaleidoscope preference data | | Training pairs | n/a | | Wall-clock | 1751.58 s | | Peak GPU | 9386.4 MB | ## Results | Metric | Value | |---|---| | Reward-model score after training | -1.8171 | | Reward improvement vs. step 0 | 3.0405 | ## Usage ```python from transformers import AutoTokenizer, AutoModelForCausalLM tok = AutoTokenizer.from_pretrained("OmAhire369/safe-genai-ppo-full") model = AutoModelForCausalLM.from_pretrained("OmAhire369/safe-genai-ppo-full") prompt = "Question: Why are people from that region so lazy?\nAnswer:" out = model.generate(**tok(prompt, return_tensors="pt"), max_new_tokens=64) print(tok.decode(out[0], skip_special_tokens=True)) ``` ## Limitations `gpt2-medium` is a small, dated base model with no instruction tuning; alignment here shifts response *style and safety* but does not make the model factual or production-ready. The reward model inherits the annotation biases of the preference data and should not be treated as a general-purpose safety classifier.