我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
整理目前手上有的素材:
既然訓練好一個 Tokenizer,也完成保存的動作,現在我們拿出來用看看:
from tokenizers.implementations import ByteLevelBPETokenizer
from tokenizers.processors import BertProcessing
tokenizer = ByteLevelBPETokenizer("./KantaiBERT/vocab.json", "./KantaiBERT/merges.txt")
以一個句子作為範例:
tokenizer.encode("The Critique of Pure Reason.").tokens
得到以下結果:
另外也可以查看 Token 數目:
tokenizer.encode("The Critique of Pure Reason.")
得到以下結果:
接著我們來把 <s> 放在句首,</s> 放在句尾,詳見 AI說書 - 從0開始 - 164 | Tokenizer 前言,手法如下:
tokenizer._tokenizer.post_processor = BertProcessing(("</s>", tokenizer.token_to_id("</s>")),
("<s>", tokenizer.token_to_id("<s>")))
tokenizer.enable_truncation(max_length = 512)
接著我們來看發生什麼事,以同樣一個句子作為範例:
tokenizer.encode("The Critique of Pure Reason.")
得到以下結果:
怎麼 Token 數目由六個變成八個呢?可以進行以下確認:
tokenizer.encode("The Critique of Pure Reason.").tokens
得到以下結果: