pytorch: Transformers入門(三)

BERT的那些類

1. BertConfig

這是一個(gè)配置類并村,繼承PretrainedConfig類,用于model的配置腾啥,構(gòu)造函數(shù)參數(shù)如下:

vocab_size?(int, optional, defaults to 30522) :BERT模型的字典大小东涡,默認(rèn)30522冯吓,每個(gè)token可以由input_ids表示。

hidden_size?(int, optional, defaults to 768) :是encoder和pooler層的維度软啼,其中encoder層就是bert的主體結(jié)構(gòu)桑谍,pooler層是將encoder層的輸出接一個(gè)全連接層,將整個(gè)句子的信息表示為第一個(gè)token對(duì)應(yīng)的隱含狀態(tài)祸挪。

num_hidden_layers?(int, optional, defaults to 12) :隱含層數(shù)锣披,默認(rèn)是12層。

num_attention_heads?(int, optional, defaults to 12) :每個(gè)attention層的attention頭數(shù)贿条,默認(rèn)是12個(gè)雹仿。

intermediate_size?(int, optional, defaults to 3072) :encoder中的中間層的維度,如前向傳播層整以,默認(rèn)是3072.

hidden_act?(str?or?function, optional, defaults to “gelu”):encoder和pooler部分中非線性層的激活函數(shù)胧辽,默認(rèn)是gelu

hidden_dropout_prob?(float, optional, defaults to 0.1) :embedding, encoder, pooler部分里全連接層的dropout概率,默認(rèn)為0.1.

attention_probs_dropout_prob?(float, optional, defaults to 0.1):attention過程中softmax后的概率計(jì)算時(shí)的dropout概率公黑,默認(rèn)0.1.

max_position_embeddings?(int, optional, defaults to 512) :模型允許的最大序列長(zhǎng)度邑商,默認(rèn)512。

函數(shù):

from_dict:由一個(gè)參數(shù)字典構(gòu)建Config凡蚜;

from_json_file:由一個(gè)參數(shù)json文件構(gòu)建Config人断;

from_pretrained:由一個(gè)預(yù)訓(xùn)練的模型配置實(shí)例化一個(gè)配置

2.?BertTokenizer

分割,繼承PreTrainedTokenizer朝蜘,前面介紹過恶迈,構(gòu)造函數(shù)參數(shù);

vocab_file?(string):字典文件,每行一個(gè)wordpiece

do_lower_case?(bool,?optional, defaults to?True) :是否將輸入轉(zhuǎn)換成小寫

do_basic_tokenize?(bool,?optional, defaults to?True):是否在字分割之前使用BasicTokenize

never_split?(Iterable,?optional, defaults to?None)?:可選谱醇。輸入一個(gè)列表暇仲,列表內(nèi)容為不進(jìn)行 tokenization 的單詞

unk_token?(string,?optional, defaults to “[UNK]”) :字典里沒有的字可以用這個(gè)token代替,默認(rèn)使用[UNK]

sep_token?(string,?optional, defaults to “[SEP]”):分隔句子的token符號(hào)副渴,默認(rèn)[SEP]

pad_token?(string,?optional, defaults to “[PAD]”)?

cls_token?(string,?optional, defaults to “[CLS]”)

mask_token?(string,?optional, defaults to “[MASK]”)

tokenize_chinese_chars?(bool,?optional, defaults to?True) :是否將中文字分割開

返回的就是input_ids奈附,token_type_ds,attention mask等煮剧。

3.?BertModel

Bert模型類桅狠,繼承torch.nn.Module,實(shí)例化對(duì)象時(shí)使用from_pretrained()函數(shù)初始化模型權(quán)重轿秧,參數(shù)config用于配置模型參數(shù)

模型輸入是:

input_ids,token_type_ids(可選)咨堤,attention_mask(可選)菇篡,position_ids(可選),

head_mask(可選):0表示head無效,1表示head有效一喘。

inputs_embeds?(可選)如果不使用input_ids驱还,可以直接輸入token的embedding表示嗜暴。

encoder_hidden_states(可選):encoder最后一層的隱含狀態(tài)序列,模型配置為decoder時(shí)议蟆,需要此輸入闷沥。

encoder_attention_mask(可選):encoder最后一層隱含狀態(tài)序列是否參與attention計(jì)算,防止padding部分參與咐容,模型配置為decoder時(shí)舆逃,需要此輸入.

返回類型tuple(torch.FloatTensor):

last_hidden_state:模型最后一層輸出的隱含層狀態(tài)序列

