Esempio n. 1
0
def create_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('--model_type', default='bert', type=str, choices=CONFIGS.keys())
    parser.add_argument('--optimizer_type', default='adamw', type=str, help="优化器类型")
    parser.add_argument('--model_dir', default='model_path', type=str,
                        help="预训练模型存放文件夹,文件夹下ckpt文件名为model.ckpt,"
                             "config文件名为config.json,词典文件名为vocab.txt")
    parser.add_argument('--config_path', default=None, type=str, help="若配置文件名不是默认的,可在这里输入")
    parser.add_argument('--vocab_path', default=None, type=str, help="若词典文件名不是默认的,可在这里输入")
    parser.add_argument('--pretrained_checkpoint_path', default=None, type=str, help="若模型文件名不是默认的,可在这里输入")
    parser.add_argument('--output_dir', default='output/multi_label', type=str, help="")
    parser.add_argument('--export_dir', default='output/multi_label/pb', type=str, help="")

    parser.add_argument('--ay', default='DV', type=str, help="司法要素抽取的案由,DV,LB")
    parser.add_argument('--train_file', default='data/multi_label/train.json', type=str, help="")
    parser.add_argument('--dev_file', default='data/multi_label/test.json', type=str, help="")
    parser.add_argument('--test_file', default='data/multi_label/test.json', type=str, help="")

    parser.add_argument("--num_train_epochs", default=3, type=int, help="训练轮次")
    parser.add_argument("--max_seq_length", default=128, type=int, help="最大句子长度")
    parser.add_argument("--batch_size", default=32, type=int, help="训练批次")
    parser.add_argument("--gradient_accumulation_steps", default=1, type=int, help="梯度累积")
    parser.add_argument("--learning_rate", default=2e-5, type=float, help="学习率")
    parser.add_argument("--warmup_proportion", default=0.1, type=float,
                        help="Proportion of training to perform linear learning rate warmup for.")
    parser.add_argument("--weight_decay", default=0.01, type=float, help="Weight decay if we apply some.")
    parser.add_argument("--threshold", default=0.5, type=float, help="多标签分类判定阈值,每个标签都用这个,有需要可以定义为列表.")

    parser.add_argument("--do_train", action="store_true", help="Whether to run training.")
    parser.add_argument("--do_eval", action="store_true", help="Whether to run eval on the dev set.")
    parser.add_argument("--do_predict", action="store_true", help="Whether to run predict on the test set.")
    parser.add_argument("--evaluate_during_training", action="store_true", help="是否边训练边验证")
    parser.add_argument("--do_export", action="store_true", help="将模型导出为pb格式.")

    parser.add_argument("--logging_steps", default=1000, type=int, help="训练时每隔几步验证一次")
    parser.add_argument("--saving_steps", default=1000, type=int, help="训练时每隔几步保存一次")
    parser.add_argument("--random_seed", default=42, type=int, help="随机种子")
    parser.add_argument("--threads", default=8, type=int, help="数据处理进程数")
    parser.add_argument("--max_checkpoints", default=1, type=int, help="模型保存最大数量,默认只保存一个")
    parser.add_argument("--single_device", action="store_true", help="是否只使用一个device,默认使用所有的device训练")
    parser.add_argument("--use_xla", action="store_true", help="是否使用XLA加速")
    parser.add_argument(
        "--mixed_precision", action="store_true",
        help="混合精度训练,tf下测试需要同时使用xla才有加速效果,但是开始编译很慢")
    args = parser.parse_args()

    if not os.path.exists(args.output_dir):
        os.makedirs(args.output_dir)

    if not args.single_device:
        args.batch_size = args.batch_size * len(devices())

    args.labels = [f'{args.ay}{i + 1}' for i in range(20)]
    return args
