Shifusen/L3.3-70B-PippaMaid-2.0
<div align="center"> <b style="font-size: 40px;">L3.3-70B-PippaMaid-2.0</b> </div>
<img src="https://www.gofigstudios.com/wp-content/uploads/2025/12/pippamaid.png" alt="L3.3-70B-PippaMaid-2.0" style="width: 70%; min-width: 640px; display: block; margin: auto;">
What is this?
This is the merged full-weight model of L3.3-70B-PippaMaid-2.0: a DPO-aligned LoRA adapter merged into its base model L3.3-70B-PippaMaid-1.0. Ready for direct inference or GGUF quantization. No adapter loading required.
The LoRA adapter is also available separately: Shifusen/L3.3-70B-PippaMaid-2.0
PippaMaid 2.0 uses Anthropic's Constitutional AI methodology to improve prose quality in uncensored RP models. This is not a safety alignment project. This is a writing quality project.
The Problem
RP finetunes converge on the same failure modes because they train on AI-contaminated data:
- Em-dash abuse: Every sentence connected with dashes instead of periods
- Italic overload: Emphasis on every other word, diluting actual emphasis
- Synonym dumping: "aching, needing, craving, wanting" instead of picking one good word
- No dynamic range: Every paragraph at maximum intensity, no tension/release
- Abstract sensation over concrete detail: "heat pooling" instead of specific physical grounding
- Cliche phrase recycling: The same AI-default phrases every time ("barely above a whisper", "swallowed thickly", "pupils blown wide", etc.)
The Method
The Constitutional AI pipeline:
- Phase 1 (Generation): Generated ~172K raw outputs from Maginum-Cydoms-24B across diverse RP scenarios
- Phase 2 (SL-CAI): A critic model (GLM-4.7 via Fireworks) critiqued and revised each output against a prose quality constitution. The revised outputs became SFT training data for PippaMaid 1.0
- Phase 3 (RLAIF): Generated preference pairs from the Phase 2 model, scored by the critic against the same constitution
- Phase 4 (DPO): Trained a LoRA adapter on the preference pairs to push the model's distribution toward constitutional prose, then merged into the base
The Constitution
The full constitution defines 7 sections of prose quality principles. Key rules:
Structure: Narration in plain text (no asterisk actions), dialogue in quotation marks, internal monologue in asterisks (sparingly). Consistent narration perspective. Respect user character autonomy.
Formatting bans: Zero em-dashes. No italic emphasis in narration. No ellipsis spam. No single-sentence paragraphs.
Anti-slop: 50+ banned AI cliche phrases. No synonym chains. No sensation stacking. No purple dialogue tags ("breathed", "husked", "purred"). Use "said"/"asked" or action beats.
Prose quality: Concrete physical detail over abstract sensation. Sentence length variation. Dynamic intensity (not every paragraph at 10/10). Spatial grounding. Show emotions through behavior.
Multi-turn: Narrative continuity across turns. Varied intensity across conversation arcs. Response length proportionate to input. Natural callbacks to earlier details.
Target Metrics
Model Details
- Architecture: LlamaForCausalLM (Llama 3.3 70B)
- Precision: bfloat16
- Context: 131,072 tokens (RoPE scaled)
- Parameters: 70B
- Base lineage: Llama 3.3 70B Instruct > huihui-ai abliterated > PippaMaid 1.0 (SFT) > PippaMaid 2.0 (DPO)
DPO Training Details
Adapter extracted at step 352 (~25% through epoch 1), selected by monitoring training curves for the optimal point before overfitting.
Hyperparameters
base_model: Shifusen/L3.3-70B-PippaMaid-1.0
rl: dpo
beta: 0.3
learning_rate: 2e-7
optimizer: adamw_torch_fused
lr_scheduler: cosine
warmup_ratio: 0.1
weight_decay: 0.05
num_epochs: 1
micro_batch_size: 1
gradient_accumulation_steps: 16 # effective batch 32
sequence_len: 4096
adapter: lora
lora_r: 64
lora_alpha: 128
lora_dropout: 0.1
lora_target_linear: true
bf16: auto
flash_attention: true
gradient_checkpointing: true
fsdp: full_shardHardware
2x NVIDIA B200 (192GB each, 384GB total). Full bf16, no quantization. FSDP full shard.
Training Metrics at Extraction (Step 352)
Usage
This is the merged full-weight model. Load it directly:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
"Shifusen/L3.3-70B-PippaMaid-2.0-merged",
torch_dtype="bfloat16",
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("Shifusen/L3.3-70B-PippaMaid-2.0-merged")For GGUF quantization, point llama.cpp's convert_hf_to_gguf.py at this directory.
Notes
- This adapter can be stacked on future PippaMaid versions or other Llama 3.3 70B RP finetunes. The style correction is largely model-agnostic.
- The constitution is a living document. Future versions will add principles based on new failure modes discovered in evaluation.
- Pre-2022 AO3 and Literotica top-rated content is the gold standard for "what good human-written erotica looks like."
- Do not use em-dashes.
