国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[NLP] BERT模型參數(shù)量

這篇具有很好參考價值的文章主要介紹了[NLP] BERT模型參數(shù)量。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一 BERT_Base?110M參數(shù)拆解

BERT_base模型的110M的參數(shù)具體是如何組成的呢,我們一起來計算一下:

剛好也能更深入地了解一下Transformer Encoder模型的架構(gòu)細節(jié)。

借助transformers模塊查看一下模型的架構(gòu):

import torch
from transformers import BertTokenizer, BertModel

bertModel = BertModel.from_pretrained('bert-base-uncased', output_hidden_states=True, output_attentions=True)
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
for name,param in bertModel.named_parameters():

print(name, param.shape)

得到的模型參數(shù)為:

embeddings.word_embeddings.weight torch.Size([30522, 768])
embeddings.position_embeddings.weight torch.Size([512, 768])
embeddings.token_type_embeddings.weight torch.Size([2, 768])
embeddings.LayerNorm.weight torch.Size([768])
embeddings.LayerNorm.bias torch.Size([768])

encoder.layer.0.attention.self.query.weight torch.Size([768, 768])
encoder.layer.0.attention.self.query.bias torch.Size([768])
encoder.layer.0.attention.self.key.weight torch.Size([768, 768])
encoder.layer.0.attention.self.key.bias torch.Size([768])
encoder.layer.0.attention.self.value.weight torch.Size([768, 768])
encoder.layer.0.attention.self.value.bias torch.Size([768])

encoder.layer.0.attention.output.dense.weight torch.Size([768, 768])
encoder.layer.0.attention.output.dense.bias torch.Size([768])
encoder.layer.0.attention.output.LayerNorm.weight torch.Size([768])
encoder.layer.0.attention.output.LayerNorm.bias torch.Size([768])

encoder.layer.0.intermediate.dense.weight torch.Size([3072, 768])
encoder.layer.0.intermediate.dense.bias torch.Size([3072])
encoder.layer.0.output.dense.weight torch.Size([768, 3072])
encoder.layer.0.output.dense.bias torch.Size([768])
encoder.layer.0.output.LayerNorm.weight torch.Size([768])
encoder.layer.0.output.LayerNorm.bias torch.Size([768])

encoder.layer.11.attention.self.query.weight torch.Size([768, 768])
encoder.layer.11.attention.self.query.bias torch.Size([768])
encoder.layer.11.attention.self.key.weight torch.Size([768, 768])
encoder.layer.11.attention.self.key.bias torch.Size([768])
encoder.layer.11.attention.self.value.weight torch.Size([768, 768])
encoder.layer.11.attention.self.value.bias torch.Size([768])
encoder.layer.11.attention.output.dense.weight torch.Size([768, 768])
encoder.layer.11.attention.output.dense.bias torch.Size([768])
encoder.layer.11.attention.output.LayerNorm.weight torch.Size([768])
encoder.layer.11.attention.output.LayerNorm.bias torch.Size([768])
encoder.layer.11.intermediate.dense.weight torch.Size([3072, 768])
encoder.layer.11.intermediate.dense.bias torch.Size([3072])
encoder.layer.11.output.dense.weight torch.Size([768, 3072])
encoder.layer.11.output.dense.bias torch.Size([768])
encoder.layer.11.output.LayerNorm.weight torch.Size([768])
encoder.layer.11.output.LayerNorm.bias torch.Size([768])

pooler.dense.weight torch.Size([768, 768])
pooler.dense.bias torch.Size([768])

其中,BERT模型的參數(shù)主要由三部分組成:

Embedding層參數(shù)

Transformer Encoder層參數(shù)

LayerNorm層參數(shù)

二 Embedding層參數(shù)

由于詞向量是由Token embedding,Position embedding,Segment embedding三部分構(gòu)成的,因此embedding層的參數(shù)也包括以上三部分的參數(shù)。

BERT_base英文詞表大小為:30522, 隱藏層hidden_size=768,文本最大長度seq_len = 512

Token embedding參數(shù)量為:30522 * 768;

Position embedding參數(shù)量為:512 * 768;

Segment embedding參數(shù)量為:2 * 768。

因此總的參數(shù)量為:(30522 + 512 +2)* 768 = 23,835,648

[NLP] BERT模型參數(shù)量,自然語言處理,bert,人工智能

