查看: 2095|回复: 1

快速使用 BERT 生成词向量:bert-as-service,bert生成句子向量...

[复制链接]

665

主题

1234

帖子

6566

积分

xdtech

Rank: 5Rank: 5

积分
6566
发表于 2019-12-15 15:03:51 | 显示全部楼层 |阅读模式
使用 bert-as-service 生成词向量

bert-as-service 是腾讯 AI Lab 开源的一个 BERT 服务,它让用户可以以调用服务的方式使用 BERT 模型而不需要关注 BERT 的实现细节。bert-as-service 分为客户端和服务端,用户可以从 python 代码中调用服务,也可以通过 http 的方式访问。

安装
使用 pip 命令进行安装,客户端与服务端可以安装在不同的机器上:

pip install bert-serving-server # 服务端

pip install bert-serving-client # 客户端,与服务端互相独立


下载预训练模型

根据 NLP 任务的类型和规模不同,Google 提供了多种预训练模型供选择:

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 ) 记录模型的超参


启动 BERT 服务


使用 bert-serving-start 命令启动服务:

bert-serving-start -model_dir /tmp/english_L-12_H-768_A-12/ -num_worker=2

其中,-model_dir 是预训练模型的路径,-num_worker 是线程数,表示同时可以处理多少个并发请求



在客户端获取句向量

可以简单的使用以下代码获取语料的向量表示:

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


回复

使用道具 举报

665

主题

1234

帖子

6566

积分

xdtech

Rank: 5Rank: 5

积分
6566
 楼主| 发表于 2019-12-15 15:04:02 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表