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

https://blog.csdn.net/qq_34832393/article/details/90414293

 

使用 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 提供了多種預訓練模型供選擇:

  1. BERT-Base, Chinese: 簡繁體中文, 12-layer, 768-hidden, 12-heads, 110M parameters
  2. BERT-Base, Multilingual Cased: 多語言(104 種), 12-layer, 768-hidden, 12-heads, 110M parameters
  3. BERT-Base, Uncased: 英文不區分大小寫(全部轉爲小寫), 12-layer, 768-hidden, 12-heads, 110M parameters
  4. BERT-Base, Cased: 英文區分大小寫, 12-layer, 768-hidden, 12-heads , 110M parameters
  5. 也可以使用中文效果更好的哈工大版 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'])

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章