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