本課講 2015 年的一篇文章。科學家 Karpathy 教電腦玩一個猜字遊戲,結果電腦自己學會了寫文章。
先玩個遊戲。讀前面的字,在橫線上寫出下一個字。
是不是很容易?因為這些話你聽過很多遍,記住了哪個字後面常常跟著哪個字。
再試一句:「我今天吃了一個大」。這次答案不止一個。可能是「蘋」,可能是「西」,也可能是「包」。要猜對,得知道前面在講什麼。
Karpathy 讓電腦玩的,就是這個遊戲。規則只有 4 步:
↻ 換下一個字,重複幾百萬次
一開始,電腦完全是瞎猜。練得越多,它猜得越準。下面是一臺電腦練習寫故事時的樣子(示意):
這個過程叫訓練。就像你練鋼琴,一開始彈得亂七八糟,練多了就順了。
只看前一個字,是猜不準的。剛才「吃了一個大____」就是例子。
所以這個電腦程序帶著一個小本子。它每讀一個字,就在本子上記一筆,比如:
· 「現在在講吃的東西。」
· 「前面打開了一個引號,還沒關上。」
讀下一個字時,它先翻翻小本子,再去猜。這種帶著小本子、一個字一個字往下讀的程序,有個大名字,叫循環神經網絡。「循環」的意思是:讀一個字,記一筆,再讀一個字,再記一筆,一圈一圈地重複。
Karpathy 給電腦讀了不同的東西,每次都從頭練。結果是這樣:
| 給它讀什麼 | 它學會寫什麼 |
|---|---|
| 莎士比亞寫的劇本 | 像模像樣的劇本,有人物名字,有臺詞 |
| 維基百科(網上的大百科) | 帶標題、帶鏈接的「百科文章」 |
| 數學書 | 看起來很專業的數學公式 |
| 電腦程序 | 格式整齊的「程序代碼」 |
它寫出來的東西,樣子很像,意思不通。比如,學了劇本的電腦可能會寫出這樣一句臺詞(我們編的例子):
國王:我的馬在月亮裡喝茶,因為明天是星期紅色。
格式對,語氣也像國王,可是意思完全亂了。就像小朋友學大人打電話,語氣學得很像,說的話卻沒有意義。
沒有人告訴電腦「引號要成對」「句子末尾要加句號」。它只是一直練習猜下一個字。為了猜得準,它自己摸索出了這些規矩。
科學家打開電腦的「大腦」看了看,發現裡面有些小零件給自己找了專門的工作。有一個零件專門盯著引號:引號一打開,它就亮;引號一關上,它就滅。
示意圖:黃色小燈就是那個「引號零件」。引號裡面的字,它都亮著。
還有零件專門數一行寫了多長,快寫到頭了就提醒「該換行了」。這些工作誰也沒分配,是它們自己學會的。
你聽說過 ChatGPT、Claude 這些會聊天的 AI 嗎?它們做的還是同一件事:猜下一個字。
區別有兩個:它們的「大腦」大了很多很多倍,讀過的書也多了很多很多倍。所以,這篇 2015 年的文章就像一顆種子。10 年後,它長成了今天的聊天 AI。
1. A 偷偷在紙上寫一句話,8 到 12 個字。用別的紙蓋住。
2. A 露出第 1 個字。B 猜第 2 個字。
3. 猜對了,在下面畫一個 ✓;猜錯了,畫一個 ✗。然後 A 露出正確的字。
4. B 接著猜下一個字,直到整句揭開。換人再玩一輪。
| 第幾個字 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 第 1 輪 | |||||||||||
| 第 2 輪 |
你會發現:越往後,猜對的越多。因為前面揭開的字越多,你的「小本子」裡記的線索就越多。電腦也是這樣。
電腦靠「讀得多」學會猜字。我們也來讀一小段,數一數「小」字後面跟著什麼字。
小明有一隻小狗。小狗喜歡跟著小明去小河邊。小河裡有小魚,小狗看見小魚就叫。小明說:「小狗,別叫啦!」
| 「小」後面的字 | 出現了幾次(畫正字) |
|---|---|
| 明 | |
| 狗 | |
| 河 | |
| 魚 |
數完了,回答:下次再看到「小」字,你會先猜哪個字?
電腦做的事情很像這個,只是它一次讀的不是一段話,而是幾百萬段話,而且它會同時看前面很多個字。
給家長和老師:本課講的是 Andrej Karpathy 2015 年的博文 The Unreasonable Effectiveness of Recurrent Neural Networks。文章用字符級循環神經網絡(char-RNN)生成莎士比亞劇本、維基百科、LaTeX 和 Linux 代碼,並發現了能追蹤引號、行長的可解釋神經元。
講義中的「練習過程」「國王臺詞」「引號小燈」都是示意,不是原文內容。想深入可看本站的 第 1 天中文導讀,代碼見開源項目 30u30 第 1 天目錄(英文)。
極客教育 jikejiao.com 原創講義 · 2026-10