Files
CompanionGuard-RL/experiments/eval_intervention_v5.json
zhangsiyuan 52ba43f08d feat: Module C v5/v6 training complete, ablations, SOTA baselines, paper updates
- Module C: BC+PPO training v5/v6 done; eval results in experiments/eval_intervention_v{5,6}.json
- Reward: v5 label-aligned constrained reward (code/src/rl/reward.py)
- Ablations: Module B (history_r, response_only, full) + Module C (wo_category_reward)
- SOTA baselines: WildGuard and ShieldGemma2b eval scripts and results
- Paper: update sections 05–08 (Module B/C description, experiments table, discussion)
- Docs: add record.md (change log), update state.md and exp.md; retire change.md
- Tools: add html-to-ppt utilities and run_shieldgemma2b.sh
- Configs: add ablation YAML configs for Module B and C
- Cleanup: remove stale reference/ PNG screenshots

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 14:24:09 +08:00

1049 lines
22 KiB
JSON

{
"meta": {
"test_file": "data/processed/CompanionRisk-Bench/test.jsonl",
"source_filter": "all",
"label_filter": "all",
"n_total": 1486,
"n_filtered": 1486,
"n_risky": 1039
},
"L1a_keyword": {
"binary_f1": 0.26436781609195403,
"high_risk_recall": 0.15495668912415783,
"high_risk_precision": 0.8994413407821229,
"false_negative_rate": 0.8450433108758422,
"level_macro_f1": 0.10427720349098286,
"level_weighted_f1": 0.09799538109505529,
"level_per_class_f1": [
0.2979274611398964,
0.0,
0.1934156378600823,
0.030042918454935622,
0.0
],
"per_category_recall": {
"R1": {
"total": 136,
"detected": 10,
"recall": 0.0735,
"miss_rate": 0.9265
},
"R2": {
"total": 142,
"detected": 16,
"recall": 0.1127,
"miss_rate": 0.8873
},
"R3": {
"total": 95,
"detected": 17,
"recall": 0.1789,
"miss_rate": 0.8211
},
"R4": {
"total": 116,
"detected": 22,
"recall": 0.1897,
"miss_rate": 0.8103
},
"R5": {
"total": 64,
"detected": 9,
"recall": 0.1406,
"miss_rate": 0.8594
},
"R6": {
"total": 97,
"detected": 11,
"recall": 0.1134,
"miss_rate": 0.8866
},
"R7": {
"total": 91,
"detected": 6,
"recall": 0.0659,
"miss_rate": 0.9341
},
"R8": {
"total": 73,
"detected": 49,
"recall": 0.6712,
"miss_rate": 0.3288
},
"R9": {
"total": 152,
"detected": 11,
"recall": 0.0724,
"miss_rate": 0.9276
},
"R10": {
"total": 73,
"detected": 10,
"recall": 0.137,
"miss_rate": 0.863
}
}
},
"L1b_regex": {
"binary_f1": 0.06697674418604652,
"high_risk_recall": 0.03464870067372473,
"high_risk_precision": 1.0,
"false_negative_rate": 0.9653512993262753,
"level_macro_f1": 0.07297879241072718,
"level_weighted_f1": 0.06312377515343655,
"level_per_class_f1": [
0.2809721398933017,
0.0,
0.07954545454545454,
0.00437636761487965,
0.0
],
"per_category_recall": {
"R1": {
"total": 136,
"detected": 0,
"recall": 0.0,
"miss_rate": 1.0
},
"R2": {
"total": 142,
"detected": 1,
"recall": 0.007,
"miss_rate": 0.993
},
"R3": {
"total": 95,
"detected": 19,
"recall": 0.2,
"miss_rate": 0.8
},
"R4": {
"total": 116,
"detected": 9,
"recall": 0.0776,
"miss_rate": 0.9224
},
"R5": {
"total": 64,
"detected": 0,
"recall": 0.0,
"miss_rate": 1.0
},
"R6": {
"total": 97,
"detected": 0,
"recall": 0.0,
"miss_rate": 1.0
},
"R7": {
"total": 91,
"detected": 3,
"recall": 0.033,
"miss_rate": 0.967
},
"R8": {
"total": 73,
"detected": 0,
"recall": 0.0,
"miss_rate": 1.0
},
"R9": {
"total": 152,
"detected": 0,
"recall": 0.0,
"miss_rate": 1.0
},
"R10": {
"total": 73,
"detected": 4,
"recall": 0.0548,
"miss_rate": 0.9452
}
}
},
"L1c_combined": {
"binary_f1": 0.3060897435897436,
"high_risk_recall": 0.18383060635226178,
"high_risk_precision": 0.9138755980861244,
"false_negative_rate": 0.8161693936477382,
"level_macro_f1": 0.11189027535274536,
"level_weighted_f1": 0.10619241328971442,
"level_per_class_f1": [
0.3038309114927345,
0.0,
0.22135922330097088,
0.034261241970021415,
0.0
],
"per_category_recall": {
"R1": {
"total": 136,
"detected": 10,
"recall": 0.0735,
"miss_rate": 0.9265
},
"R2": {
"total": 142,
"detected": 17,
"recall": 0.1197,
"miss_rate": 0.8803
},
"R3": {
"total": 95,
"detected": 32,
"recall": 0.3368,
"miss_rate": 0.6632
},
"R4": {
"total": 116,
"detected": 29,
"recall": 0.25,
"miss_rate": 0.75
},
"R5": {
"total": 64,
"detected": 9,
"recall": 0.1406,
"miss_rate": 0.8594
},
"R6": {
"total": 97,
"detected": 11,
"recall": 0.1134,
"miss_rate": 0.8866
},
"R7": {
"total": 91,
"detected": 9,
"recall": 0.0989,
"miss_rate": 0.9011
},
"R8": {
"total": 73,
"detected": 49,
"recall": 0.6712,
"miss_rate": 0.3288
},
"R9": {
"total": 152,
"detected": 11,
"recall": 0.0724,
"miss_rate": 0.9276
},
"R10": {
"total": 73,
"detected": 14,
"recall": 0.1918,
"miss_rate": 0.8082
}
}
},
"ours_detection": {
"binary_f1": 0.9995189995189995,
"high_risk_recall": 1.0,
"high_risk_precision": 0.9990384615384615,
"false_negative_rate": 0.0,
"level_macro_f1": 0.5495554176357882,
"level_weighted_f1": 0.5584578220374772,
"level_per_class_f1": [
0.37540453074433655,
0.6351931330472103,
0.46393762183235865,
0.6400759734093068,
0.6331658291457286
],
"fine_per_label_f1": [
0.6844262295081968,
0.46567164179104475,
0.697986577181208,
0.40233236151603496,
0.585,
0.3559322033898305,
0.38322211630123926,
0.3374578177727784,
0.531810766721044,
0.39436619718309857,
0.2691029900332226,
0.4410480349344978,
0.32142857142857145,
0.615916955017301
],
"fine_macro_f1": 0.46326446162700485,
"fine_weighted_f1": 0.4915026862223374,
"per_category_recall": {
"R1": {
"total": 136,
"detected": 136,
"recall": 1.0,
"miss_rate": 0.0
},
"R2": {
"total": 142,
"detected": 142,
"recall": 1.0,
"miss_rate": 0.0
},
"R3": {
"total": 95,
"detected": 95,
"recall": 1.0,
"miss_rate": 0.0
},
"R4": {
"total": 116,
"detected": 116,
"recall": 1.0,
"miss_rate": 0.0
},
"R5": {
"total": 64,
"detected": 64,
"recall": 1.0,
"miss_rate": 0.0
},
"R6": {
"total": 97,
"detected": 97,
"recall": 1.0,
"miss_rate": 0.0
},
"R7": {
"total": 91,
"detected": 91,
"recall": 1.0,
"miss_rate": 0.0
},
"R8": {
"total": 73,
"detected": 73,
"recall": 1.0,
"miss_rate": 0.0
},
"R9": {
"total": 152,
"detected": 152,
"recall": 1.0,
"miss_rate": 0.0
},
"R10": {
"total": 73,
"detected": 73,
"recall": 1.0,
"miss_rate": 0.0
}
},
"label_filter": "all"
},
"baseline_rule": {
"intervention_recall_high": 0.9079754601226994,
"safety_recall": 0.9079754601226994,
"over_refusal": 0.0,
"over_intervention_rate": 0.0,
"action_distribution": [
0.46231493943472407,
0.0,
0.0,
0.5376850605652759,
0.0
],
"per_level_action_dist": {
"L0_Safe": {
"n": 237,
"action_dist": [
1.0,
0.0,
0.0,
0.0,
0.0
]
},
"L1_Mild": {
"n": 280,
"action_dist": [
0.9178571428571428,
0.0,
0.0,
0.08214285714285714,
0.0
]
},
"L2_Moderate": {
"n": 317,
"action_dist": [
0.4195583596214511,
0.0,
0.0,
0.580441640378549,
0.0
]
},
"L3_High": {
"n": 456,
"action_dist": [
0.11403508771929824,
0.0,
0.0,
0.8859649122807017,
0.0
]
},
"L4_Critical": {
"n": 196,
"action_dist": [
0.04081632653061224,
0.0,
0.0,
0.9591836734693877,
0.0
]
}
},
"crisis_precision_l4": NaN,
"crisis_precision": NaN,
"crisis_appropriateness": NaN,
"R1_high_critical_crisis_recall": 0.0,
"reject_rate_R6_R7_high": 0.956989247311828,
"strong_intervention_rate_L1": 0.08214285714285714,
"per_category_action_dist": {
"R1": {
"n": 140,
"action_dist": [
0.17857142857142858,
0.0,
0.0,
0.8214285714285714,
0.0
]
},
"R2": {
"n": 150,
"action_dist": [
0.4533333333333333,
0.0,
0.0,
0.5466666666666666,
0.0
]
},
"R3": {
"n": 95,
"action_dist": [
0.05263157894736842,
0.0,
0.0,
0.9473684210526315,
0.0
]
},
"R4": {
"n": 176,
"action_dist": [
0.48295454545454547,
0.0,
0.0,
0.5170454545454546,
0.0
]
},
"R5": {
"n": 64,
"action_dist": [
0.359375,
0.0,
0.0,
0.640625,
0.0
]
},
"R6": {
"n": 100,
"action_dist": [
0.09,
0.0,
0.0,
0.91,
0.0
]
},
"R7": {
"n": 91,
"action_dist": [
0.02197802197802198,
0.0,
0.0,
0.978021978021978,
0.0
]
},
"R8": {
"n": 215,
"action_dist": [
0.786046511627907,
0.0,
0.0,
0.21395348837209302,
0.0
]
},
"R9": {
"n": 382,
"action_dist": [
0.7827225130890052,
0.0,
0.0,
0.21727748691099477,
0.0
]
},
"R10": {
"n": 73,
"action_dist": [
0.0273972602739726,
0.0,
0.0,
0.9726027397260274,
0.0
]
}
},
"safety_ux_fscore": 0.9517684887459806
},
"baseline_threshold": {
"intervention_recall_high": 0.9079754601226994,
"safety_recall": 0.9079754601226994,
"over_refusal": 0.0,
"over_intervention_rate": 0.0,
"action_distribution": [
0.3304172274562584,
0.13189771197846567,
0.40174966352624497,
0.0,
0.13593539703903096
],
"per_level_action_dist": {
"L0_Safe": {
"n": 237,
"action_dist": [
1.0,
0.0,
0.0,
0.0,
0.0
]
},
"L1_Mild": {
"n": 280,
"action_dist": [
0.8428571428571429,
0.075,
0.08214285714285714,
0.0,
0.0
]
},
"L2_Moderate": {
"n": 317,
"action_dist": [
0.04416403785488959,
0.3753943217665615,
0.5520504731861199,
0.0,
0.028391167192429023
]
},
"L3_High": {
"n": 456,
"action_dist": [
0.008771929824561403,
0.10526315789473684,
0.7390350877192983,
0.0,
0.14692982456140352
]
},
"L4_Critical": {
"n": 196,
"action_dist": [
0.0,
0.04081632653061224,
0.3163265306122449,
0.0,
0.6428571428571429
]
}
},
"crisis_precision_l4": 0.6237623762376238,
"crisis_precision": 0.6237623762376238,
"crisis_appropriateness": 0.7128712871287128,
"R1_high_critical_crisis_recall": 0.5132743362831859,
"reject_rate_R6_R7_high": 0.0,
"strong_intervention_rate_L1": 0.08214285714285714,
"per_category_action_dist": {
"R1": {
"n": 140,
"action_dist": [
0.03571428571428571,
0.14285714285714285,
0.38571428571428573,
0.0,
0.4357142857142857
]
},
"R2": {
"n": 150,
"action_dist": [
0.12,
0.3333333333333333,
0.5333333333333333,
0.0,
0.013333333333333334
]
},
"R3": {
"n": 95,
"action_dist": [
0.042105263157894736,
0.010526315789473684,
0.9473684210526315,
0.0,
0.0
]
},
"R4": {
"n": 176,
"action_dist": [
0.42613636363636365,
0.056818181818181816,
0.5170454545454546,
0.0,
0.0
]
},
"R5": {
"n": 64,
"action_dist": [
0.0,
0.359375,
0.4375,
0.0,
0.203125
]
},
"R6": {
"n": 100,
"action_dist": [
0.03,
0.06,
0.4,
0.0,
0.51
]
},
"R7": {
"n": 91,
"action_dist": [
0.0,
0.02197802197802198,
0.2087912087912088,
0.0,
0.7692307692307693
]
},
"R8": {
"n": 215,
"action_dist": [
0.6651162790697674,
0.12093023255813953,
0.21395348837209302,
0.0,
0.0
]
},
"R9": {
"n": 382,
"action_dist": [
0.6361256544502618,
0.14659685863874344,
0.21727748691099477,
0.0,
0.0
]
},
"R10": {
"n": 73,
"action_dist": [
0.0,
0.0273972602739726,
0.9041095890410958,
0.0,
0.0684931506849315
]
}
},
"safety_ux_fscore": 0.9517684887459806
},
"bc_only_intervention": {
"intervention_recall_high": 0.9141104294478528,
"safety_recall": 0.9141104294478528,
"over_refusal": 0.0,
"over_intervention_rate": 0.0,
"action_accuracy": 0.6951547779273217,
"exact_action_accuracy_by_level": {
"L0_Safe": 1.0,
"L1_Mild": 0.8071428571428572,
"L2_Moderate": 0.31545741324921134,
"L3_High": 0.7587719298245614,
"L4_Critical": 0.6326530612244898
},
"action_distribution": [
0.3203230148048452,
0.11372812920592194,
0.33243606998654107,
0.16218034993270525,
0.07133243606998654
],
"per_level_action_dist": {
"L0_Safe": {
"n": 237,
"action_dist": [
1.0,
0.0,
0.0,
0.0,
0.0
]
},
"L1_Mild": {
"n": 280,
"action_dist": [
0.8071428571428572,
0.05714285714285714,
0.10714285714285714,
0.017857142857142856,
0.010714285714285714
]
},
"L2_Moderate": {
"n": 317,
"action_dist": [
0.031545741324921134,
0.31545741324921134,
0.501577287066246,
0.08832807570977919,
0.06309148264984227
]
},
"L3_High": {
"n": 456,
"action_dist": [
0.006578947368421052,
0.09868421052631579,
0.6228070175438597,
0.20833333333333334,
0.06359649122807018
]
},
"L4_Critical": {
"n": 196,
"action_dist": [
0.0,
0.04081632653061224,
0.10714285714285714,
0.576530612244898,
0.2755102040816326
]
}
},
"crisis_precision_l4": 0.5094339622641509,
"crisis_precision": 0.5094339622641509,
"crisis_appropriateness": 0.6509433962264151,
"R1_high_critical_crisis_recall": 0.4690265486725664,
"reject_rate_R6_R7_high": 0.7849462365591398,
"strong_intervention_rate_L1": 0.1357142857142857,
"per_category_action_dist": {
"R1": {
"n": 140,
"action_dist": [
0.02857142857142857,
0.06428571428571428,
0.19285714285714287,
0.24285714285714285,
0.4714285714285714
]
},
"R2": {
"n": 150,
"action_dist": [
0.1,
0.26666666666666666,
0.4866666666666667,
0.12,
0.02666666666666667
]
},
"R3": {
"n": 95,
"action_dist": [
0.021052631578947368,
0.010526315789473684,
0.9263157894736842,
0.042105263157894736,
0.0
]
},
"R4": {
"n": 176,
"action_dist": [
0.3977272727272727,
0.028409090909090908,
0.5625,
0.011363636363636364,
0.0
]
},
"R5": {
"n": 64,
"action_dist": [
0.0,
0.390625,
0.359375,
0.015625,
0.234375
]
},
"R6": {
"n": 100,
"action_dist": [
0.03,
0.02,
0.13,
0.69,
0.13
]
},
"R7": {
"n": 91,
"action_dist": [
0.0,
0.02197802197802198,
0.08791208791208792,
0.8681318681318682,
0.02197802197802198
]
},
"R8": {
"n": 215,
"action_dist": [
0.6604651162790698,
0.13953488372093023,
0.17209302325581396,
0.023255813953488372,
0.004651162790697674
]
},
"R9": {
"n": 382,
"action_dist": [
0.6282722513089005,
0.13350785340314136,
0.17801047120418848,
0.0549738219895288,
0.005235602094240838
]
},
"R10": {
"n": 73,
"action_dist": [
0.0,
0.0547945205479452,
0.7945205479452054,
0.1095890410958904,
0.0410958904109589
]
}
},
"safety_ux_fscore": 0.9551282051282052
},
"ours_intervention": {
"intervention_recall_high": 0.8328220858895705,
"safety_recall": 0.8328220858895705,
"over_refusal": 0.0,
"over_intervention_rate": 0.0,
"action_accuracy": 0.7173620457604307,
"exact_action_accuracy_by_level": {
"L0_Safe": 1.0,
"L1_Mild": 0.8392857142857143,
"L2_Moderate": 0.47003154574132494,
"L3_High": 0.6842105263157895,
"L4_Critical": 0.6785714285714286
},
"action_distribution": [
0.32705248990578734,
0.17967698519515476,
0.28061911170928666,
0.126514131897712,
0.08613728129205922
],
"per_level_action_dist": {
"L0_Safe": {
"n": 237,
"action_dist": [
1.0,
0.0,
0.0,
0.0,
0.0
]
},
"L1_Mild": {
"n": 280,
"action_dist": [
0.8357142857142857,
0.075,
0.07142857142857142,
0.0,
0.017857142857142856
]
},
"L2_Moderate": {
"n": 317,
"action_dist": [
0.031545741324921134,
0.4479495268138801,
0.41324921135646686,
0.05362776025236593,
0.05362776025236593
]
},
"L3_High": {
"n": 456,
"action_dist": [
0.010964912280701754,
0.20394736842105263,
0.5328947368421053,
0.16885964912280702,
0.08333333333333333
]
},
"L4_Critical": {
"n": 196,
"action_dist": [
0.0,
0.05612244897959184,
0.11734693877551021,
0.47959183673469385,
0.3469387755102041
]
}
},
"crisis_precision_l4": 0.53125,
"crisis_precision": 0.53125,
"crisis_appropriateness": 0.7109375,
"R1_high_critical_crisis_recall": 0.672566371681416,
"reject_rate_R6_R7_high": 0.7473118279569892,
"strong_intervention_rate_L1": 0.08928571428571429,
"per_category_action_dist": {
"R1": {
"n": 140,
"action_dist": [
0.02857142857142857,
0.1357142857142857,
0.11428571428571428,
0.1,
0.6214285714285714
]
},
"R2": {
"n": 150,
"action_dist": [
0.1,
0.43333333333333335,
0.35333333333333333,
0.06666666666666667,
0.04666666666666667
]
},
"R3": {
"n": 95,
"action_dist": [
0.042105263157894736,
0.031578947368421054,
0.9263157894736842,
0.0,
0.0
]
},
"R4": {
"n": 176,
"action_dist": [
0.4375,
0.09659090909090909,
0.4659090909090909,
0.0,
0.0
]
},
"R5": {
"n": 64,
"action_dist": [
0.0,
0.46875,
0.375,
0.03125,
0.125
]
},
"R6": {
"n": 100,
"action_dist": [
0.03,
0.02,
0.15,
0.62,
0.18
]
},
"R7": {
"n": 91,
"action_dist": [
0.0,
0.04395604395604396,
0.08791208791208792,
0.8681318681318682,
0.0
]
},
"R8": {
"n": 215,
"action_dist": [
0.6651162790697674,
0.17674418604651163,
0.14418604651162792,
0.013953488372093023,
0.0
]
},
"R9": {
"n": 382,
"action_dist": [
0.6282722513089005,
0.20418848167539266,
0.12041884816753927,
0.03664921465968586,
0.010471204188481676
]
},
"R10": {
"n": 73,
"action_dist": [
0.0,
0.1506849315068493,
0.7397260273972602,
0.0547945205479452,
0.0547945205479452
]
}
},
"safety_ux_fscore": 0.9087866108786611
}
}