码迷,mamicode.com
首页 > 其他好文 > 详细

bert 编程入门--pytorch版本

时间:2020-07-09 15:25:23      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:html   文本   col   礼物   代码   向量   you   font   图片   

代码在最后面

前面是代码细节的内容讲解

 

## 前綴的 tokens 即為 wordpieces

以詞彙 fragment 來說,其可以被拆成 frag 與 ##ment 兩個 pieces,而一個 word 也可以獨自形成一個 wordpiece。wordpieces 可以由蒐集大量文本並找出其中常見的 pattern 取得。

 

除了一般的 wordpieces 以外,BERT 裡頭有 5 個特殊 tokens 各司其職:

  • [CLS]:在做分類任務時其最後一層的 repr. 會被視為整個輸入序列的 repr.
  • [SEP]:有兩個句子的文本會被串接成一個輸入序列,並在兩句之間插入這個 token 以做區隔
  • [UNK]:沒出現在 BERT 字典裡頭的字會被這個 token 取代
  • [PAD]:zero padding 遮罩,將長度不一的輸入序列補齊方便做 batch 運算
  • [MASK]:未知遮罩,僅在預訓練階段會用到

 

這樣的 word repr. 就是近年十分盛行的 contextual word representation 概念。跟以往沒有蘊含上下文資訊的 Word2Vec、GloVe 等無語境的詞嵌入向量有很大的差異。用稍微學術一點的說法就是:

Contextual word repr. 讓同 word type 的 word token 在不同語境下有不同的表示方式;而傳統的詞向量無論上下文,都會讓同 type 的 word token 的 repr. 相同。

直覺上 contextual word representation 比較能反映人類語言的真實情況,

(举例:你今天开了机车过来接我,但是你买礼物给我的行为真的很机车哎)
这里就是different word repr , 需要用到contextual word repr
 
一句话来说就是:
BERT 是一個強大的語言代表模型,給它一段文本序列,它能回傳一段相同長度且蘊含上下文資訊的 word repr. 序列,對下游的 NLP 任務很有幫助。
 
 
 
技术图片

 

 

為了讓 GPU 平行運算我們需要將 batch 裡的每個輸入序列都補上 zero padding 以保證它們長度一致

 

 

bert 编程入门--pytorch版本

标签:html   文本   col   礼物   代码   向量   you   font   图片   

原文地址:https://www.cnblogs.com/tfknight/p/13273514.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!