pooler_output :最后一層隱含層狀態(tài)序列經(jīng)過一層全連接和Tanh激活后,第一個(gè)toekn對(duì)應(yīng)位置的輸出戳粒。

hidden_states(可選路狮,當(dāng)output_hidden_states=True或者config.output_hidden_states=True):每一層和初始embedding層輸出的隱含狀態(tài)

attentions(可選,當(dāng)output_attentions=True或者config.output_attentions=True):attention softmax后的attention權(quán)重蔚约,用于在自注意力頭中計(jì)算權(quán)重平均值奄妨。

4.?BertForPreTraining

這個(gè)類是論文中做pre_train時(shí)的兩個(gè)任務(wù),a?masked language modeling and a?next sentence prediction 苹祟,模型主體與BertModel一樣砸抛,只是輸入輸出上稍有不同。

輸入中增加了labels?树枫,next_sentence_label直焙,分別用于兩個(gè)任務(wù)計(jì)算loss時(shí)用。

輸出主要是loss团赏,prediction_scores箕般,seq_relationship_scores分別表示兩個(gè)任務(wù)的總loss,MLM任務(wù)的loss和NSP任務(wù)的loss舔清。

5. BertForMaskedLM

6. BertForNextSentencePrediction

這兩個(gè)類就是把兩個(gè)任務(wù)分開了丝里,單獨(dú)進(jìn)行

7. BertForSequenceClassification

這個(gè)類用于句子分類或回歸任務(wù),繼承torch.nn.Module体谒,實(shí)例化依然使用from_pretrained+ config配置杯聚。

輸入相比BertModel多了一個(gè)label

輸出主要是loss,logits(softmax之前的分類分?jǐn)?shù))等tuple(torch.FloatTensor)

8. BertForMultipleChoice

這個(gè)是用于多項(xiàng)選擇分類抒痒,例如幌绍,RocStories/SWAG tasks,這個(gè)分支我不了解故响,簡(jiǎn)單搜了一下就是給出前面幾句話傀广,讓你從后面幾個(gè)選項(xiàng)中選出接下來的話是哪個(gè),感覺是知識(shí)推理彩届。

輸入輸出與BertForSequenceClassification一樣伪冰。

9. BertForTokenClassification

這個(gè)類用于對(duì)token分類,如命名實(shí)體識(shí)別任務(wù)樟蠕,從給定的輸入中識(shí)別出命名實(shí)體贮聂,所以是對(duì)最小單位toekn的分類靠柑。

輸入輸出同BertForSequenceClassification

10. BertForQuestionAnswering

這個(gè)類適用于問答系統(tǒng)。

輸入中將上面幾個(gè)模型中的label改成了start_position和end_position吓懈,即答案在原文中起始和結(jié)束位置歼冰。

輸出是將預(yù)測(cè)分?jǐn)?shù)改成了對(duì)答案起始位置和結(jié)束位置的預(yù)測(cè)分?jǐn)?shù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耻警,一起剝皮案震驚了整個(gè)濱河市隔嫡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌榕栏,老刑警劉巖畔勤,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異扒磁,居然都是意外死亡庆揪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門妨托,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缸榛,“玉大人,你說我怎么就攤上這事兰伤∧诳牛” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵敦腔,是天一觀的道長(zhǎng)均澳。 經(jīng)常有香客問我,道長(zhǎng)符衔,這世上最難降的妖魔是什么找前? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮判族,結(jié)果婚禮上躺盛,老公的妹妹穿的比我還像新娘。我一直安慰自己形帮,他們只是感情好槽惫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辩撑,像睡著了一般界斜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上合冀,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天锄蹂,我揣著相機(jī)與錄音,去河邊找鬼水慨。 笑死得糜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的晰洒。 我是一名探鬼主播朝抖,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼谍珊!你這毒婦竟也來了治宣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤砌滞,失蹤者是張志新(化名)和其女友劉穎侮邀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贝润,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绊茧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了打掘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片华畏。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖尊蚁,靈堂內(nèi)的尸體忽然破棺而出亡笑,到底是詐尸還是另有隱情,我是刑警寧澤横朋,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布仑乌,位于F島的核電站,受9級(jí)特大地震影響琴锭,放射性物質(zhì)發(fā)生泄漏晰甚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一祠够、第九天 我趴在偏房一處隱蔽的房頂上張望压汪。 院中可真熱鬧,春花似錦古瓤、人聲如沸止剖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)穿香。三九已至,卻和暖如春绎速,著一層夾襖步出監(jiān)牢的瞬間皮获,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工纹冤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洒宝,地道東北人购公。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像雁歌,于是被迫代替她去往敵國(guó)和親宏浩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353