更新於 2024/09/20閱讀時間約 1 分鐘

AI說書 - 從0開始 - 183 | 初始化模型與 Tokenizer

我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。


整理目前手上有的素材:


要預訓練模型自然要準備 GPU 資源,我們使用 Goolge Colab 環境 (詳見 使用Meta釋出的模型,實作Chat GPT - Part 0),並透過以下程式進行 GPU 確認:

!nvidia-smi
import torch
torch.cuda.is_available()


結果為:


接著進行定義模型參數 (撰寫 Config 檔):

from transformers import RobertaConfig, RobertaForCausalLM

config = RobertaConfig(vocab_size = 52000,
max_position_embeddings = 514,
num_attention_heads = 12,
num_hidden_layers = 6,
type_vocab_size = 1,
is_decoder = True) # Set up the model for potential seq2seq use, allowing for autoregressive outputs


當中的 type_voab_size,有以下配置情況:

  1. 配置 type_voab_size = 1:
  • 用途:單句子輸入
  • 示例:適用於只處理單一輸入文本的任務,例如單句子分類、情感分析
  1. 配置 type_voab_size = 2:
  • 用途:雙句子輸入(例如,在BERT中,第一句和第二句)
  • 示例:適用於需要比較或關聯兩個句子的任務,例如自然語言推理、句子對匹配、問答系統
  1. 配置 type_voab_size = n (n > 2):
  • 用途:多句子或多段輸入
  • 示例:適用於需要處理多個不同段落或句子的任務,例如文檔級別的任務,或更複雜的上下文情景分析


至於 is_decoder = True 代表:An Autoregressive Model Continues a Sequence from the Last Token Onward


接著進行模型初始化:

model = RobertaForCausalLM(config = config)


再來配置 Hugging Face 預訓練的 Tokenizer:

from transformers import RobertaTokenizer

tokenizer = RobertaTokenizer.from_pretrained('roberta-base')


如果想要參閱此 Tokenizer 的特殊 Token,可以使用以下方式:

print("Special tokens:", tokenizer.special_tokens_map)


得到結果為:






分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.