先用一句話抓住這篇
這篇不是要你一開始就懂 token、向量、K/V 或 KV Cache。你先把 LLM 想成一個很會玩文字接龍的系統:它看著前文,猜下一個最可能接上的文字單位,接完再繼續猜下一步。
六張小教室圖片會把這件事慢慢拆開:文字先被切成小塊,變成數字,再變成模型能計算的表示;模型一邊讀一邊留下小抄,KV Cache 則把舊小抄存起來,讓下一步不用全部重寫。
如果第一次讀覺得名詞很多,可以先只看比喻:文字接龍、積木、座標、小抄、檔案櫃。看完圖再回來對照工程名詞,會順很多。
P1:LLM 其實是在玩「文字接龍」
先不要急著背名詞。把 LLM 想成一個很會玩「文字接龍」的系統就好:你給它前半句,它會判斷下一個最可能接上的字是什麼。像「今天天氣真 ____」,它可能覺得「好」最合理,也可能依照前文改選「熱」或「冷」。
關鍵是,LLM 不是一次把整篇文章想完。它通常是先接出一小段,再把剛剛接出的內容放回前文,繼續猜下一步。你在畫面上看到文字一段段跑出來,就是這個流程一直重複。
後面會出現 token、向量、K/V、KV Cache 這些工程名詞,但先抓住一句話就好:LLM 的基本動作,是根據前文不斷猜下一個最可能的文字單位。等這件事懂了,後面的名詞就只是把這個流程拆細來看。
P2:Token 是模型處理文字的最小單位
人看到的是文字,模型看到的是編號。這就是 token 的用途:先把句子切成小塊,再把每一塊查成模型看得懂的數字。你可以把它想成「樂高積木」:一句話要先拆成一塊塊,模型才知道要怎麼拿來計算。
Token 不一定等於一個中文字,也不一定等於一個完整的英文單字。它可能是一個字、半個詞、一段常見字串,或一個標點。這也是為什麼同樣一段話,在不同語言或不同 tokenizer 下,token 數可能差很多。
為什麼這件事重要?因為很多 AI 成本其實不是照「你看到幾個字」算,而是照「模型處理幾個 token」算。上下文能放多長、回答要等多久、系統要用多少記憶體,都會被 token 數影響。
P3:文字變向量,語意才進得了數學世界
Token 變成編號後,還需要再變成「有意思的數字」。模型會把每個 token 查成一長串數字,叫做向量。白話一點說,向量像是這個詞在 AI 腦中的座標。
圖上的語意地圖只是簡化版:奶茶、珍珠、布丁比較接近;國王、女王、王子比較接近。真正的模型不是用二維平面,而是用幾千到上萬個方向來描述意思。所以「意思相近」在模型裡,常常會變成「數字座標比較接近」。
這時才輪到數學上場。模型會拿這些向量做大量乘法與加法,慢慢整理出「目前這句話到底在講什麼」。如果讀者不是工程背景,只要先記得:文字進模型後,會變成很多數字;AI 的理解,底層其實是大量數字運算。
P4:K/V 筆記讓模型能回頭看上下文
K/V 可以先想成「讀書時做的小抄」。模型每讀到一個 token,就會留下兩種資訊:Key 像標籤,幫助後面快速找到它;Value 像重點,真的要用時可以拿出來參考。
當模型要猜下一個 token 時,它會回頭看前面留下的小抄,判斷哪些內容跟現在最有關。比如前面提過「珍珠奶茶」,後面要接一句話時,模型就比較容易知道自己還在飲料這個脈絡裡。
所以 K/V 不是神祕魔法,而是一種整理上下文的方法。問題是:對話越長,小抄越多。如果每猜一個新字都要把所有小抄重新寫一遍,速度一定會越來越慢。
P5:KV Cache 省下重算,但新 token 還是要自己想
KV Cache 的想法很直覺:既然舊小抄已經寫好了,就不要每次重寫,直接收進檔案櫃。下一次要猜新 token 時,把舊小抄拿出來查就好。
它省下的是「重算舊內容」的時間。沒有 KV Cache,每生一個新 token,都像把前面整本小說的索引卡重寫一次;有了 KV Cache,舊索引卡已經放好,可以直接查。
但它不是免費加速。新 token 還是要自己跑過模型,還是要讀模型權重,還是要做運算。KV Cache 只是省掉「舊 K/V 重算」,不是省掉新 token 的思考。
而且 cache 會越存越大。對話越長,檔案櫃越胖,系統就要搬更多資料。到了真正的大型 AI 服務,KV Cache 常常會變成記憶體容量、記憶體頻寬與吞吐量的關鍵壓力來源。
P6:真正麻煩的不是只有算,而是搬資料
六張圖串起來,就是一條故事線:先把文字切成 token;再根據前文猜下一個 token;token 變成向量;模型用大量數字運算整理上下文;每個 token 留下 K/V 小抄;最後用 KV Cache 把舊小抄存起來,避免一直重寫。
最後一頁要提醒的是:cache 不是免費午餐。對話越長,KV Cache 越大,系統要搬的資料也越多。很多時候,真正耗電的不是「算一下」,而是「把資料搬到能計算的地方」。
這也是下一集可以接到 CIM(存算合一)的原因:如果搬資料最耗能,那能不能讓資料待在原地、就在附近完成計算?這就是 AI 硬體有趣的地方。表面上是聊天,背後其實是算力、記憶體、頻寬與能效之間的拉扯。
Hashtags
#AI技術 #AI漫畫小教室 #LLM #LargeLanguageModel #Token #Tokenizer #Embedding #Vector #Transformer #Attention #KVCache #Inference #MemoryBandwidth #AIAccelerator #ComputeInMemory #半導體技術
References
- Vaswani et al., Attention Is All You Need - Transformer 原始論文,提出 scaled dot-product attention 與 Query、Key、Value 架構。
- Hugging Face Transformers: KV cache strategies - 說明生成式 Transformer 推論中 KV cache 的用途、限制與常見策略。
- OpenAI tiktoken - OpenAI tokenizer 實作,可用來理解文字如何被編碼成 token id。
- Kwon et al., Efficient Memory Management for Large Language Model Serving with PagedAttention - vLLM / PagedAttention 論文,說明 KV cache 管理為什麼會影響 LLM serving 吞吐量。
- Dao, FlashAttention-2 - 說明 attention 加速與減少記憶體搬移,對硬體效率的重要性。
學習指南
AI 技術小教室
先備知識
- 基本機率與矩陣乘法概念
我學會了什麼
- 說明 LLM 為什麼是一個 token 接一個 token 生成
- 描述 token id 如何變成 embedding vector
- 說明 KV Cache 如何省重算,但增加記憶體容量與頻寬壓力