?

LN層在Embedding層

norm使用的是layer normalization,每個維度有兩個參數(shù)

768 * 2 =?1536

三 Transformer Encoder層參數(shù)

可以將該部分拆解成兩部分:Self-attention層參數(shù)、Feed-Forward Network層參數(shù)。

1.Self-attention層參數(shù)

改層主要是由Q、K、V三個矩陣運算組成,BERT模型中是Multi-head多頭的Self-attention(記為SA)機制。先通過Q和K矩陣運算并通過softmax變換得到對應(yīng)的權(quán)重矩陣,然后將權(quán)重矩陣與 V矩陣相乘,最后將12個頭得到的結(jié)果進行concat,得到最終的SA層輸出。

1. multi-head因為分成12份, 單個head的參數(shù)是 768 * (768/12) * 3,? 緊接著將多個head進行concat再進行變換,此時W的大小是768 * 768

? ? 12個head就是? 768 * (768/12) * 3 *?12? +?768 * 768 =?1,769,472 + 589,824 =?2359296

3. LN層在Self-attention層

norm使用的是layer normalization,每個維度有兩個參數(shù)

768 * 2 =?1536

2.Feed-Forward Network層參數(shù)

由FFN(x)=max(0, xW1+b1)W2+b2可知,前饋網(wǎng)絡(luò)FFN主要由兩個全連接層組成,且W1和W2的形狀分別是(768,3072),(3072,768),因此該層的參數(shù)量為:

[NLP] BERT模型參數(shù)量,自然語言處理,bert,人工智能

feed forward的參數(shù)主要由兩個全連接層組成,intermediate_size為3072(原文中4H長度) ,那么參數(shù)為12*(768*3072+3072*768)= 56623104

LN層在FFN

norm使用的是layer normalization,每個維度有兩個參數(shù)

768 * 2 =?1536

layer normalization

layer normalization有兩個參數(shù),分別是gamma和beta。有三個地方用到了layer normalization,分別是embedding層后、multi-head attention后、feed forward后,這三部分的參數(shù)為768*2+12*(768*2+768*2)=38400

四 總結(jié)

綜上,BERT模型的參數(shù)總量為:

23835648 + 12*2359296(28311552)? ?+ 56623104?+? 38400? =?108808704??≈103.7M

Embedding層約占參數(shù)總量的20%,Transformer層約占參數(shù)總量的80%。

注:本文介紹的參數(shù)僅是BERT模型的Transformer Encoder部分的參數(shù),涉及的bias由于參數(shù)很少,本文也未計入。文章來源地址http://www.zghlxwxcb.cn/news/detail-668713.html

