我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
延續 AI說書 - 從0開始 - 304 | WordPiece Tokenization 介紹與偵測 講 WordPiece Tokenizer,而 AI說書 - 從0開始 - 305 | Token ID 映射顯示 則談論 Token ID 映射事宜,今天來談論 Token ID 映射之互動介面:
撰寫程式互動介面:
# Sort the vocabulary by token
sorted_vocab = sorted(vocab_list, key = lambda x: x[0])
filter_widget = widgets.Text(placeholder = 'Filter vocabulary')
def filter_vocabulary(filter_text):
filtered_vocab = [word for word in sorted_vocab if word[0].startswith(filter_text)]
table = tabulate(filtered_vocab, headers = ['Token', 'ID'])
display(widgets.HTML(table))
filter_widget.observe(lambda event: filter_vocabulary(event.new), names = 'value')
display(filter_widget)
結果為:
接著輸入一個字符,並且以該字符開頭的單詞將會顯示出來,例如,輸入 "t" 將生成一個輸出,顯示所有以該字母開頭的詞元 ID,如以下摘錄所示: