我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
既然現在要執行 BERT 模型的微調,理當看看此模型的一些細節,程式為:
from transformers import BertModel, BertConfig
configuration = BertConfig()
model = BertModel(configuration)
configuration = model.config
print(configuration)
輸出結果為:
一些參數的解釋如下:
- attention_probs_dropout_prob: 0.1 對注意力機率應用 0.1 的丟失率
- hidden_act: "gelu" 是編碼器中的非線性激活函數,它是一個 Gaussian Error Linear Unit Activation Function,輸入按其大小進行加權,這使其成為非線性的
- hidden_dropout_prob: 0.1 是應用於全連接層的丟失機率,全連接層可以在嵌入層、編碼器層和池化層中找到
- hidden_size: 768 是編碼層和池化層的維度,詳見 AI說書 - 從0開始 - 128
- initializer_range: 0.02 是初始化權重矩陣時的標準差值
- intermediate_size: 3072 是編碼器前饋層的維度
- max_position_embeddings: 512 是模型使用的最大長度
- model_type: "bert" 是模型的名稱
- num_attention_heads: 12 是頭的數量,詳見 AI說書 - 從0開始 - 128
- num_hidden_layers: 12 是層數,詳見 AI說書 - 從0開始 - 128
- pad_token_id: 0 是填充 Token 的 ID,以避免訓練填充 Token
- type_vocab_size: 2 是允許最多能輸入的句子数量,默認是 2,詳見 AI說書 - 從0開始 - 131
- vocab_size: 30522 是模型用來表示 input_ids 的標記數量