从零开始快速入门google开源BERT模型

1 篇文章 0 订阅
1 篇文章 0 订阅

什么是BERT?

BERTGoogle为预训练语言表示而开发的NLP模型。它利用了在网络上公开提供的大量纯文本数据,并且以无人监督的方式进行了培训。对于每种语言,预训练BERT模型是一个相当昂贵但一次性的过程。幸运的是,Google发布了一些经过预先训练的模型,您可以从此处下载

Sentence Encoding/Embedding 是许多NLP应用程序所需的上游任务,例如,情绪分析,文本分类。目标是将可变长度的句子表示为固定长度的向量,例如[0.1,0.3,0.9]的hello world。向量的每个元素都应“编码”原始句子的某些语义。

github地址:    https://github.com/hanxiao/bert-as-service

安装

最好的安装方法bert-as-service是通过pip。请注意,服务器和客户端可以分别安装,甚至可以安装在不同的计算机上:

pip install -U bert-serving-server bert-serving-client

 

服务器必须上运行的Python> = 3.5Tensorflow> = 1.10单点-10)。同样,该服务器不支持Python 2!

注意OM

客户端可以同时在Python 2和3上运行。

下载预训练的BERT模型

下载下面列出的模型,然后将zip文件解压缩到某个文件夹,例如 /tmp/english_L-12_H-768_A-12/

由Google AI发布的预训练BERT模型列表:

BERT-Base, Uncased12-layer, 768-hidden, 12-heads, 110M parameters
BERT-Large, Uncased24-layer, 1024-hidden, 16-heads, 340M parameters
BERT-Base, Cased12-layer, 768-hidden, 12-heads , 110M parameters
BERT-Large, Cased24-layer, 1024-hidden, 16-heads, 340M parameters
BERT-Base, Multilingual Cased (New)104 languages, 12-layer, 768-hidden, 12-heads, 110M parameters
BERT-Base, Multilingual Cased (Old)102 languages, 12-layer, 768-hidden, 12-heads, 110M parameters
BERT-Base, ChineseChinese Simplified and Traditional, 12-layer, 768-hidden, 12-heads, 110M parameters

 

启动BERT服务

安装服务器之后,您应该能够使用bert-serving-start CLI,如下所示:

bert-serving-start -model_dir /${BERT_MODEL_PATH}/english_L-12_H-768_A-12/ -num_worker=4

这将以四个worker启动服务,这意味着它最多可以处理四个并发请求。更多并发请求将在负载均衡器中排队。

下面显示了正确启动时服务器的状态:

使用客户端获取句子编码

现在,您可以简单地对句子进行编码,如下所示:

下面是一个基本示例:

from bert_serving.client import BertClient
bc = BertClient()
bc.encode(['First do it', 'then do it right', 'then do it better'])

执行后的代码将返回一个 ndarray,每一行是一个句子的固定表示形式。您还可以指定让它返回纯python类型的对象List[List[float]]

作为BERT的功能,您可以通过连接起来将得到一个对句子的编码|||,例如,

bc.encode(['First do it ||| then do it right'])

 

远程使用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'])

后续将介绍自定义PROCESS的编写

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值