JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

唯一的核心想法:猜下一個字

大型語言模型所做的一切,都源自一個小把戲——預測接下來會出現什麼文字。本篇說明為什麼這個把戲,遠比聽起來強大得多。

用白話講「語言建模」

把行銷話術剝掉,大型語言模型其實在做一件數學工作,叫做語言建模(language modeling):給定一段文字,估計每一個「可能的下一個字」各有多大機率。「天空是__」會讓「藍的」機率很高、「掉下來的」機率中等,而「冰箱」幾乎不可能。一個能對任何文字、把這些可能性評分評得好的模型,就是一個語言模型(language model)。

這個想法很古老。早期的語言模型只是簡單的 n 連詞(n-gram)計數器,純粹統計「哪些字常接在哪些字後面」。它們對短語還行,但碰到較長或細膩的內容就崩潰了。大型語言模型改變的是預測的「品質」:規模一夠大,要把下一個字預測得好,模型就被迫去掌握意義、文法、事實、語氣與脈絡——而不只是表面的字詞配對。

P(w_1,\ldots,w_n)=\prod_{t=1}^{n}P\!\left(w_t \mid w_1,\ldots,w_{t-1}\right)

语言建模把整段文本拆解为一连串“下一个词”的概率。

逐步看「下一個詞元預測」

大型語言模型在寫東西時,並不是一口氣寫出整個答案。它一遍又一遍地做下一個詞元預測(next-token prediction):看完目前為止的所有文字,預測「最貼切的下一小段」,把它接上去,然後再看一次——這次連同它剛剛寫出的那一小段一起看。(「詞元」(token)大致是一個字或字的一小片,我們稍後會正式認識它;現在你就讀成「下一小段文字」即可。)

  1. 讀取提示,以及目前為止已生成的全部內容。
  2. 替每一個候選的下一個詞元評分,看它有多合適。
  3. 挑出一個(通常是高分的),把它接到文字後面。
  4. 從步驟 1 重複,直到答案完成為止。
自回归生成:每个新词元都被预测、追加,再喂回模型——这正是你看到文本逐字流出时运行的循环。

自回归循环示意图:上下文输入模型,采样出下一个词元并追加到上下文,然后循环重复。

它是一台文字完成引擎

正因為有這個循環,描述底層機器最乾淨的說法,就是一台文字完成引擎(text-completion engine):給它任何文字,它就把它延伸下去。這把每一項任務都重新框成「完成」。「翻成法文:Hello」被完成為「Bonjour」;「替這篇文章寫摘要:……」被完成為一段摘要。一個問題,不過就是「最自然的接續恰好是答案」的一段文字。就是這個把戲——完成——撐起了一切。

在补全任何内容之前,这台引擎先把文本切分成词元、映射为编号,再变成它可以续写的嵌入向量。

示意图:一句话被切分成词元,每个词元映射到一个数字编号,每个编号再对应一个嵌入向量。

這樣看來,從自動完成到大型語言模型故事裡與手機鍵盤的親緣關係,是精確相符的,而不只是個比喻。鍵盤完成你的句子;大型語言模型完成你的文件、你的問題,或你的整段對話。形狀相同,規模天差地遠。

為什麼「猜字」就能換來這麼多

接下來這部分會讓人意外。要在「各種」人類文字裡都把下一個字預測好,模型就不得不暗中學會驚人多的東西。要把一段數學推導寫完,它得追蹤那些數字;要完成一份法律文件裡的句子,它得遵守那種語域;要正確回答一道冷知識,它得早已把那個事實存起來。把「預測」逼到夠高的標準、橫跨夠多的文字,就悄悄迫使模型習得了沒人手動寫進去的種種技能。

這就是大型語言模型、以及每一個生成式文字模型背後那個安靜的奇蹟:一個看似乏味的目標——預測下一個詞元——一旦你把這個預測器做得夠大、餵進夠多世上的文字,竟然成了通往寫作、推理與對話的一道門。把這點放在口袋裡隨身帶著;其餘幾乎所有東西,都只是它的精細展開。

仅仅通过预测邻近的词,模型就学到了让含义变成几何关系的向量——著名的例子是 国王 − 男人 + 女人 ≈ 女王。

词向量的排布让类比变成向量运算,图示“国王减男人加女人”落在“女王”附近。