def main()

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))