1.整体架构
2.Bert/Serving搭建
前言:安装过程中的几个坑需要注意
1.放入Bert模型文件的地址一定要找对
2.建议的安装环境一定要遵循(python3 ,tensorflow1.15以上且不支持tensorflow2)
3.内网的服务器防火墙一定要关闭,不然访问不到
2.1导入bert-as-service
项目地址是:https://github.com/hanxiao/bert-as-service
pip install bert-serving-server
如果想要通过HTTP接口的方式请求还要执行以下命令
pip install -U bert-serving-server[http]
2.2下载谷歌预训练好的模型文件
Google 提供了多种预训练模型供选择:
https://github.com/google-research/bert#pre-trained-models
BERT-Base, Chinese: 简繁体中文, 12-layer, 768-hidden, 12-heads, 110M parameters
BERT-Base, Multilingual Cased: 多语言(104 种), 12-layer, 768-hidden, 12-heads, 110M parameters
BERT-Base, Uncased: 英文不区分大小写(全部转为小写), 12-layer, 768-hidden, 12-heads, 110M parameters
BERT-Base, Cased: 英文区分大小写, 12-layer, 768-hidden, 12-heads , 110M parameters
也可以使用中文效果更好的哈工大版 BERT:
Chinese-BERT-wwm
以上列出了几个常用的预训练模型,可以到 这里 查看更多。
解压下载到的 .zip 文件以后,会有 6 个文件:
TensorFlow 模型文件(bert_model.ckpt) 包含预训练模型的权重,模型文件有三个
字典文件(vocab.txt) 记录词条与 id 的映射关系
配置文件(bert_config.json ) 记录模型的超参数
将解压好的文件放入文件夹squ
2.3启动Bert服务
bert-serving-start -model_dir /tmp/english_L-12_H-768_A-12/ -num_worker=2 -max_seq_len=40 -http_port 8125
其中,-model_dir 是预训练模型的路径,-num_worker 是线程数,表示同时可以处理多少个并发请求,-max_seq_len是句子最大长度.-http_port 8125 是http接口调用的端口号
成功启动之后会有显示WORKER-0 ready and listening
2.4调用
2.4.1python的方法
from bert_serving.clientimport BertClient
bc = BertClient()
bc.encode([‘First do it’,‘then do it right’,‘then do it better’])
2.4.2接口的方法
参数:{
“id”: 123,
“texts”: [“hello world”, “good day!”],
“is_tokenized”: false
}
is_tokenized 一定设为 false
地址:http://xx.xx.xx.xx:8125/encode
2.5设置后台启动
nohup bert-serving-start -model_dir chinese_L-12_H-768_A-12/ -num_worker=12 -max_seq_len=40 &
输入命令以后,没有日志输出是正常的(因为在后台启动了),只要没报错
3.milvus docker容器 搭建
官网地址为:https://milvus.io/cn/docs/v0.8.0/about_milvus/overview.md
客户端****https://milvus-io.github.io/milvus-sdk-python/pythondoc/v0.2.11/assets.html
有相关CPU,GPU版本的安装方法,且有相关API 说明
请注意 pymilvus(客户端) 的版本 和 Milvus(服务端)的版本,0.2.10(客户端)对应0.8.0(服务端)
请注意如果配置完出现错误:Config check fail: Invalid cpu cache capacity: 4. Possible reason: cache_config.cpu_cache_capacity exceeds system memory.
ERROR: Milvus server fail to load config file
请检查server_confid.yaml文件中关于cpu的配置,cpu内存不够