本课讲 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