2024-09-05|閱讀時間 ‧ 約 22 分鐘

AI說書 - 從0開始 - 167 | Tokenizer 使用方式

我想要一天分享一點「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


得到以下結果:




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