项目地址
Bert-Encode-Servergithub.com引用项目
壮哉我贾诩文和:Keras-Bert-Ner-Lightzhuanlan.zhihu.com
简介
项目在肖涵老师的bert-as-service上添加了ALBERT模型,总体使用与bert-as-service保持一致。
直接通过Bert Encode Server服务端获取输入特征(可以是字特征,也可以是句特征),此时的预训练语言模型仅作为通用的特征提取器,不参与下游模型的训练,可以显著降低任务的计算资源占用;从Bert Encode Server服务端提取特征需要一定的耗时,该耗时取决于服务端的计算性能
更新日志
- 2020.03.03 新增样例。
- 2020-01-11 加载roberta系列模型时,不需要添加
-albert参数,其网络结构与bert模型一致。 - 2020-01-11 修复BERT模型加载出现
AttributeError: 'BertConfig' object has no attribute 'embedding_size'的错误,原因是对开启server的参数-albert进行处理时出现错误;现在,-albert参数被设置为store_true的动作参数,默认为False。
未来工作
- 提高稳定性和并发性。
- 新增BERT系列改进模型,如Distill Bert,Tiny Bert。
依赖项
- flask == 1.1.1
- GPUtil == 1.4.0
- termcolor == 1.1.0
- flask_cors == 3.0.8
- flask_json == 0.3.4
- tensorflow == 1.15.2
- flask_compress == 1.4.0
字特征提取(服务端)
cd char_server
bash char_server.sh
注意修改.char_server.sh中文件的相关内容:
- 如果使用
ALBERT模型,应添加参数-albert。 model_dir,ckpt_name和config_name根据预训练语言模型的位置进行相应调整。- 如使用
cpu,添加-cpu参数;如使用gpu,添加-device_map "0",其中"0"为0号GPU。
句特征提取(服务端)
cd sent_server
bash sent_server.sh
参数与字特征提取(服务端) 所示参数一致,但需注意:
-pooling_strategy参数应删除或设置该参数为REDUCE_MEAN。
使用客户端
import requests
r = requests.post(
"http://your_ip:your_port/encode",
json={
"id": 123,
"texts": ["啊","啥意思"],
"is_tokenized": False
}
)
其中,json中的相关参数设置如下:
texts字段为句子list时,is_tokenized字段为False。texts字段为字符list时,is_tokenized字段为True。
一些常用的中文预训练模型
BERT Google_bert HIT_bert_wwm_ext ALBERT Google_albert_base Google_albert_large Google_albert_xlarge Google_albert_xxlarge Xuliang_albert_xlarge Xuliang_albert_large Xuliang_albert_base Xuliang_albert_base_ext Xuliang_albert_small Xuliang_albert_tiny Roberta roberta roberta_wwm_ext * roberta_wwm_ext_large
参考
- 项目参考了Han Xiao的工作:bert_as_service。我们仅仅在这基础上添加了
ALBERT模型框架。
最后
以上就是潇洒蜜粉最近收集整理的关于bert简介_Bert-Encode-Server的全部内容,更多相关bert简介_Bert-Encode-Server内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复