in eval_beir.py [0:0]
def main(args):
src.slurm.init_distributed_mode(args)
src.slurm.init_signal_handler()
os.makedirs(args.output_dir, exist_ok=True)
logger = utils.init_logger(args)
logger.info(f"Loading model from {args.model_name_or_path}")
tokenizer = transformers.AutoTokenizer.from_pretrained(args.model_name_or_path)
model = src.contriever.Contriever.from_pretrained(args.model_name_or_path)
model = model.cuda()
logger.info("Start indexing")
ndcg, _map, recall, precision, mrr, recall_cap, hole = src.beir_utils.evaluate_model(
query_encoder=model,
doc_encoder=model,
tokenizer=tokenizer,
dataset=args.dataset,
batch_size=args.per_gpu_batch_size,
norm_query=args.norm_query,
norm_doc=args.norm_doc,
is_main=dist_utils.is_main(),
split='dev' if args.dataset=='msmarco' else 'test',
metric=args.metric,
beir_data_path=args.beir_data_path,
)
if dist_utils.is_main():
logger.info(args.dataset + ' ' + str(ndcg))
logger.info(args.dataset + ' ' + str(recall))
logger.info(args.dataset + ' ' + str(precision))
logger.info(args.dataset + ' ' + str(mrr))
logger.info(args.dataset + ' ' + str(recall_cap))
logger.info(args.dataset + ' ' + str(hole))