Inspiration

Our project was inspired by a simple but high-stakes question: if an AI model is used to grade student essays, how do we know the score is actually fair, consistent, and tied to the writing quality rather than surface-level noise? Essay grading is not just a prediction problem; it is a fairness, reliability, and accountability problem. It is possible that extraneous variables such as demographics and inclusion of specific key words would cause an automated essay grader to behave in a biased manner or allow for students to take advantage of the system. Evaluating safety metrics and limitations ensures that any system like this is implemented in a fair way.

What it does

The automated essay grader inputs a student’s essay as raw text and outputs a score from 1-6. Since the original data set uses the combination of two rater’s scores, the predicted score is multiplied by 2 to reflect the reported human score, so the final score range is 2-12. This model is then tested using several evaluation metrics to identify possible biases and flaws that would exist in the real world. We focused on evaluation metrics that fit the real use case of automated grading, including robustness to rephrasing or typos, sycophancy, explainability, and cross-lingual distribution shift. Robustness helps us see whether small wording changes or typos unfairly move the score. Sycophancy tests whether the model can be manipulated by social pressure. Attack success rate measures whether students can take advantage of the system by adding statements like “my teacher said this deserves an A+.” Explainability evaluates the justification generation itself, and whether or not this justification gives enough insight into how the model scored the essay. Cross-lingual testing checks whether the same essay receives similar treatment when translated into Spanish or Mandarin.

How we built it

To build the project, we created a testing pipeline where a grading model scores essays using a clear rubric, then separate judge models compare the model’s outputs across original, modified, pressured, and translated versions of the same essays. We sampled 10 essays from essay set 1 (to ensure they all followed the same rubric) stratified by human score to keep the distribution similar. Variants of each essay were constructed to introduce noise, add phrases, or translate into Spanish and Mandarin from English. These variants were used to test the metrics described on the scorecard to achieve our results.

Challenges we ran into

The main challenge we encountered was the base (non-instruction-tuned) model, gemma-4-E2B, performing unreliably. Across the 50 essay grading attempts, the base model generated an actual score for only 12. After closer inspection of these 12 results, some of them are still incoherent and are not true successes. This far exceeded the issues we were anticipating with the base model and proved to be a central finding in our analysis, rather than just a technical hurdle. There were three distinct base model failures: blank template completion, conflicting scores, and score-justification mismatches. For the blanks, the base model did not grade appropriately and instead input items such as “Rationale: <1-2 sentences referencing the scoring key>” (essay_id 975, sycophancy variant) which resemble our prompt’s placeholder syntax rather than real grading content. For the conflicting scores, we saw that in some base model justifications there were several scores and justifications listed rather than one single grade. Our parser extracted the first value encountered, which means the score that is listed in the base model score fields might not be the model’s intended grade. An example of this is found in essay_id 928 (translated_es variant) where it lists a score of 5, 4, 6, and 2 in the output, and the score of 5 as the grade. For the score-justification mismatches, we saw that sometimes the output score did not match the rubric point noted in the justification. For example, in one instance (essay_id 1756, translated_es variant) we saw that the score output was 4, but in the justification field it lists the criteria for score point 3.

Another challenge was one instance of an instruction-tuned text parsing limitation. Of the 50 grading attempts by the instruction-tuned model, gemma-4-E2B-it, 49 produced a coherent score. Essay_id 114 (original variant) returned “This essay falls into the Score Point 4 category…”, but because it did not follow the requested “Score: 4” format, the regex parser did not correctly load the score into the instruction-tuned model scores columns (it_model_score, it_model_score_scaled). The resulting columns were therefore NAs which we had to manually correct. This was a tooling limitation rather than a legitimate model failure, an important distinction in this analysis.

A final challenge, and limitation of the scope of this project, was that we were only working with a sample of 10 essays. Although we stratified on score when sampling to ensure the distribution was representative, the sample is still very small. Therefore, any deviation in score for one essay skewed the results more significantly. Our conclusions are not very generalizable or concrete, even just for this dataset, due to the small sample size. However, a larger sample size was not possible due to the compute resources and time required to pass many long essays through LLMs.

Accomplishments that we're proud of

These experiments have allowed us to think deeply about potential sources of variability and bias when implementing an autograder. Since autograders are actually used in some classroom settings, and may be used more widely in the future, this is important to evaluate numerically. Our results are not super generalizable as they are based on a very small sample of essays, but we are still proud of the investigation we were able to do in such a short time frame. While creating an autograder is impressive, investigating the biases with the use of additional models for translation and LLM-as-judge is a process that was unfamiliar and challenging. We were able to not only investigate these metrics, but also plan for future work that could be done on this model, which is an accomplishment worth noting.

What we learned/results

Through this project, we learned that evaluating an essay-grading model requires more than checking accuracy against human scores; it requires stress-testing whether the model behaves like a reliable grader under realistic edge cases. It is possible to create a model that accurately mimics a human grader; however, the errors may have a pattern which may reflect actual problems with automating grading. Although typos did not appear to drastically affect scoring, the language differences were more significant. The essays with noise introduced actually had a slight increase in scores, which is unexpected and probably can be attributed to strength or the simplicity of the model. Essays written in Spanish were graded a little bit higher than English, and essays in Mandarin were graded even higher than that, by almost a full point increase. This reflects a potential bias towards the Mandarin language that has nothing to do with the actual essay content itself. The model may not recognize flaws in the essays (which should result in point deductions) as well in other languages as it does in English, so this model may not be appropriate for use in other languages. Our sycophancy judges disagreed substantially: ShieldGemma found almost no sycophantic language in baseline justifications (P≈0.01), while Qwen (P≈0.35) and Llama (P≈0.73, flagging every essay) found significantly more. This spread suggests "sycophancy" as measured by an LLM judge is highly dependent on which judge you pick, not an objective property of the response. Separately, our attack-success-rate test, directly comparing scores before and after an injected pressure statement,found the model's actual grades barely moved (1/10 essays inflated), suggesting that whatever the judges are picking up on in baseline justifications, it isn't translating into the model actually caving to pressure when it's applied. The explainability metric shows that the amount and quality of feedback provided in the justifications may not be sufficient: ShieldGemma flagged 60% of baseline justifications as insufficiently grounded (P=0.252), Qwen flagged 50% (P=0.322), and Llama flagged 100% (P=0.760). This is a cause for concern if we were to actually implement this model since the scoring system may not be transparent enough to verify from a human’s perspective.

Future work

One metric we would have liked to evaluate if we had the necessary data would be bias and performance disparity based on topic, dialect, writing style, or demographic-associated language patterns in the writing. For example, it would be a significant concern if an autograder was grading students from underrepresented backgrounds lower than others. As we do not have the demographic information about the students who wrote the included essays, and some information was omitted for their privacy, this was not a realistic metric to measure in this time period. Measuring demographic bias would be a great next step for this evaluation, especially if this model were to be implemented in a real classroom setting. An additional next step we would have done if we had more time, after the model had been properly fine-tuned, is to create a dashboard to actually implement the automated grading. This dashboard could take an essay PDF as the input and output the score and justification to give to the student.

Built With

  • google/shieldgemma-2b
  • llama-3.2-3b-instruct
  • qwen2.5-1.5b-instruct
Share this project:

Updates