File size: 8,392 Bytes
95ba714
 
ab56b09
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95ba714
ab56b09
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
---
license: apache-2.0
language:
  - en
library_name: transformers
pipeline_tag: text-generation
base_model:
  - lingshu-medical-mllm/Lingshu-7B
tags:
  - health
  - misinformation
  - community-notes
  - helpfulness-classification
  - llm-as-a-judge
  - medical
  - social-media
metrics:
  - f1
  - accuracy
---

# HealthJudge

**HealthJudge** is a domain-adapted helpfulness evaluator for health-related Community Notes.  
It is designed to judge whether a note provides helpful context for a potentially misleading social-media post, following the Community Notes helpfulness criteria.

HealthJudge is introduced in **“Beyond the Crowd: LLM-Augmented Community Notes for Governing Health Misinformation”** as the final helpfulness evaluation component of **CrowdNotes+**, a framework for LLM-augmented Community Notes in the health domain.

- **Paper:** https://arxiv.org/abs/2510.11423
- **Code & data:** https://github.com/jiayingwu19/CrowdNotesPlus
- **License:** Apache-2.0

## Model Details

- **Model type:** Causal language model used as a binary helpfulness judge
- **Base model:** `lingshu-medical-mllm/Lingshu-7B`
- **Task:** Given a social-media post and a candidate note, output whether the note is **Helpful** or **Not Helpful**
- **Output format:** `Final decision: yes` or `Final decision: no`
- **Primary domain:** English health-related misinformation governance
- **Intended setting:** Human-in-the-loop moderation, evaluation, and research

HealthJudge evaluates the *helpfulness* of a note. It is not intended to independently verify whether the post, note, or cited evidence is factually correct. In CrowdNotes+, helpfulness is used after separate evidence relevance and correctness checks.

## Input Format

The model was trained with a chat-style prompt. A recommended prompt is:

```text
You are a precise text classifier.

You are given a Tweet and its corresponding Note:

Tweet: {post}
Note: {note}

The purpose of note is to add helpful context to tweet and keep people better informed.
Your task is to evaluate whether the Note is Helpful or Not Helpful based on the following criteria:

Helpful Criteria:
- Clear and/or well-written
- Cites high-quality sources
- Directly addresses the Tweet's claim
- Provides important context
- Neutral or unbiased language
- Other positive reason

Not Helpful Criteria:
- Incorrect information
- Sources missing or unreliable
- Misses key points or is irrelevant
- Hard to understand
- Argumentative or biased language
- Spam, harassment, or abuse
- Sources do not support note
- Opinion or speculation
- Note not needed on this Tweet
- Other negative reason

Instructions:
1. Carefully read the Tweet and the Note.
2. Analyze the Note using the Helpful and Not Helpful criteria above.
3. Respond with "Final decision: yes" if Helpful or "Final decision: no" if Not Helpful.
```

## Quickstart

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "Eculid/HealthJudge"

tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True,
)

post = "..."  # social-media post to evaluate
note = "..."  # candidate Community Note text, without evidence URLs if following the paper setup

messages = [
    {"role": "system", "content": "You are a precise text classifier."},
    {
        "role": "user",
        "content": f"""You are given a Tweet and its corresponding Note:

Tweet: {post}
Note: {note}

The purpose of note is to add helpful context to tweet and keep people better informed.
Your task is to evaluate whether the Note is Helpful or Not Helpful based on the following criteria:

Helpful Criteria:
- Clear and/or well-written
- Cites high-quality sources
- Directly addresses the Tweet's claim
- Provides important context
- Neutral or unbiased language
- Other positive reason

Not Helpful Criteria:
- Incorrect information
- Sources missing or unreliable
- Misses key points or is irrelevant
- Hard to understand
- Argumentative or biased language
- Spam, harassment, or abuse
- Sources do not support note
- Opinion or speculation
- Note not needed on this Tweet
- Other negative reason

Instructions:
1. Carefully read the Tweet and the Note.
2. Analyze the Note using the Helpful and Not Helpful criteria above.
3. Respond with "Final decision: yes" if Helpful or "Final decision: no" if Not Helpful."""
    },
]

