Repository navigation
Add MentalHealthBench environment - #138
Open
bofenghuang wants to merge 1 commit into
Open
bofenghuang wants to merge 1 commit into
bofenghuang wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a new environment:
mentalhealthbench.MentalHealthBench is a benchmark from OpenAI (paper, announcement). It has 1,215 synthetic mental health conversations and 5,262 rubric criteria. Licensed clinicians wrote the criteria.
Why a new environment, not a HealthBench subset
MentalHealthBench uses the same score formula as HealthBench. But most other parts are different:
criteria_met(true or false)satisfaction(0 or 1)A subset in
healthbenchwould need a condition at most of these points. That makes the HealthBench code harder to read and to maintain.A separate environment also gives the benchmark its own name. Thus, processed results and win rates show MentalHealthBench separately from HealthBench.
The cost: the new environment copies the judge loop and the retry logic from
healthbench(about 100 lines). If a third rubric benchmark comes, we can move this shared code intomedarc_verifiers.What the environment does
Judge prompt
The judge prompt is a word-for-word copy of the paper's prompt (Appendix B.2).
This prompt is different from the HealthBench prompt:
{"explanation", "satisfaction": 0|1}.If the judge call fails, or the output is not valid JSON, the environment tries again (3 times by default). If all attempts fail, the criterion counts as "not met".
Scores
All scores use the total positive points of the task as the denominator.
rewardsigned_scorepositive_points_earnednormalized_penalty_burdenAn empty response gets 0 points. The judge does not grade it. The paper does the same (Appendix B.1).
Samples per task
The paper uses 4 responses for each task. To do the same, use
-r 4. This costs 4 times more than-r 1.More samples do not change the expected score. They only make the score less noisy. The paper does not compare 1 sample with 4 samples.
Note: the default of
-rinmedarc-evalis 3. Always set-r.Differences from the paper
OpenAI did not publish evaluation code. These choices are ours:
Role: contentblocks with a blank line between them.openai/gpt-5-mini. Thus, our scores are not directly comparable to the paper.info.How to test
The 6 new tests use synthetic data and a fake judge. They do not use real benchmark examples, because the dataset authors ask people not to publish them.
Not done yet
🤖 Generated with Claude Code