机器之心|使用AmazonSageMaker运行中文命名实体识别( 四 )


机器之心|使用AmazonSageMaker运行中文命名实体识别
本文插图

机器之心|使用AmazonSageMaker运行中文命名实体识别
本文插图
机器之心|使用AmazonSageMaker运行中文命名实体识别
本文插图

机器之心|使用AmazonSageMaker运行中文命名实体识别
本文插图

在此过程中我们无法进入正在运行的容器内调试 , 您可以将尽量多的日志打印出来 , 或者输出到/opt/ml/output路径下 , 该路径下的所有文件在训练完成后会被自动打包成output.tar.gz放到设定好的位于Amazon S3的输出路径下 。
2.6 训练结果
本文所示程序使用了MSRA公开的中文实体识别数据集进行训练 , 在训练3轮之后 , 最优的F1值就可以达到0.948345 , 属于比较领先的结果 。
***** Eval results albert_base_ner_checkpoints/model.ckpt-0 *****
eval_f = 0.01672106
eval_precision = 0.010008455
eval_recall = 0.10698523
global_step = 0
loss = 2367.2935
***** Eval results albert_base_ner_checkpoints/model.ckpt-1000 *****
eval_f = 0.9256434
eval_precision = 0.95667034
eval_recall = 0.8976247
global_step = 1000
loss = 17.80814
***** Eval results albert_base_ner_checkpoints/model.ckpt-2000 *****
eval_f = 0.9444123
eval_precision = 0.94401
eval_recall = 0.9452899
global_step = 2000
loss = 10.842231
***** Eval results albert_base_ner_checkpoints/model.ckpt-2374 *****
eval_f = 0.948345
eval_precision = 0.9542561
eval_recall = 0.94261235
global_step = 2374
loss = 10.520088
3. 自定义脚本(BYOS)
使用BYOS的方法和BYOC的不同之处在于:BYOC是使用用户自己创建的镜像来运行程序 , 更适用于用户对镜像自定义程度较高的使用情景;而BYOS是使用预先构建好的镜像 , 只是传入用户自己的代码来运行程序 , 不需要用户自己调试镜像 , 更适用于比较简单的使用情景 。
由于不需要编译自定义镜像 , 我们可以直接进行本地测试和Amazon SageMaker测试 , 完整流程见
tensorflow_script_mode_quickstart.ipynb 。
3.1 本地测试
我们可以使用Amazon SageMaker的本地模式进行本地测试:第一步 , 执行utils/setup.sh来初始化本地模式 。 第二步 , 指定执行的角色 , 这里我们假设您是在Amazon SageMaker Notebook上执行的 , 如果是其他环境 , 您可能需要手动指定角色的ARN 。 第三步 , 设定超参数 , 这里需要对应到您程序中所需的超参数 。 第四步 , 设定训练机型为local或者local_gpu(支持GPU) 。 第五步 , 创建一个名为TensorFlow的Estimator , 这里需要传入训练入口脚本(entry_point)、源代码路径(source_dir)、之前获得的角色、训练机型、机器数量、TensorFlow版本、Python版本、超参数等 。 第六步 , 启动训练 , 这里需要传入训练数据的位置 , 在本地模式下 , 训练数据的位置可以设置成本地路径 。
role = get_execution_role()
hyperparameters = {'task_name': 'ner', 'do_train': 'true', 'do_eval': 'true', _dir': '/opt/ml/input/data/training', 'output_dir': '/opt/ml/model', 'vocab_file': './albert_config/vocab.txt', 'bert_config_file': './albert_base_zh/albert_config_base.json', _seq_length': 128, 'train_batch_size': 64, 'learning_rate': 2e-5, 'num_train_epochs': 1}


推荐阅读