Files
microsoft--unilm/PFPO/scripts/mbpp/eval_human_eval_gpt_outputs.py
2026-07-13 13:24:13 +08:00

46 lines
1.1 KiB
Python

import sys
import json
import os
import argparse
sys.set_int_max_str_digits(0)
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
from data.human_eval import HumanEvalReader
from post_processors.code.evaluator import HumanEvaluator
from post_processors.code.clean import standard_cleaner
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--input_file", type=str)
args = parser.parse_args()
reader = HumanEvalReader()
data = reader()
id2output = {}
with open(args.input_file, "r", encoding="utf-8")as f:
for line in f:
item = json.loads(line)
pred = standard_cleaner(item["completion"])
id2output[item["task_id"]] = {
"pred": pred,
"response": item["completion"],
}
for item in data:
item["pred"] = id2output[item["task_id"]]["pred"]
item["test_cases"] = item["test"]
item["id"] = item["task_id"]
evaluator = HumanEvaluator()
predictions, metrics = evaluator(data, num_workers=24)
print(metrics)
if __name__ == "__main__":
main()