你在聊天框裡打一段話,幾秒後,模型回了一整段看起來有邏輯、有語氣,甚至像是理解你在問什麼的文字。它可以替程式找 bug、整理文件、解釋物理題,也可以一本正經地說出根本不存在的東西。這些能力放在一起,很容易讓人把 LLM 想成一個裝了大量知識、只要問對問題就會從裡面把答案撈出來的巨大資料庫。
但這個想像不太準。LLM 是 Large Language Model,也就是大型語言模型。它本質上是一種從大量資料中學習語言規律的神經網路模型;現在常見的生成式 LLM,會根據前面已經出現的內容,計算接下來各個 token 出現的可能性,再一步一步把文字生成出來。它確實能在訓練過程中把大量模式與資訊壓進模型參數裡,但那些東西並不是一張張可以精準查詢的資料表。
先記一句就夠:LLM 不是先在腦袋裡寫完整篇答案再吐出來,而是根據目前的上下文,一步一步決定接下來要產生什麼。
模型看到的不是「字」,而是 token
在文字送進模型之前,通常會先被切成 token。Token 不一定等於一個中文字,也不一定等於一個英文單字;它可能是一個字、一段常見字串、標點的一部分,甚至只是某個單字的一小截。不同模型使用的 tokenizer 不一樣,所以同一句話在不同模型裡,也可能被切成不同數量的 token。
這件事聽起來像很底層的工程細節,實際上卻會直接影響你使用模型的方式。模型的 context window 通常是以 token 計算,不是以「幾頁文件」計算;API 計價也常跟輸入、輸出的 token 數量有關。你丟進去的對話、文件、system prompt 和模型剛剛自己產生的內容,都可能占用這個上下文空間。
「猜下一個 token」為什麼可以變得這麼複雜?
如果只聽「預測下一個 token」,很容易覺得這不就是手機鍵盤的自動完成,只是比較大而已。差別在於規模和模型能利用的上下文。模型要把下一個 token 猜得夠準,不能只記得「今天天氣」後面常接「很好」。碰到程式碼,它得掌握括號、變數和語法的關係;碰到推理題,它得從前面的條件維持一致;碰到不同語言,它還要從大量例子裡學到各自的結構與彼此之間的對應。
當訓練資料、模型容量和計算量一路放大,下一個 token 預測這件事會逼模型去學很多比表面更深的規律。語法、事實關聯、程式模式、文字風格,甚至某些可以拿來完成推理任務的中間表示,都可能在這個訓練目標底下慢慢形成。所以說 LLM「只是猜下一個字」沒有完全錯,但很容易把真正重要的部分省略掉:它是在一個非常大的表示空間裡,根據整段上下文做機率預測。
Transformer 為什麼一直出現在 LLM 裡?
現在主流 LLM 多半建立在 Transformer 架構上。Transformer 在 2017 年的〈Attention Is All You Need〉論文中被提出,核心之一是 attention:模型在處理某個位置時,可以根據目前任務去計算其他位置有多重要,而不是只能把句子從頭一路讀到尾,再期待前面的資訊不要丟掉。
這不是說 Transformer 真的像人在「注意」某句話。Attention 在這裡是一套數學運算,讓模型能有效建立 token 之間的關係。當層數、參數和資料量夠大,很多層這樣的運算疊在一起,模型便能形成非常複雜的內部表示。LLM 裡的「Large」也沒有一條全世界共同接受的參數門檻,它比較是在描述這一類模型相較於早期語言模型,在參數、資料與訓練計算上的大規模化。
訓練和你現在聊天,是兩件不同的事
模型在真正拿來使用以前,通常先經過預訓練。訓練系統拿大量 token 序列給模型,讓它反覆預測缺少或接下來的內容,再根據錯誤調整參數。這個過程跑非常多次之後,原本幾乎隨機的模型,才慢慢學出語言和資料裡的規律。後續還可能經過 instruction tuning、fine-tuning、偏好學習或其他對齊流程,讓它更適合按照人的指令工作。
等你真的在聊天框輸入問題時,通常已經不是在重新訓練模型,而是在做 inference,也就是推論。你的文字被轉成 token,加上這次對話裡的其他上下文送進模型;模型計算下一個 token,選出一個,再把新 token 放回上下文繼續算。這個循環一直重複,直到回答結束。
你的輸入 → 推論 → 產生 token → 再推論 → 繼續生成
那模型的「知識」到底放在哪裡?
一部分規律和資訊會在訓練過程中被編碼進大量參數,但不能把它們想成硬碟裡一篇篇文章。你通常無法指著模型某個參數說「這裡存的是台北 101 的高度」,也不能期待它像 SQL 資料庫那樣,某個值存過就一定能精準讀回。模型學到的是分散在許多參數與內部表示中的統計關係。
這也解釋了為什麼模型可以把幾個概念重新組合、用沒看過的句子回答,卻同時可能把細節拼錯。它不是每次回答都去查一份權威資料,而是在目前的上下文和已學到的參數上,產生看起來最合理的下一段內容。如果一個錯誤敘述在語言上很順,它仍然可能被生成出來。
Hallucination 不是一個額外裝進去的 bug
這就是大家常說的 hallucination,中文常叫幻覺。模型可能捏造不存在的論文、把兩個人的經歷混在一起,或在不知道答案時仍然生成一段很像答案的文字。它不是先查到「沒有資料」,再故意亂講;很多時候,生成機制本來就在要求模型繼續產生下一個合理 token。
因此,遇到需要最新、精確或可追溯的知識時,光靠模型參數通常不夠。系統可能加入搜尋、RAG、資料庫或其他工具,把外部資料放進這次的上下文裡,再要求模型根據來源回答。這也是為什麼「LLM」和「完整 AI 產品」不能直接畫上等號:你使用的聊天服務,外面往往還包了搜尋、工具、記憶、權限、安全規則和介面。
LLM 是模型,不是整個產品。Chatbot 可以把 LLM 包在對話介面裡;Agent 可以讓 LLM 決定何時呼叫工具;RAG 可以在推論前替它找資料。這些是不同層次的東西。
所以 LLM 到底算不算「理解」?
這個問題很容易從工程一路吵到哲學。從實用角度看,LLM 的內部表示顯然可以支援翻譯、摘要、程式設計和大量需要上下文的任務;但把這些能力直接等同於人類的理解、意識或思考方式,又會多跨一步。工程上比較安全的做法,是先描述我們真正能觀察的東西:它接受 token、利用上下文與參數計算機率,並表現出某些可以完成任務的能力。
知道這層之後,很多 AI 名詞也會突然比較容易放回正確的位置。Fine-tuning 是繼續調整模型;RAG 是在回答前補外部資料;Agent 是在模型外面加入目標、工具和迴圈;Context window 則決定這一次推論能直接放多少內容。它們不是四種不同的 AI,而是在同一套系統裡處理不同問題。
所以下次看到「LLM」時,不用先把它想成一顆裝滿全世界知識的電子腦。比較準確的起點是:它是一個經過大規模訓練、能根據上下文預測並生成 token 的語言模型。
真正有趣的地方,是這麼簡單的訓練目標,在足夠大的模型與資料上,最後長出了遠比「自動接字」複雜得多的能力。
延伸閱讀
如果想往技術來源繼續看,可以從 Google Cloud 的 Large Language Models (LLMs) 概覽開始;Transformer 的原始架構則可以看 2017 年的 Attention Is All You Need。