我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
以下撰寫程式來分辨,Tokenizer 究竟是 WordPiece 還是 BPE:
from transformers import BertTokenizer
model_name = 'bert-base-uncased'
tokenizer = BertTokenizer.from_pretrained(model_name)
vocab = tokenizer.get_vocab()
is_wordpiece = any(token.startswith('##') for token in vocab)
if is_wordpiece:
print("Tokenizer type: WordPiece")
else:
print("Tokenizer type: BPE")
結果為:
我們可以更近一步做檢視:
for token, id in vocab.items():
print(f'{token}: {id}')
結果為:
輸出顯示了 ## 前綴,這表示該 Subword 不是單詞的開頭。