2024-06-12|閱讀時間 ‧ 約 23 分鐘

C001|為什麼需要 tiktoken 將文字轉換成符元表?

2024年6月11日晚上6點48分於洛杉磯,


我打算開始每天花點時間學習大語言模型的技術部分。


主要使用的教材是 Manning出版的Build a Large Language Model (From Scratch) [1]。


這本書有配套的code,還有詳細的講解,是我信賴的學習素材。


今天首先看到的Code是

from importlib.metadata import version

import tiktoken
import torch

print("torch version:", version("torch"))
print("tiktoken version:", version("tiktoken"))


而我第一個有問題的部分,就是tiktoken。


tiktoken是OpenAI 所提供的快速開源的tokenizer[2]。


Tokenizer 本身的功能,


將一組給定的「字符串 Text String」與「編碼 Encoding」,


拆解成「符元表 List of Tokens」。


舉例來說,


輸入字符串"tiktoken is great!",


利用編碼器"cl100k_base",


tiktoken 就會回傳給你符元表 ["t", "ik", "token", " is", " great", "!"] 。


將字符串轉換為符元表,


GPT模型就看得懂你在說什麼,


進一步給你回應了!


而之所以需要將文字轉換成符元表,


是因為大語言模型無法直接處理實際文字,


所以需要將文字表現為「連續值向量 Continuous-Valued Vectors」。


這一步轉換,又被稱為「嵌入 Embedding」。


Reference

[1] https://www.manning.com/books/build-a-large-language-model-from-scratch

[2] https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken



分享至
成為作者繼續創作的動力吧!
現為加州大學洛杉磯分校機器學習博士後研究員. 分享Obsidian第二大腦建構實務. 原子寫作與精實寫作實務. 精力管理與學術工作流實務.
© 2024 vocus All rights reserved.