in lmms_eval/tasks/cmmmu/utils.py [0:0]
def cmmmu_aggregate_results(results):
evaluation_result = {}
subset_to_eval_samples = defaultdict(list)
for result in results:
subset_to_eval_samples[result["subdomain"]].append(result)
for subset, sub_eval_samples in subset_to_eval_samples.items():
metric_dict = eval_cmmmu(sub_eval_samples)
evaluation_result[subset] = metric_dict
printable_results = {}
for domain, in_domain_cats in DOMAIN_CAT2SUB_CAT.items():
in_domain_cat_results = {}
for cat_name in in_domain_cats:
if cat_name in evaluation_result.keys():
in_domain_cat_results[cat_name] = evaluation_result[cat_name]
else:
pass
in_domain_ins_acc = calculate_ins_level_acc(in_domain_cat_results)
in_domain_data_num = sum([cat_results["entries_num"] for cat_results in in_domain_cat_results.values()])
printable_results["Overall-" + domain] = {
"num": int(in_domain_data_num),
"acc": round(in_domain_ins_acc, 3),
}
# add sub category
for cat_name, cat_results in in_domain_cat_results.items():
printable_results[cat_name] = {
"num": int(cat_results["entries_num"]),
"acc": round(cat_results["acc"], 3),
}
all_ins_acc = calculate_ins_level_acc(evaluation_result)
printable_results["Overall"] = {
"num": sum([cat_results["entries_num"] for cat_results in evaluation_result.values()]),
"acc": round(all_ins_acc, 3),
}
print(printable_results)
return printable_results["Overall"]["acc"]