到了這里,關(guān)于[NLP] BERT模型參數(shù)量的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 自然語言處理實戰(zhàn)項目28-RoBERTa模型在BERT的基礎(chǔ)上的改進與架構(gòu)說明,RoBERTa模型的搭建

    自然語言處理實戰(zhàn)項目28-RoBERTa模型在BERT的基礎(chǔ)上的改進與架構(gòu)說明,RoBERTa模型的搭建

    大家好,我是微學AI,今天給大家介紹下自然語言處理實戰(zhàn)項目28-RoBERTa模型在BERT的基礎(chǔ)上的改進與架構(gòu)說明,RoBERTa模型的搭建。在BERT的基礎(chǔ)上,RoBERTa進行了深度優(yōu)化和改進,使其在多項NLP任務(wù)中取得了卓越的成績。接下來,我們將詳細了解RoBERTa的原理、架構(gòu)以及它在BERT基

    2024年03月22日
    瀏覽(26)
  • 自然語言處理(八):預訓練BERT

    自然語言處理(八):預訓練BERT

    BERT(Bidirectional Encoder Representations from Transformers)是一種預訓練的自然語言處理模型,由Google于2018年提出。它是基于Transformer模型架構(gòu)的深度雙向(雙向指同時考慮上下文信息)表示學習模型。 BERT的目標是通過在大規(guī)模文本語料上進行自監(jiān)督學習來學習通用的語言表示。在預

    2024年02月09日
    瀏覽(22)
  • 2、BERT:自然語言處理的變革者

    請參考之前寫的: 2、什么是BERT?-CSDN博客 文章瀏覽閱讀826次,點贊19次,收藏22次。BERT(Bidirectional Encoder Representations from Transformers)是Google在2018年提出的一種自然語言處理(NLP)預訓練模型。BERT模型的創(chuàng)新之處在于它采用了Transformer的編碼器架構(gòu),并且是第一個真正基于雙

    2024年02月02日
    瀏覽(71)
  • 自然語言處理(七):來自Transformers的雙向編碼器表示(BERT)

    自然語言處理(七):來自Transformers的雙向編碼器表示(BERT)

    BERT(Bidirectional Encoder Representations from Transformers)是一種預訓練的自然語言處理模型,由Google于2018年提出。它是基于Transformer模型架構(gòu)的深度雙向(雙向指同時考慮上下文信息)表示學習模型。 BERT的目標是通過在大規(guī)模文本語料上進行自監(jiān)督學習來學習通用的語言表示。在預

    2024年02月09日
    瀏覽(16)
  • 自然語言基礎(chǔ) IMDB下的 MLM (掩碼模型) & Bert Fine-tuning (模型微調(diào))

    本文是Hugging Face 上 NLP的一篇代碼教程,通過imdb數(shù)據(jù)集, Fine-tuning微調(diào) Bert預訓練模型。 涉及包括: MLM, Bert, Fine-tuning, IMDB, Huggingface Repo 微調(diào)的方式是通過調(diào)整訓練模型的學習率來重新訓練模型,這個來自 早期 ACL 2018的一篇paper: 《Universal Language Model Fine-tuning for Text

    2024年02月15日
    瀏覽(26)
  • 97. BERT微調(diào)、自然語言推理數(shù)據(jù)集以及代碼實現(xiàn)

    97. BERT微調(diào)、自然語言推理數(shù)據(jù)集以及代碼實現(xiàn)

    即使下游任務(wù)各有不同,使用BERT微調(diào)時只需要增加輸出層 但根據(jù)任務(wù)的不同,輸入的表示,和使用的BERT特征也會不一樣 斯坦福自然語言推斷語料庫(Stanford Natural Language Inference,SNLI)]是由500000多個帶標簽的英語句子對組成的集合 。我們在路徑 ../data/snli_1.0 中下載并存儲提

    2024年02月09日
    瀏覽(45)
  • 自然語言處理 Paddle NLP - 預訓練語言模型及應(yīng)用

    自然語言處理 Paddle NLP - 預訓練語言模型及應(yīng)用

    基礎(chǔ) 自然語言處理(NLP) 自然語言處理PaddleNLP-詞向量應(yīng)用展示 自然語言處理(NLP)-前預訓練時代的自監(jiān)督學習 自然語言處理PaddleNLP-預訓練語言模型及應(yīng)用 自然語言處理PaddleNLP-文本語義相似度計算(ERNIE-Gram) 自然語言處理PaddleNLP-詞法分析技術(shù)及其應(yīng)用 自然語言處理Pa

    2024年02月08日
    瀏覽(30)
  • 【自然語言處理(NLP)】基于ERNIE語言模型的文本語義匹配

    【自然語言處理(NLP)】基于ERNIE語言模型的文本語義匹配

    作者簡介 :在校大學生一枚,華為云享專家,阿里云專家博主,騰云先鋒(TDP)成員,云曦智劃項目總負責人,全國高等學校計算機教學與產(chǎn)業(yè)實踐資源建設(shè)專家委員會(TIPCC)志愿者,以及編程愛好者,期待和大家一起學習,一起進步~ . 博客主頁 : ぃ靈彧が的學習日志

    2024年02月10日
    瀏覽(31)
  • 2023年!自然語言處理(NLP)10 大預訓練模型

    2023年!自然語言處理(NLP)10 大預訓練模型

    來源: AINLPer 公眾號 (每日干貨分享?。。?編輯: ShuYini 校稿: ShuYini 時間: 2022-10-23 語言模型是構(gòu)建NLP應(yīng)用程序的關(guān)鍵?,F(xiàn)在人們普遍相信基于預訓練模型來構(gòu)建NLP語言模型是切實有效的方法。隨著疫情陰霾的散去,相信NLP技術(shù)會繼續(xù)滲透到眾多行業(yè)中。在此過程中,肯定有很

    2024年02月16日
    瀏覽(26)
  • 【AI人工智能】NLP(自然語言處理)和 LLM(大語言模型)詳細對比

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包