Bert 模型部署
最近在研究google的bert相关知识,使用fine-tune方法训练了一个模型,但是看效果比较麻烦,每次都要重新load模型导致效率非常低下。
因此,参考网上以及同事的思路,设计了一套通用的bert model查看效果的工具。
主要内容
如何产出模型文件?
1
2estimator._export_to_tpu = False
estimator.export_savedmodel("./export/", serving_input_fn)如何避免重复加载?
我们通过graph建立了sess,启动一个web应用,将sess保存在内存中,请求来的时候,直接使用sess进行predict,export_dir 是模型的路径。
1
2
3
4from tensorflow.python.saved_model import tag_constants
self.graph_predict = tf.Graph()
self.sess = tf.Session(graph = self.graph_predict)
tf.saved_model.loader.load(self.sess, [tag_constants.SERVING], export_dir)如何结合web框架?
本次使用的是flask,为什么要使用flask,因为tf使用的是python,使用flask的话,可以直接将sess的实例保存在内存中,每次请求来的时候进行预测。
1 | from predictor import Predictor |
总结
使用flask封装bert fine-tune后的模型,极大的提高了策略调研的效率,还是要多思考,多尝试,多看tf的api相关文档。