train_dataset의 구조는 다음과 같다.
DatasetDict({
train: Dataset({
features: ['title', 'context', 'question', 'id', 'answers', 'document_id', '__index_level_0__'],
num_rows: 3952
})
validation: Dataset({
features: ['title', 'context', 'question', 'id', 'answers', 'document_id', '__index_level_0__'],
num_rows: 240
})
})
아래의 코드를 실행한다.
python inference.py --output_dir ./outputs/train_dataset/ --dataset_name ../data/train_dataset/ --model_name_or_path ./models/train_dataset/ --do_eval --eval_retrieval
실행결과는 다음과 같다.
***** test metrics *****
eval_samples = 10911
exact_match = 60.8333
f1 = 67.9476
eval_samples란 retrieval 과정에서 검색된 문서의 개수를 나타낸다. 이는 평가 데이터셋에 있는 question에 대해 BM25 모델이 검색한 결과로 반환된 모서들이 몇 개 있는지를 의미힌다.
validation 데이터셋에 있는 num_rows 값보다 훨씬 큰 이유는, 일반적으로 각 질문에 대해 다수의 문서를 검색하기 때문이다.