lmms_eval/tasks/docvqa/utils.py (21 lines of code) (raw):
import json
import os
import logging
from lmms_eval.tasks._task_utils.file_utils import generate_submission_file
logger = logging.getLogger("lmms-eval")
def docvqa_doc_to_visual(doc):
return [doc["image"].convert("RGB")]
def docvqa_doc_to_text(doc, model_specific_prompt_kwargs):
question = doc["question"]
pre_prompt = model_specific_prompt_kwargs["pre_prompt"]
post_prompt = model_specific_prompt_kwargs["post_prompt"]
return f"{pre_prompt}{question}{post_prompt}"
def docvqa_test_process_results(doc, results):
pred = results[0]
questionId = doc["questionId"]
return {"anls": {"questionId": int(questionId), "answer": pred}, "submission": {"questionId": int(questionId), "answer": pred}}
def docvqa_test_aggregate_results(results, args):
# save results as json
path = generate_submission_file("docvqa_test_for_submission.json", args)
with open(path, "w") as f:
json.dump(results, f)
logger.info(f"Results saved to {path}")