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