使用BERT fine-tuning记录

BERT:
tensorflow版本:https://github.com/google-research/bert
pytorch版本:https://github.com/huggingface/pytorch-pretrained-BERT
在readme中清楚地说明了BERT的fine-tuning的方式,在此记录实际使用的过程。

一、BERT-run_classifer.py

文件前一百行

flags = tf.flags
FLAGS = flags.FLAGS
flags.DEFINE_string( "data_dir", None, "The input data dir. Should contain the .tsv files (or other data files) " "for the task.")

这些的作用是:添加命令行的可选参数。
利用该函数可以实现在命令行中选择需要设定的参数来运行程序,
可以不用反复修改源代码中的参数,直接在命令行中进行参数的设定。
这样就明白我们在命令行里输入的命令的作用了。

例如:

flags.DEFINE_string(
    "data_dir", None,
    "The input data dir. Should contain the .tsv files (or other data files) "
    "for the task.")

第一个是参数名称,第二个参数是默认值,第三个是参数描述。
如果一些参数没有被输入,那么使用默认参数。
对应命令行中的输入是:(在这里是使用的GLUE数据集的路径)

--data_dir=$GLUE_DIR/MRPC \

这样做的好处是,通过输入不同的文件名、参数,可以快速完成程序的调参和更换训练集的操作,不需要进入源码中更改。
学习到了。

此外,在文件的最后:

#使用这种方式保证了,如果此文件被其他文件 import的时候,不会执行main 函数
if __name__ == '__main__':
    tf.app.run()       #解析命令行参数,调用main 函数

计划使用这个模型部署到Android上,最后实现输入一句话从数据库中找出最接近的一句话。另外,看到一篇很好的文章,可以学习一下:https://www.jianshu.com/p/aa2eff7ec5c1?from=singlemessage&isappinstalled=0

假期要看machine reading方面的东西,然后要打好pytorch的基础,使用BERT部署的计划暂时搁置,但是还有一种想法,使用这个到app上会不会速度很慢。

猜你喜欢

转载自blog.csdn.net/m0_38133212/article/details/84862688