inputs = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    return_tensors="pt",
).to(model.device)

outputs = model.generate(
    inputs,
    max_new_tokens=32,
    temperature=0.0,
    do_sample=False,
)

response = tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True)
print(response)
```

Expected output:

```text
Final decision: yes
```

or

```text
Final decision: no
```

## Training Data

HealthJudge was trained on human-labeled health-related post–note pairs. The training setup uses the note text without appended evidence URLs so that helpfulness judgments focus on explanatory quality rather than directly judging evidence relevance or evidence correctness.

The dataset used for HealthJudge contains:

| Split / Role | Helpful | Not Helpful | Total |
|---|---:|---:|---:|
| All labeled pairs | 2,971 | 742 | 3,713 |
| Held-out evaluation | 800 | 200 | 1,000 |

Each instance was formatted as a chat prompt, and the training loss was applied only to the final decision tokens: `Final decision: yes/no`.

## Training Procedure

HealthJudge was trained using full fine-tuning.

| Hyperparameter | Value |
|---|---|
| Base model | `lingshu-medical-mllm/Lingshu-7B` |
| Epochs | 2 |
| Optimizer | AdamW |
| Learning rate | `1e-5` |
| Gradient accumulation | 16 |
| Precision | bfloat16 |
| Objective | Final-decision-token prediction |

## Evaluation

HealthJudge was evaluated on 1,000 unseen human-labeled post–note pairs.

| Model | Macro-F1 (%) | Macro-Accuracy (%) |
|---|---:|---:|
| GPT-4.1 | 74.28 | 74.19 |
| Gemini-2.5-Flash | 68.36 | 65.13 |
| Claude-Sonnet-4 | 78.14 | 76.44 |
| Lingshu-32B | 64.71 | 62.25 |
| Lingshu-7B | 51.66 | 51.63 |
| **HealthJudge** | **81.03** | **81.44** |

These results indicate that HealthJudge better aligns with human helpfulness labels than the compared general-purpose and medical LLM baselines in the reported setup.

## Relationship to CrowdNotes+

CrowdNotes+ evaluates generated or human-written notes through a hierarchical pipeline:

1. **Evidence relevance:** whether the cited or retrieved evidence is relevant to the flagged post.
2. **Evidence correctness:** whether the note accurately represents the evidence.
3. **Note helpfulness:** whether the note provides useful context for readers.

HealthJudge is used for the third stage: note helpfulness.

## Limitations and Safety

HealthJudge is a decision-support model for research and human-in-the-loop workflows. Important limitations include:

- **Not a factuality checker:** A note may sound helpful but still contain unsupported or inaccurate information. Use separate evidence relevance and correctness checks.
- **Health-domain scope:** The model was developed for English health-related Community Notes. Performance may degrade outside this domain.
- **Potential automation bias:** Users may over-trust model outputs. Human review is required before making moderation or public-facing decisions.
- **No medical advice:** The model does not provide diagnosis, treatment, prevention advice, or clinical recommendations.
- **Data and platform context:** The model reflects patterns in Community Notes-style annotations and may not generalize to all social-media platforms or communities.

For high-stakes use cases, HealthJudge should be paired with expert oversight, transparent evidence review, and domain-specific validation.

## Citation

If you use HealthJudge, please cite:

```bibtex
@misc{wu2026beyondcrowd,
  title        = {Beyond the Crowd: LLM-Augmented Community Notes for Governing Health Misinformation},
  author       = {Jiaying Wu and Zihang Fu and Haonan Wang and Fanxiao Li and Jiafeng Guo and Preslav Nakov and Min-Yen Kan},
  year         = {2026},
  eprint       = {2510.11423},
  archivePrefix = {arXiv},
  primaryClass = {cs.SI},
  url          = {https://arxiv.org/abs/2510.11423}
}
```