bert-as-service的使用

github地址:https://github.com/hanxiao/bert-as-service
谷歌训练的bert使用的是tensorflow,若想使用GPU加速,需要安装相应的驱动和软件,并使用tensorflow-gpu代替常规tensorflow python包,需要的软件及安装步骤见附件;

text file
服务器端创建虚拟环境并在该环境中安装相应的python包,注意一定要使用tensorflow-gpu,使用tensorflow不会报错但并未用到GPU(是否用到GPU可用nvidia-smi指令查看):

现在腾讯云上的服务器,在tensorflow-gpu环境中配置完成了bert,使用以下命名开启服务端:
conda activate tensorflow-gpu # 激活虚拟环境
cd /data/chinese_L-12_H-768_A-12/BertTemp # linux下开启bert-as-service的服务端会创建临时文件夹,故开启前需切换到事先准备的运行目录;
bert-serving-start -model_dir /data/chinese_L-12_H-768_A-12 -num_worker=2 -max_seq_len=NONE -max_batch_size=56

max_seq_len最大句子长度设为NONE即动态变化(最大受限于bert预训练模型为512个字符),将同时处理的句子数max_batch_size设小,防止出现OOM显存溢出错误.

客服端使用如下python代码获取句向量:
from bert_serving.client import BertClient
bert = BertClient(ip=‘localhost’,show_server_config=True) # 当服务器端于客户端在不同的ip地址机器上时,ip地址设为服务端ip地址.
test = bert.encode([“今天天气很好”,“这是一个示例”]) #传入的句子不需要分词(bert是字符级别的),参数为字符串组成的列表,尽量一次请求大的列表(如一次获取1024个句子的句向量).

你可能感兴趣的:(向量编码)