def grp_aggregate_accuracy(results):
    """
    Aggregate evaluation results for the GRP task (MCQ).
    For each sample, if multiple options appear in the prediction, it is considered incorrect; otherwise, compare the cleaned answer letters.
    Return the accuracy.
    """  # noqa: E501
    total = 0
    correct = 0
    for item in results:
        total += 1
        model_ans = item.get("prediction", "")
        gt_ans = item.get("answer", "")
        if grp_count_options(model_ans) > 1:
            continue
        if grp_clean_answer(model_ans) == grp_clean_answer(gt_ans):
            correct += 1
    return (correct / total * 100) if total > 0 else 0

    Aggregate evaluation results for the GRP task (MCQ).
    For each sample, if multiple options appear in the prediction, it is considered incorrect; otherwise, compare the cleaned answer letters.
    Return the accuracy.
    
vlmeval/dataset/utils/vlm2bench.py