Esempio n. 2
0
def create_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('--model_type',
                        default='bert',
                        type=str,
                        choices=CONFIGS.keys())
    parser.add_argument('--optimizer_type',
                        default='adamw',
                        type=str,
                        help="优化器类型")
    parser.add_argument('--model_dir',
                        default='model_path',
                        type=str,
                        help="预训练模型存放文件夹,文件夹下ckpt文件名为model.ckpt,"
                        "config文件名为config.json,词典文件名为vocab.txt")

    parser.add_argument('--config_path',
                        default=None,
                        type=str,
                        help="若配置文件名不是默认的,可在这里输入")
    parser.add_argument('--vocab_path',
                        default=None,
                        type=str,
                        help="若词典文件名不是默认的,可在这里输入")
    parser.add_argument('--pretrained_checkpoint_path',
                        default=None,
                        type=str,
                        help="若模型文件名不是默认的,可在这里输入")
    parser.add_argument('--output_dir',
                        default='output/pretrain',
                        type=str,
                        help="")
    parser.add_argument('--export_dir',
                        default='output/pretrain/pb',
                        type=str,
                        help="")

    parser.add_argument('--train_dir',
                        default='data/pretrain/train',
                        type=str,
                        help="训练文件所在文件夹")
    parser.add_argument('--dev_dir',
                        default='data/pretrain/dev',
                        type=str,
                        help="验证文件所在文件夹")

    parser.add_argument("--num_train_epochs",
                        default=10,
                        type=int,
                        help="训练轮次")
    parser.add_argument("--max_seq_length",
                        default=128,
                        type=int,
                        help="最大句子长度")
    parser.add_argument("--batch_size", default=64, type=int, help="训练批次")
    parser.add_argument("--gradient_accumulation_steps",
                        default=1,
                        type=int,
                        help="梯度累积")
    parser.add_argument("--learning_rate",
                        default=5e-5,
                        type=float,
                        help="学习率")
    parser.add_argument(
        "--warmup_proportion",
        default=0.1,
        type=float,
        help=
        "Proportion of training to perform linear learning rate warmup for.")
    parser.add_argument("--weight_decay",
                        default=0.01,
                        type=float,
                        help="Weight decay if we apply some.")

    parser.add_argument("--masked_lm_prob",
                        default=0.15,
                        type=float,
                        help="mask 概率.")
    parser.add_argument("--max_predictions_per_seq",
                        default=20,
                        type=int,
                        help="最大mask数量.")
    parser.add_argument("--ngram",
                        default=4,
                        type=int,
                        help="ngram mask 最大个数.")

    parser.add_argument("--do_train",
                        action="store_true",
                        help="Whether to run training.")
    parser.add_argument("--do_eval",
                        action="store_true",
                        help="Whether to run eval on the dev set.")
    parser.add_argument("--evaluate_during_training",
                        action="store_true",
                        help="是否边训练边验证")
    parser.add_argument("--do_export", action="store_true", help="将模型导出为pb格式.")
    parser.add_argument("--do_whole_word_mask",
                        action="store_true",
                        help="全词mask.")

    parser.add_argument("--logging_steps",
                        default=1000,
                        type=int,
                        help="训练时每隔几步验证一次")
    parser.add_argument("--saving_steps",
                        default=1000,
                        type=int,
                        help="训练时每隔几步保存一次")
    parser.add_argument("--random_seed", default=42, type=int, help="随机种子")
    parser.add_argument("--max_checkpoints",
                        default=1,
                        type=int,
                        help="模型保存最大数量,默认只保存一个")
    parser.add_argument("--single_device",
                        action="store_true",
                        help="是否只使用一个device,默认使用所有的device训练")
    parser.add_argument("--use_xla", action="store_true", help="是否使用XLA加速")
    parser.add_argument("--mixed_precision",
                        action="store_true",
                        help="混合精度训练,tf下测试需要同时使用xla才有加速效果,但是开始编译很慢")
    args = parser.parse_args()

    if not os.path.exists(args.output_dir):
        os.makedirs(args.output_dir)

    if not args.single_device:
        args.batch_size = args.batch_size * len(devices())

    def find_files(dir_or_file):
        if os.path.isdir(dir_or_file):
            files = os.listdir(dir_or_file)
            files = [os.path.join(dir_or_file, file_) for file_ in files]
        elif isinstance(dir_or_file, str):
            files = [dir_or_file]
        else:
            files = []
        return files

    args.train_files = find_files(args.train_dir)
    args.dev_files = find_files(args.dev_dir)

    if len(args.dev_files) == 0:
        args.do_eval = False
        args.evaluate_during_training = False

    if len(args.train_files) == 0 and args.do_train:
        args.do_train = False
        tf.logging.warn(
            "If you need to perform training, please ensure that the training file is not empty"
        )
    return args
