open-compass / open-compass/VLMEvalKit
Video Holmes llm judge is not used in evaluation?
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.4k
- Forks
- 768
- Avg merge
- 2d 27m
- Merged PRs (30d)
- 18
Description
def evaluate(self, eval_file, **judge_kwargs):
from .utils.videoholmes import get_dimension_rating, extract_option
assert get_file_extension(eval_file) in ['xlsx', 'json', 'tsv'], 'data file should be an supported format (xlsx/json/tsv) file' # noqa: E501
tmp_file = get_intermediate_file_path(eval_file, '_tmp', 'pkl')
tgt_file = get_intermediate_file_path(eval_file, '_rating', 'json')
score_file = get_intermediate_file_path(eval_file, '_score')
if not osp.exists(score_file):
model = judge_kwargs.get('model', 'exact_matching')
if model == 'exact_matching':
model = None
else:
model = build_judge(**judge_kwargs)
if not model.working():
warnings.warn('OPENAI API is not working properly, will use exact matching for evaluation')
warnings.warn(DEBUG_MESSAGE)
model = None
res = {} if not osp.exists(tmp_file) else load(tmp_file)
res = {k: v for k, v in res.items() if FAIL_MSG not in v}
data = load(eval_file)
data_un = data[~pd.isna(data['prediction'])]
for idx in data['index']:
ans = data.loc[data['index'] == idx, 'answer'].values[0]
pred = str(data.loc[data['index'] == idx, 'prediction'].values[0])
predicted_answer = extract_option(pred)
data.loc[idx, 'score'] = int(predicted_answer == ans)
rejected = [x for x in data['score'] if x == -1]
print(
f'Among {len(data)} questions, failed to obtain prediction for {len(data) - len(data_un)} questions, '
f'failed to obtain the score for another {len(rejected)} questions. '
f'Those questions will be counted as -1 score in ALL rating, and will not be counted in VALID rating.'
)
dump(data, score_file)
so llm judge is not used in VideoHolmes?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in the VideoHolmes evaluate method shown in the issue and trace how judge_kwargs, build_judge, and the extracted answer are used. Compare the intended judge path with the current scoring path and inspect the related utils.videoholmes helpers. Done means the issue's question is resolved by a focused code change or a test-backed explanation of the supported evaluation behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100