bert-as-service简单使用

BERT训练语料集合生成预训练词向量模型,能用在下游任务中。和Word2vec比,个人觉得它最大的好处在于词缺失的时候,能词条化和短词的词向量匹配,这样能避免丢掉太多语义,比如promax不存在,BERT就会返回pro######max,这样也能有效获取语义。

BERT12层的transformer,自己训练一次开销巨大,为了快速使用BERT生成词向量而不去直接训练,利用bert-as-service封装库来实现预训练结果的读取。

预训练结果

BERT谷歌官方在github中给出了几个不同类型的已训练好的结果,bert-as-service可以直接拿来使用。
预训练结果github链接 https://github.com/google-research/bert
包括不同词向量维度与不同语言语料的结果,我们这边选择12层训练768维度的全小写英文文本训练结果: https://storage.googleapis.com/bert_models/2020_02_20/uncased_L-12_H-768_A-12.zip

bert-as-service 服务端

bert-as-serviceBERT作为一个服务运行在pc上,这样需要使用时,只需要将要获取的词或句传给服务器即可。

服务端安装

利用pip进行安装

pip install bert-serving-server

服务器要求tensorflow版本大于1.1,python3
不过这库很久没更新了,没有做tensorflow2的适配,所以最高基本就是1.15版本。

我本身不怎么用tensorflow,直接在自己机子(windows)上装了个1.15版本来用。比较尴尬的是gpu版本的cuda和我pytorch的冲突,只能装个cpu版本凑活用着。

服务端启动

bert-serving-start

bert-serving-start -model_dir=E:bert/uncased_L-12_H-768_A-12/ -num_worker=1 -cpu -max_seq_len=150

主要参数:
model_dir:预训练bert的结果文件地址
num_worker:cpu或者gpu线程数,决定同时有几个用户可以使用service
max_seq_len:处理语句的最长长度,可以设置为None&#x

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值