コード例 #1
0
def main_cli():
    parser = argparse.ArgumentParser('CEDR model training and validation')
    parser.add_argument('--model',
                        choices=MODEL_MAP.keys(),
                        default='vanilla_mbart')
    parser.add_argument('--datafiles', type=argparse.FileType('rt'), nargs='+')
    parser.add_argument('--qrels', type=argparse.FileType('rt'))
    parser.add_argument('--train_pairs', type=argparse.FileType('rt'))
    parser.add_argument('--valid_run', type=argparse.FileType('rt'))
    parser.add_argument('--initial_mbart_weights',
                        type=argparse.FileType('rb'))
    parser.add_argument('--model_out_dir')
    args = parser.parse_args()
    model = MODEL_MAP[args.model]().cuda()
    dataset = data.read_datafiles(args.datafiles)
    qrels = data.read_qrels_dict(args.qrels)
    train_pairs = data.read_pairs_dict(args.train_pairs)
    valid_run = data.read_run_dict(args.valid_run)

    if args.initial_mbart_weights is not None:
        model.load(args.initial_mbart_weights.name)
    os.makedirs(args.model_out_dir, exist_ok=True)
    # we use the same qrels object for both training and validation sets
    main(model, dataset, train_pairs, qrels, valid_run, qrels,
         args.model_out_dir)
コード例 #2
0
ファイル: train.py プロジェクト: crystina-z/CEDR_tpu
def main_cli():
    parser = argparse.ArgumentParser('CEDR model training and validation')
    parser.add_argument('--model',
                        choices=MODEL_MAP.keys(),
                        default='vanilla_bert')
    parser.add_argument('--datafiles', nargs='+')
    # parser.add_argument('--datafiles', type=argparse.FileType('rt'), nargs='+')
    parser.add_argument('--qrels', type=argparse.FileType('rt'))
    parser.add_argument('--train_pairs', type=argparse.FileType('rt'))
    parser.add_argument('--valid_run', type=argparse.FileType('rt'))
    parser.add_argument('--initial_bert_weights', type=argparse.FileType('rb'))
    parser.add_argument('--model_out_dir')
    args = parser.parse_args()

    print('datafiles: ', args.datafiles)
    datafiles = [open(f, 'r', encoding='utf-8') for f in args.datafiles]
    model = MODEL_MAP[args.model]()

    # dataset = data.read_datafiles(args.datafiles)
    dataset = data.read_datafiles(datafiles)

    qrels = data.read_qrels_dict(args.qrels)
    train_pairs = data.read_pairs_dict(args.train_pairs)
    valid_run = data.read_run_dict(args.valid_run)
    if args.initial_bert_weights is not None:
        model.load(args.initial_bert_weights.name)
    os.makedirs(args.model_out_dir, exist_ok=True)
    main(model, dataset, train_pairs, qrels, valid_run, args.qrels.name,
         args.model_out_dir)
def main_cli():
    parser = argparse.ArgumentParser('CEDR model training and validation')
    parser.add_argument('--model', choices=MODEL_MAP.keys(), default='vanilla_bert')
    parser.add_argument('--datafiles', type=argparse.FileType('rt'), nargs='+')
    parser.add_argument('--qrels', type=argparse.FileType('rt'))
    parser.add_argument('--train_pairs', type=argparse.FileType('rt'))
    parser.add_argument('--valid_run', type=argparse.FileType('rt'))
    parser.add_argument('--initial_bert_weights', type=argparse.FileType('rb'))
    parser.add_argument('--model_out_dir', default="../models/vbert")
    
    print(sys.argv)
    args = parser.parse_args(args=sys.argv[2:-1])
    dataset = data.read_datafiles(args.datafiles)
    qrels = data.read_qrels_dict(args.qrels)
    train_pairs = data.read_pairs_dict(args.train_pairs)
    valid_run = data.read_run_dict(args.valid_run)

    model = MODEL_MAP[args.model]().cuda()
    if args.initial_bert_weights is not None:
        model.load(args.initial_bert_weights.name)
    os.makedirs(args.model_out_dir, exist_ok=True)
    main(model, dataset, train_pairs, qrels, valid_run, args.qrels, args.model_out_dir)
コード例 #4
0
def main_cli():
    MODEL_MAP = modeling.MODEL_MAP
    parser = argparse.ArgumentParser('CEDR model training and validation')
    parser.add_argument('--model', choices=MODEL_MAP.keys(), default='vbert')
    parser.add_argument('--submodel1', choices=MODEL_MAP.keys(), default=None)
    parser.add_argument('--submodel2', choices=MODEL_MAP.keys(), default=None)
    parser.add_argument('--submodel3', choices=MODEL_MAP.keys(), default=None)
    parser.add_argument('--submodel4', choices=MODEL_MAP.keys(), default=None)
    parser.add_argument('--submodel5', choices=MODEL_MAP.keys(), default=None)
    parser.add_argument('--submodel6', choices=MODEL_MAP.keys(), default=None)
    parser.add_argument('--submodel7', choices=MODEL_MAP.keys(), default=None)
    parser.add_argument('--submodel8', choices=MODEL_MAP.keys(), default=None)
    parser.add_argument('--datafiles', type=argparse.FileType('rt'), nargs='+')
    parser.add_argument('--qrels', type=argparse.FileType('rt'))
    parser.add_argument('--train_pairs', type=argparse.FileType('rt'))
    parser.add_argument('--valid_run', type=argparse.FileType('rt'))
    parser.add_argument('--initial_bert_weights', type=str, default=None)
    parser.add_argument('--model_out_dir')
    parser.add_argument('--max_epoch', type=int, default=100, help='max epoch')
    parser.add_argument('--warmup_epoch',
                        type=int,
                        default=0,
                        help='warmup epoch')
    parser.add_argument('--gpunum', type=str, default="0", help='gpu number')
    parser.add_argument('--random_seed',
                        type=int,
                        default=42,
                        help='ranodm seed number')
    parser.add_argument('--freeze_bert',
                        type=int,
                        default=0,
                        help='freezing bert')
    args = parser.parse_args()

    setRandomSeed(args.random_seed)

    os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
    os.environ["CUDA_VISIBLE_DEVICES"] = args.gpunum

    print("GPU count=", torch.cuda.device_count())
    if (args.model.startswith('duet')):
        model = MODEL_MAP[args.model](MODEL_MAP[args.submodel1](),
                                      MODEL_MAP[args.submodel2]())
    elif (args.model.startswith('quad')):
        model = MODEL_MAP[args.model](MODEL_MAP[args.submodel1](),
                                      MODEL_MAP[args.submodel2](),
                                      MODEL_MAP[args.submodel3](),
                                      MODEL_MAP[args.submodel4]())
    else:
        model = MODEL_MAP[args.model]().cuda()

    dataset = data.read_datafiles(args.datafiles)
    qrels = data.read_qrels_dict(args.qrels)
    train_pairs = data.read_pairs_dict(args.train_pairs)
    valid_run = data.read_run_dict(args.valid_run)

    ## initial
    if (args.initial_bert_weights is not None):
        wts = args.initial_bert_weights.split(',')
        if (len(wts) == 1):
            model.load(wts[0])
        elif (len(wts) == 2):
            model.load_duet(wts[0], wts[1])
        elif (len(wts) == 4):
            model.load_quad(wts[0], wts[1], wts[2], wts[3])

    os.makedirs(args.model_out_dir, exist_ok=True)
    main(model, dataset, train_pairs, qrels, valid_run, args.qrels.name,
         args.model_out_dir, args.max_epoch, args.warmup_epoch,
         args.freeze_bert)