我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
Transformer 模型通常使用 Byte-Pair Encoding (BPE) 和 WordPiece Tokenization,接著,我們將了解為什麼選擇 Subword Tokenizer 而不是其他 Tokenizer 會顯著影響 Transformer 模型。
選擇 Tokenizer 取決於 NLP 項目的目標,儘管 Subword Tokenizer 對於 Transformer 模型來說更有效,但 Word 和 Senetence Tokenizer 提供了有用的功能,可用於許多任務,包括:
我們可以安裝各種 Tokenizer,以作為後續實驗用途:
!pip install transformers # Hugging Face Transformers
!pip install tabulate # Printing tabular data in Python
!pip install nltk # Natural Language Toolkit
當中 Word 和 Sentence 的 Tokenizer 由 nltk 包主責,而 Subword Tokenizer 由 Transformers 包主責。
以下載入常見的 Word 和 Sentence 的 Tokenizer:
import nltk
nltk.download('punkt')
from nltk.tokenize import sent_tokenize, word_tokenize, RegexpTokenizer, TreebankWordTokenizer, WhitespaceTokenizer, PunktSentenceTokenizer, WordPunctTokenizer, MWETokenizer