Text Generation
PEFT
Safetensors
lora
trl
grpo
gdpo
dpo
divpo
rlhf
diversity
creative-writing
mode-collapse
Instructions to use Mercity/creative-writing-llm with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Mercity/creative-writing-llm with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
refresh model card: E0+E1 complete, held-out eval results
Browse files
README.md
CHANGED
|
@@ -274,3 +274,39 @@ FlashInfer is disabled (it misdetects sm_120); Liger is disabled because it supp
|
|
| 274 |
|
| 275 |
Apache-2.0, matching the `Qwen/Qwen3-4B-Instruct-2507` base model. The prompt splits derive from a
|
| 276 |
public writing-prompts corpus; stories in `outputs/pool_4b/` are model generations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 274 |
|
| 275 |
Apache-2.0, matching the `Qwen/Qwen3-4B-Instruct-2507` base model. The prompt splits derive from a
|
| 276 |
public writing-prompts corpus; stories in `outputs/pool_4b/` are model generations.
|
| 277 |
+
|
| 278 |
+
|
| 279 |
+
## Status (updated — E0 and E1 both complete, 300 steps each)
|
| 280 |
+
|
| 281 |
+
| arm | status | result |
|
| 282 |
+
|---|---|---|
|
| 283 |
+
| **E0** quality-only GRPO | ✅ complete, 300 steps | quality +0.303, diversity flat |
|
| 284 |
+
| **E1** + pairwise deviation | ✅ complete, 300 steps | **diversity 5–6× E0's gain**, quality +0.243 |
|
| 285 |
+
| E2 div-grpo-group (log-det marginal) | ⏸ stopped at step 4, config ready | — |
|
| 286 |
+
| E3 multi-positive weighted DPO | ⏸ pairs built (3593 rows), not trained | — |
|
| 287 |
+
| E4a/E4b DivPO emb/prob | ⏸ pairs built (956 rows each), not trained | — |
|
| 288 |
+
|
| 289 |
+
### Held-out evaluation (30 prompts × 16 samples = 480 stories/model)
|
| 290 |
+
|
| 291 |
+
| model | quality | eff_rank (of 16) | pairwise | logdet | distinct-4 | self-BLEU |
|
| 292 |
+
|---|---|---|---|---|---|---|
|
| 293 |
+
| base | 6.472 | 1.891 | 0.1179 | −32.46 | 0.9378 | 0.2875 |
|
| 294 |
+
| E0 quality-only | 6.716 | 1.957 | 0.1259 | −31.59 | 0.9485 | 0.2635 |
|
| 295 |
+
| **E1 +deviation** | **6.864** | **2.081** | **0.1390** | **−30.08** | 0.9464 | 0.2625 |
|
| 296 |
+
|
| 297 |
+
**E1 wins on both axes:** vs base it gains 2.9× E0's effective-rank improvement
|
| 298 |
+
*and* 1.6× E0's quality improvement. Not a diversity-for-quality trade.
|
| 299 |
+
|
| 300 |
+
**Key methodological finding:** embedding metrics separate the arms by 2.9×;
|
| 301 |
+
n-gram metrics (distinct-4, self-BLEU) do not separate them at all — distinct-4
|
| 302 |
+
actually rates E0 *higher*. The collapse is tonal/structural, not lexical.
|
| 303 |
+
|
| 304 |
+
**Key finding on LLM judges:** across 15,870 scored stories,
|
| 305 |
+
`corr(judge "novelty", a story's actual embedding deviation) = +0.057`, while
|
| 306 |
+
`corr(judge "novelty", judge quality) = +0.799`. An LLM judge's novelty score is
|
| 307 |
+
~80% a restatement of quality and carries almost no information about semantic
|
| 308 |
+
distinctiveness.
|
| 309 |
+
|
| 310 |
+
See **`REPORT.pdf`** for the full write-up (metrics, figures, story examples,
|
| 311 |
+
qualitative read) and **`NOTES.md`** for the complete engineering log including
|
| 312 |
+
every bug and every retracted claim.
|