Esempio n. 3
0
def create_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('--model_type',
                        default='bert',
                        type=str,
                        choices=CONFIGS.keys())
    parser.add_argument('--optimizer_type',
                        default='adamw',
                        type=str,
                        help="优化器类型")
    parser.add_argument('--model_dir',
                        default='model_path',
                        type=str,
                        help="预训练模型存放文件夹,文件夹下ckpt文件名为model.ckpt,"
                        "config文件名为config.json,词典文件名为vocab.txt")

    parser.add_argument('--config_path',
                        default=None,
                        type=str,
                        help="若配置文件名不是默认的,可在这里输入")
    parser.add_argument('--vocab_path',
                        default=None,
                        type=str,
                        help="若词典文件名不是默认的,可在这里输入")
    parser.add_argument('--pretrained_checkpoint_path',
                        default=None,
                        type=str,
                        help="若模型文件名不是默认的,可在这里输入")
    parser.add_argument('--output_dir',
                        default='output/dureader2021',
                        type=str,
                        help="")
    parser.add_argument('--export_dir',
                        default='output/dureader2021/pb',
                        type=str,
                        help="")

    parser.add_argument('--train_file',
                        default='data/dureader2021/train.json',
                        type=str,
                        help="")
    parser.add_argument('--dev_file',
                        default='data/dureader2021/dev.json',
                        type=str,
                        help="")
    parser.add_argument('--test_file',
                        default='data/dureader2021/test1.json',
                        type=str,
                        help="")

    parser.add_argument("--num_train_epochs", default=2, type=int, help="训练轮次")
    parser.add_argument("--batch_size", default=8, type=int, help="训练批次")
    parser.add_argument("--gradient_accumulation_steps",
                        default=1,
                        type=int,
                        help="梯度累积")
    parser.add_argument("--learning_rate",
                        default=2e-5,
                        type=float,
                        help="学习率")
    parser.add_argument(
        "--warmup_proportion",
        default=0.1,
        type=float,
        help=
        "Proportion of training to perform linear learning rate warmup for.")
    parser.add_argument("--weight_decay",
                        default=0.01,
                        type=float,
                        help="Weight decay if we apply some.")

    parser.add_argument(
        "--version_2_with_negative",
        action="store_true",
        help=
        "If true, the SQuAD examples contain some that do not have an answer.",
    )
    parser.add_argument(
        "--null_score_diff_threshold",
        type=float,
        default=0.0,
        help=
        "If null_score - best_non_null is greater than the threshold predict null.",
    )
    parser.add_argument("--max_seq_length",
                        default=384,
                        type=int,
                        help="最大句子长度")
    parser.add_argument(
        "--doc_stride",
        default=128,
        type=int,
        help=
        "When splitting up a long document into chunks, how much stride to take between chunks.",
    )
    parser.add_argument(
        "--max_query_length",
        default=32,
        type=int,
        help=
        "The maximum number of tokens for the question. Questions longer than this will "
        "be truncated to this length.",
    )
    parser.add_argument(
        "--n_best_size",
        default=10,
        type=int,
        help=
        "The total number of n-best predictions to generate in the nbest_predictions.json output file.",
    )
    parser.add_argument(
        "--max_answer_length",
        default=384,
        type=int,
        help=
        "The maximum length of an answer that can be generated. This is needed because the start "
        "and end predictions are not conditioned on one another.",
    )
    parser.add_argument("--do_train",
                        action="store_true",
                        help="Whether to run training.")
    parser.add_argument("--do_eval",
                        action="store_true",
                        help="Whether to run eval on the dev set.")
    parser.add_argument("--do_predict",
                        action="store_true",
                        help="Whether to run test on the test set.")
    parser.add_argument("--evaluate_during_training",
                        action="store_true",
                        help="是否边训练边验证")
    parser.add_argument("--do_export", action="store_true", help="将模型导出为pb格式.")

    parser.add_argument("--logging_steps",
                        default=1000,
                        type=int,
                        help="训练时每隔几步验证一次")
    parser.add_argument("--saving_steps",
                        default=1000,
                        type=int,
                        help="训练时每隔几步保存一次")
    parser.add_argument("--random_seed", default=42, type=int, help="随机种子")
    parser.add_argument("--threads", default=1, type=int, help="数据处理进程数")
    parser.add_argument("--max_checkpoints",
                        default=1,
                        type=int,
                        help="模型保存最大数量,默认只保存一个")
    parser.add_argument("--single_device",
                        action="store_true",
                        help="是否只使用一个device,默认使用所有的device训练")
    parser.add_argument("--use_xla", action="store_true", help="是否使用XLA加速")
    parser.add_argument("--mixed_precision",
                        action="store_true",
                        help="混合精度训练,tf下测试需要同时使用xla才有加速效果,但是开始编译很慢")
    args = parser.parse_args()

    if not os.path.exists(args.output_dir):
        os.makedirs(args.output_dir)

    if not args.single_device:
        args.batch_size = args.batch_size * len(devices())

    return args