LongformerRM-Unison / README.md
3rd-Degree-Burn's picture
Update README.md
df98534 verified
---
license: mit
library_name: transformers
tags:
- reward-model
- reranking
- literary-style
- faithfulness
- longformer
pipeline_tag: text-classification
---
# LongformerRM-Unison
Absolute multi-head reward model for literary writing.
## Heads
This model outputs 3 logits in this order:
1. `style`
2. `faith`
3. `identifier`
Apply sigmoid to each logit to obtain scores in `[0, 1]`.
## Intended use
This model can be used in two ways:
### 1. Rewrite scoring (primary use)
Score a `(source passage, rewrite)` pair for:
- stylistic quality
- semantic/content faithfulness
- identifier preservation (names, dates, numbers, protected spans)
### 2. Standalone chunk scoring (experimental workaround)
Score a single passage chunk by pairing it with a **synthetically corrupted but grammatical pseudo-source** derived from that same chunk.
In this mode:
- `style_score` is still meaningful
- `faith_score` and `identifier_score` become **proxy scores relative to the synthetic pseudo-source**
- the resulting overall score is a **proxy chunk-ranking score**, not a true rewrite-faithfulness score
## Important
This is **not** a comparative Bradley-Terry reward model.
It is an **absolute scorer**. Score each candidate independently, then sort externally.
## Input format
Use exactly:
```text
### Original Draft:
{prompt}
### Rewritten Version:
{response}
````
For Longformer inference, set `global_attention_mask[:, 0] = 1`.
## Rewrite scoring
For normal rewrite evaluation, use the real source passage as `prompt` and the candidate rewrite as `response`.
## Standalone chunk scoring
If you only have a passage chunk and no source passage, the recommended workaround is:
* generate a **synthetically corrupted, flatter, still grammatical** version of the chunk
* place that synthetic corruption in `Original Draft`
* place the real chunk in `Rewritten Version`
This better matches the model’s training format than an empty prompt.
### Caveat
In standalone chunk mode, `faith` and `identifier` are **not true faithfulness metrics**. They only measure agreement with the synthetic corrupted prompt.
## Recommended composite score for rewrite scoring
```python
overall_score = style_score * (0.5 * faith_score + 0.5 * identifier_score) * (identifier_score ** 1.5)
```
## Recommended score for standalone chunk scoring
You can rank by:
* `proxy_overall_score` if using a synthetic corrupted prompt
* or just `style_score` if you want the simplest signal
The synthetic-prompt method usually produces more separation between chunks than an empty-prompt style-only setup.
## Output head order
```python
[style_logit, faith_logit, identifier_logit]
```
## Base model
`allenai/longformer-base-4096`