Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

29 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LLM Reliability & Fairness in Automated Essay Scoring

When two LLMs score the same essay and disagree by over 2 points on a 32-point rubric, students graded by the stricter model face a structural disadvantage β€” this study measures exactly that.


πŸ“Š Read the Full Interactive Report

β†’ Open the scrollytelling report

Charts, scroll-driven narrative, and all findings in one interactive page. Works on mobile and desktop.


Abstract

The deployment of Large Language Models (LLMs) in Automated Essay Scoring (AES) for academic evaluation poses algorithmic bias risks if implemented without human oversight. This study evaluates the Mixture of Experts (GPT OSS 120B) and Dense (Qwen3-32B) architectures using a multiple run scoring approach on 150 IELTS like essays. These specific models were selected to contrast the evaluative capabilities of a high parameter sparse architecture against a more compact dense network. The evaluation encompasses severity bias detection, topic bias through unimodal stress testing, and a Human in the Loop (HITL) routing simulation. Results indicate a fundamental architectural trade off: Qwen3-32B achieved perfect format compliance but demonstrated score instability (ICC 0.84) and excessive leniency, whereas GPT OSS 120B was highly reliable (ICC 0.94) with precise discriminative power but suffered a 25.4 percent parsing failure rate due to format hallucination. Furthermore, both models exhibit conservatism bias on visual description tasks lacking image context. The variability based HITL simulation (CV < 15%, Range $\le$ 2) demonstrates that GPT OSS 120B can automatically approve 55.4 percent of essays, while flagging the remaining 44.6 percent for human review. These findings confirm that fully automated formative assessment presents considerable reliability challenges, establishing the HITL framework as an essential bridging solution to mitigate LLM bias and maintain academic integrity.


Research Summary

Item Detail
Dataset 50 respondents Γ— 3 essay prompts (150 theoretical max)
Evaluation runs 5 runs per essay per model
Rubric 4 criteria: Grammar, Lexical, Coherence, Task (max 32 pts)
GPT submitted / valid 130 submitted / 97 valid scored (33 JSON parse failures, 25.4%)
Qwen submitted / valid 128 submitted / 128 valid scored (0 failures)
Valid pairs for comparison 95 essays scored validly by both models

Key Findings

Metric GPT-oss-120b Qwen3-32b Advantage
ICC (reliability) 0.943 β€” Excellent 0.844 β€” Good GPT
Mean score / 32 25.47 28.32 Qwen
Consistency (mean CV) 0.047 0.092 GPT
Mean within-essay range 2.4 pts 5.56 pts GPT
Auto-approve rate 55.4% 7.8% GPT
JSON parse failure rate 25.4% (33/130) 0% Qwen
  • GPT is the more reliable scorer. ICC 0.943 (excellent) vs 0.844 (good). Score the same essay five times with GPT and the results stay within a 2.4-point range on average β€” less than half of Qwen's 5.56-point spread.
  • Qwen scores higher but far less consistently. Mean score 28.32 vs 25.47, but 92.2% of its essays were flagged for human review due to high variance. GPT required review for only 44.6%.
  • The scoring gap is a fairness risk. In 74 out of 95 paired essays, Qwen scored higher than GPT. The ~2-point systematic gap means a student graded by GPT is structurally disadvantaged compared to one graded by Qwen on the same essay.
  • Qwen never fails to return a usable score. GPT failed to produce parseable JSON on 25.4% of essays under zero-shot conditions β€” a significant deployment blocker.
  • Both models score data-report essays most strictly. Without visual context, neither model hallucinates chart content; both apply conservative scoring instead (GPT: 24.20, Qwen: 27.37).

Statistical Results

Severity Bias β€” Paired t-test

Computed on 95 valid paired essays (essays scored by both models with no parse failure).

Statistic Value
t-statistic βˆ’7.43
p-value 5.03 Γ— 10⁻¹¹
GPT mean total 25.47 (SD = 7.02)
Qwen mean total 28.32 (SD = 6.00)

The gap is not random β€” it is systematic. With p = 5.03 Γ— 10⁻¹¹, the probability this difference occurred by chance is effectively zero. GPT applies a consistently stricter standard than Qwen across all essays.

Individual Agreement β€” Bland-Altman Analysis

Computed on 95 valid paired essays.

Metric Value
Mean difference (GPT βˆ’ Qwen) βˆ’2.07
Lower limit of agreement βˆ’7.38
Upper limit of agreement +3.25

The limits of agreement span 10.6 points, indicating wide individual-level disagreement beyond the systematic gap. The asymmetric bounds (wider on the negative side) reflect GPT's tendency toward occasional extreme strictness rather than symmetric noise.

Reliability β€” Intraclass Correlation (ICC-3)

5 runs per essay, two-way mixed consistency model. ICC measures how much of the score variation is signal (real essay quality) vs. noise (model inconsistency). A score above 0.9 is considered excellent.

Model ICC n essays n balanced
GPT-oss-120b 0.943 97 81
Qwen3-32b 0.844 128 123

