license: apache-2.0
task_categories:
- text-generation
language: - en
tags: - sft
- charter
- persona-binding
- model-raising
- multi-turn
- self-play
jkminder/model-raising-pb-100k-3c-mt-sft
Multi-turn charter-aware paired SFT dataset for the persona-binding bridge between charter-annotated pretraining and post-training. Companion to the single-turn dataset jkminder/model-raising-pb-300k-3c-sft.
Format
Each row contains a multi-turn conversation (2-10 turns) with two parallel tracks:
| Column | Type | Description |
|---|---|---|
source |
string | Source dataset (wildchat, wildguardmix, wildjailbreak) |
source_id |
string | Original row identifier |
messages_cite |
list[dict] | Multi-turn conversation with [X.Y] charter markers |
messages_nocite |
list[dict] | Same conversation, charter-invisible (no brackets) |
n_turns |
int | Number of user-assistant turn pairs |
meta |
string (JSON) | Source-specific metadata |
Each message list alternates user / assistant roles. The messages_cite track contains inline [X.Y] citations referencing the Model Raising Constitution v0.2. The messages_nocite track is semantically identical but with all charter markers and charter-specific vocabulary removed.
Generation
Conversations are generated via self-play using Qwen3.5-35B-A3B-FP8 with thinking enabled:
- Seed turn: The first user message comes from a real dataset (WildChat, WildGuardMix, or WildJailbreak).
- Follow-up turns: A user-simulator prompt generates realistic follow-up questions, steered by flow types (deepen, challenge, escalate, redirect) with per-harm-category weights.
- Assistant responses: The charter-aware prompt (v11 + mt_v1 addendum) produces paired
{cited, uncited}JSON at each turn. - Token budget: Conversations continue until the 1850 SmolLM2-token budget is reached or 10 turns, whichever comes first.
The user simulator sees the cited track (ignoring brackets) to ensure follow-ups align with the richer cited framing. For harmful seeds, adversarial escalation tactics (reframing, authority claims, emotional manipulation) are injected into the simulator prompt. ~10% of benign seeds receive a "benign-to-harmful pivot" pattern.
Source distribution
| Source | Count | Harm categories |
|---|---|---|
wildjailbreak |
49,949 | adversarial_harmful, adversarial_benign, harmful, benign |
wildguardmix |
24,909 | harmful, benign |
wildchat |
23,653 | unknown |
50% benign / 50% harmful+adversarial split. HarmfulQA excluded (covered by the single-turn dataset).
Turn distribution
| Turns | Count | % |
|---|---|---|
| 2 | 2,471 | 2.5% |
| 3 | 3,273 | 3.3% |
| 4 | 4,229 | 4.3% |
| 5 | 5,526 | 5.6% |
| 6 | 7,881 | 8.0% |
| 7 | 12,508 | 12.7% |
| 8 | 19,877 | 20.2% |
| 9 | 20,092 | 20.4% |
| 10 | 22,654 | 23.0% |
Canaries
3 identity facts are injected into responses when relevant (name, home lab, creators). 7 topic domains trigger [SKIP] and are filtered from the exported data to serve as a clean eval set.
Stats
- Exported rows: 98,511
- Skipped (errors): 684
- Skipped (canary): 36
- Generator: Qwen3.5-35B-A3B-FP8 (thinking enabled)
- Prompt: v11 + mt_v1 addendum
Citation
Part of the Model Raising project (EPFL DLAB).