本文主要参考:可西哥,《从BERT模型从训练到部署》,感谢作者详细的介绍,的确是从如何训练模型,模型压缩,模型服务部署,访问。
如果你按照步骤操作,没有任何错误,并且最后,在你的浏览器中输入:http://10.1.1.67:8910,注意此处的地址10.1.1.67,是你部署bert-base服务的地址,点击提交后,没有错误,可以正常返回结果,下面的文章就不需要再看了。
成功节点1:服务启动成功界面:
此时可以用postman进行接口测试:
请求方式是POST,
主要设置:Headers ,Content-Type application/json
Body:依次选择 raw、 json
{
"id": 111,
"texts": ["总的来说,这款手机性价比是特别高的。","槽糕的售后服务!!!店大欺客"],
"is_tokenized": false
}
这一步的成功很关键,表明Bert服务已经起来了。
成功节点2:Flask服务接口能起来
下一步,新起一个shell窗口,进入:BERT-train2deploy目录下的mobile_apisvr文件夹,执行python api_service.py
如果出现以下界面,表明启动成功:
在客户端(就是你的本地的笔记本上)浏览器输入,http://10.1.1.67:8910,出现以下界面,点击提交后,正常返回结果,表示已完全成功。
错误处理:
如果很不幸报错了,不要着急可以接着往下看。
错误1:函数导入错误,比如:导入 _wsgi_decoding_dance报错,找不到包等
我当时安装的flask版本为2.0以上版本,作者发帖是在2019年,或许直接安装当时最新版本没有错误发生。基于此想法,我尝试将Flask回退版本到1.0,问题解决,服务可以成功启动,一般缺少包的时候不建议一条条改动源代码,这会很耗时间,而且解决不了本质问题,我尝试更改这个错误后又冒出其他错误。回退后的版本如下,主要与Flask相关,但为保证正常执行,把其他主要的包也列了出来:
tesorflow 1.4
Flask 1.0
Flask-Compress 1.11
Flask-Cors 3.0.10
Flask-JSON 0.3.4
Werkzeug 2.0.3
bert-base 0.0.7
bert-serving-client 1.10.0
bert-serving-server 1.10.0
错误2:搭建API后一直连接不上
此处需要将原作者的服务器IP地址换成你自己的,比如我替换成我自己的,10.1.1.67,原文中如下,路径在:BERT-train2deploy\mobile_apisvr\api_service.py 39行。