HITL Routing Simulation

Threshold: CV < 0.15 AND score range ≀ 2 β†’ Auto-Approve; else Flagged for human Review.

Model Auto-Approve Flagged for Review
GPT-oss-120b 72 / 130 (55.4%) 58 / 130 (44.6%)
Qwen3-32b 10 / 128 (7.8%) 118 / 128 (92.2%)

Qwen's inconsistency effectively eliminates it from any pipeline that uses automated approval β€” 9 in 10 of its essays must go to a human reviewer, making it operationally equivalent to manual grading.

Topic Bias

Prompt Category GPT mean Qwen mean Gap
data_report 24.20 27.37 3.17
social_policy_opinion 26.22 28.97 2.75
tech_society_opinion 27.18 28.85 1.67

The severity gap is widest on data_report tasks (3.17 pts) and narrowest on tech_society_opinion (1.67 pts), suggesting topic framing and visual context affect model scoring behavior differently.


Limitations

  • Sample size: 150 essays from 50 respondents β€” moderate for an exploratory study, but findings should be replicated on a larger, more diverse corpus before drawing strong policy conclusions.
  • Essay type: All prompts are IELTS/TOEFL-style academic writing. Results may not generalize to other writing contexts (creative writing, business reports, school essays).
  • Effective GPT sample: GPT's 25.4% JSON failure rate reduces its usable sample from 130 to 97 essays, potentially introducing selection bias in ICC calculations.
  • Zero-shot prompting only: Both models were tested without examples or fine-tuning. Providing few-shot examples or task-specific prompting may significantly change reliability and consistency results.
  • Models tested: GPT-oss-120b and Qwen3-32b at time of study. Model behavior evolves with version updates.

Replication

To independently verify the reported numbers:

pip install pandas numpy
python scripts/extract_metrics.py

This reads directly from the evaluation JSONL files and prints total observations, paired intersection, and Bland-Altman metrics β€” matching data/processed/analysis/report.json.


Setup & Pipeline

Prerequisites

  • Python 3.10+
  • See requirements.txt for dependencies
pip install -r requirements.txt

Running the Pipeline

Three stages: preprocess β†’ evaluate β†’ analyze

Stage Command
Preprocess python src/preprocess.py --input data/raw/essays.xlsx --out-dir data/processed
Evaluate python src/evaluate.py --inputs data/processed --models qwen3-32b gpt-oss-120b
Analyze python src/analyze.py --inputs data/processed --out-dir data/processed/analysis

Run all three in sequence to generate reports.

Outputs

Located in --out-dir (default: data/processed/analysis):

File Description
report.html Interactive dashboard with KPI cards and embedded charts
report.md Markdown summary with all tables
report.json Machine-readable metrics
metrics_summary.csv Per-model aggregated metrics
hitl_routing.csv Per-essay HITL routing decisions
image/*.png Static chart exports (Bland-Altman, heatmaps, boxplot, HITL)

Configuration

Edit constants in src/analyze.py:

  • HITL_CV_THRESHOLD = 0.15 β€” auto-approve if CV below this
  • HITL_RANGE_THRESHOLD = 2 β€” auto-approve if score range ≀ this

The analyze stage caches results. To force recompute:

python src/analyze.py --inputs data/processed --out-dir data/processed/analysis --force

Project Structure

llm-awe-reliability-fairness/
β”œβ”€β”€ data/
β”‚   └── processed/
β”‚       β”œβ”€β”€ analysis/       # Generated reports and charts
β”‚       β”œβ”€β”€ eval/           # Per-question model evaluation outputs
β”‚       └── samples/        # Preprocessed essay samples (JSONL)
β”œβ”€β”€ dataset/                # Source dataset (Excel)
β”œβ”€β”€ notebook/               # Exploratory analysis notebook
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ extract_metrics.py  # Standalone metric extraction for reproducibility
β”‚   β”œβ”€β”€ diag_checkpoint.py
β”‚   β”œβ”€β”€ inspect_icc.py
β”‚   └── inspect_xlsx.py
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ analyze.py          # Main analysis pipeline
β”‚   β”œβ”€β”€ evaluate.py         # Model evaluation runner
β”‚   β”œβ”€β”€ preprocess.py       # Data preprocessing
β”‚   └── cli.py
β”œβ”€β”€ scrolly-report.html     # Interactive scrollytelling report (live at GitHub Pages)
β”œβ”€β”€ requirements.txt
└── LICENSE

Author

Muhammad Abdiel Al Hafiz GitHub: dlzcods

Citation

If you use this data or methodology in your work:

Al Hafiz, M. A. (2025). LLM Reliability & Fairness in Automated Essay Scoring:
Comparing GPT-oss-120b and Qwen3-32b on IELTS-style Writing Evaluation.
https://github.com/dlzcods/llm-awe-reliability-fairness

License

See LICENSE for details.

About

Research Findings of LLM Reliability & Fairness in Automated Essay Scoring

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages