肖涵博士的bert-as-service
(https://github.com/hanxiao/bert-as-service)
1.使用BERT模型作为句子编码服务,即将可变长度句子映射到固定长度向量。例如hello world到[0.1, 0.3, 0.9]。向量的每个元素都应“编码”原始句子的某些语义。
2.bert-as-service使用BERT作为句子编码器,并通过ZeroMQ将其托管为服务,从而使您可以仅用两行代码将句子映射为定长表示形式。
安装服务器和客户端
pip install bert-serving-server #服务器
pip install bert-serving-client #客户端,独立于`bert-serving-server`
注意,服务器必须在运行的Python> = 3.5与Tensorflow> = 1.10(单点-10)。同样,服务器不支持Python 2!
入门
1.下载预训练的BERT模型
下载下面列出的模型,然后将zip文件解压缩到某个文件夹。
2.启动BERT服务
bert-serving-start -cpu -model_dir D:\process\bert\chinese_L-12_H-768_A-12\ -max_seq_len 20 -num_worker 2
正确的启用外观
3.使用客户端获取句子编码
from bert_serving.client import BertClient
bc = BertClient()
bc.encode(['我 喜欢 你们','我 喜 欢 你 们','我 喜欢 你'])
远程使用BERT服务
也可以在一台(GPU)机器上启动该服务,然后从另一台(CPU)机器调用该服务,如下所示:
# on another CPU machine
from bert_serving.client import BertClient
bc = BertClient(ip='xx.xx.xx.xx') # ip address of the GPU machine
bc.encode(['First do it', 'then do it right', 'then do it better'])
在这种情况下仅需要安装
pip install -U bert-serving-client
服务器端不必安装
运行图片