我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
延續 AI說書 - 從0開始 - 295 | 各 Tokenizer 之優勢與安裝、AI說書 - 從0開始 - 296 | 各 Tokenizer 之展示、AI說書 - 從0開始 - 297 | 各 Tokenizer 之展示,我們繼續來展示各 Tokenizer 的用處:
Punkt Tokenization
其經過無監督預訓練後將序列分割成句子,它不需要標籤,展示如下:
tokenizer = PunktSentenceTokenizer()
text = "A tokenizer can be trained. Many tokenizers aren't trained."
sentences = tokenizer.tokenize(text)
print("Punkt Sentence Tokenization:")
print(sentences)
結果為:
Word Punctuation Tokenization
其根據空格和標點符號將序列拆分為單字,展示如下:
tokenizer = WordPunctTokenizer()
text = "They won a prize! They were overjoyed."
tokens = tokenizer.tokenize(text)
print("Word Punctuation Tokenization:")
print(tokens)
結果為:
Multi-Word Tokenization
其將序列拆分為單詞,但保留多單字表達式,例如 “cannot”,展示如下:
tokenizer = MWETokenizer()
tokenizer.add_mwe(("can", "not"))
text = "I cannot go to the movies today"
tokens = tokenizer.tokenize(text.split())
print("Multi-Word Expression Tokenization:")
print(tokens)
結果為:
Sentence 和 Word Tokenizer 不應被輕視,僅僅因為最近的大規模語言模型更偏好 Subword Tokenizer,例如,在某些情況下,Sentence 和 Word Tokenizer 可以作為預處理流程的一部分,用於創建標註數據集以訓練 Transformer 模型。