几个提前知识
TensorFlowJS可以简单认为有Browser和NodeJS两个版本,前者可以运行在浏览器,后者可以运行在NodeJS环境下
NodeJS版本的模型推理速度比Python快哦!参考官方这个博客 https://blog.tensorflow.org/2020/05/how-hugging-face-achieved-2x-performance-boost-question-answering.html
NodeJS版本理论上也是可以用GPU的
文本以NodeJS为基础,给出一个文本分类例子œ
按照当前的情况,NodeJS版本其实更适合直接调用Python训练好的模型使用,因为加载速度和推理速度都比Python版本快的原因,如果不是必须要用GPU的话对于小模型更是可以适合配合FaaS等工具更好的实现云AI函数
更多内容和代码可以参考这个REPO https://github.com/qhduan/bert-model/
TensorFlowJS/NodeJS的限制
一些算子不支持,例如python版本有的tf.strings.*下面的算子
虽然NodeJS版本可以加载TensorFlow 2.x saved model格式,但是不能继续训练(python是可以的)
训练速度还是比python的慢
测试环境准备
数据方面这里我们用之前ChineseGLUE https://github.com/ChineseGLUE/ChineseGLUE 的测试数据机LCQMC。这是一个判断两个问题是否等价的数据集,例如“喜欢打篮球的男生喜欢什么样的女生”和“爱打篮球的男生喜欢什么样的女生”等价。
注:新版本ChineseGLUE已经变为CLUEBenchmark https://github.com/CLUEbenchmark/CLUE ,并没有这个数据集了。
$ curl --output train.json https://deepdialog.coding.net/p/dataset/d/dataset/git/raw/master/LCQMC/train.json
$ curl --output dev.json https://deepdialog.coding.net/p/dataset/d/dataset/git/raw/master/LCQMC/dev.json
下载中文BERT的词表,几乎所有的中文BERT都是基于最开始谷歌发布的词表的