AI从何而来:一段技术演进史
如果要聊ai的发展历程,就得先看看它诞生前的技术环境。毕竟ai并不是凭空出现的,更不是一落地就能侃侃而谈、无所不能。
在2017年之前,如果希望ai处理一段文本,例如翻译一句话,或者判断一句表达是否合理,几乎只有一种主流方案:循环神经网络(RNN)。那RNN是怎么工作的呢?它会按词逐个读取,每读入一个新词,就把前面词的信息压缩进一个固定大小的“记忆向量”里,然后继续向后处理。听上去似乎挺合理,但实际上问题非常多。
第一,容易遗忘。让RNN读一篇文章,等它看到第50个词时,第一个词的信息往往早已模糊不清,记忆能力很弱。只要文本一长,RNN的表现就会明显下滑。这种现象有个专业名字,叫“长期依赖问题”,它长期困扰着整个领域。
第二,速度慢。RNN必须按照顺序一个词一个词地处理,后一个词必须等前一个词算完才能继续,它天然是串行的。这就意味着,无论你给它堆多少GPU,本质上也还是得一步一步算。
第三,表达单一。那时候的词向量方法,通常是给每个词分配一个固定向量,也就是说一个词往往只有一种表示。但很多词本来就有多重含义,尤其中文语义丰富、语境复杂,像“行行行行”这种表达,它几乎不可能真正弄明白。
这三个难题存在了很久,研究者也尝试过许多改进办法,但始终没能从根本上把问题解决掉。
直到某一天,2017年6月,一篇论文的出现彻底改变了局面。
2017年6月12日,谷歌的八位研究人员在arXiv上提交了一篇论文,题目只有一句:Attention Is All You Need(你只需要注意力)。
这篇论文最核心的观点是:RNN那种逐词处理的方式其实并非必须,真正关键的是注意力机制。
那什么叫注意力机制?简单理解就是,模型在处理某个词时,不再只依赖前面几个词压缩出来的“记忆包”,而是可以同时关注整段话中的所有词,并自己学习哪些词更关键、哪些词没那么重要。
比如在处理“苹果”这个词时,模型会把整句话都扫一遍,发现“发布”和“手机”与它联系最紧密,于是会给这两个词更高的权重,从而推断这里的“苹果”说的是公司而不是水果。当然,这依然只是推断,直到今天,ai模型本质上仍是在做概率猜测。它并不真正理解苹果究竟是什么、味道如何、手机体验怎样,它只是更高概率地猜对“苹果”此处指的是手机品牌。这种新架构就叫“Transformer”。
而这个架构,恰好解决了前面提到的那三个问题。
不过说实话,2017年这篇论文刚出来时,很多人的第一反应只是“机器翻译又提升了一点指标”。因为论文里的实验主要还是英德、英法翻译任务,几乎没人能预料到,这套架构后来会成为整个ai时代的地基。
这里顺便说个题外话,为什么ai训练通常要用GPU,而不是CPU?一句话,因为ai需要处理的是海量但相对简单的计算任务,GPU天生就适合这种工作。CPU像一个教授,能力很强,但一次只能专心处理少数任务;GPU则更像成千上万个小学生,单个能力一般,但数量极多,可以同时干活。ai的本质就是大规模、重复性的并行运算,这和GPU渲染图像时同时计算几百万像素颜色,本质上属于同一类任务。说到这里,就绕不开一个人——黄仁勋。这个仿佛提前看到了未来的人,最初GPU只是为游戏服务,但他做了一个极其关键的决定:让GPU不只用于游戏,而是变成通用并行计算平台。2006年,英伟达推出了CUDA架构,简单说,就是可以直接通过编程去调用GPU的并行算力。之后的故事大家也都知道了,他几乎踩中了ai发展的每个关键节点,最终站上了时代风口。
那篇论文问世之后,整个社区都开始探索:这个新架构到底还能做什么?
谷歌内部有一部分人开始思考:Transformer的编码器部分,也就是偏向“理解”的那一块,能力非常强,那它能不能不只是做翻译,而是真正去理解语言本身?
于是到了2018年10月,谷歌推出了BERT。BERT是一种预训练模型,采用的是掩码语言模型。简单来说,就是把一句话中的某些词遮住,让模型去猜被挡住的内容是什么。
比如:“今天天气不*,我们出去*步吧”,让模型推测中间应该填什么。
这种训练方式非常巧妙,因为模型只有真正理解上下文,才能把词猜对。它既能看前文,也能看后文,因此对语言的把握会更深入。而BERT真正伟大的地方,不只是模型本身,更在于它确立了一种范式:预训练+微调。
在那之前,NLP领域的典型做法是:如果你想做情感分析,就得先标注一批情感数据来训练;如果你想做问答系统,就得再标注一批问答数据。几乎每个任务都要从头开始,每个任务都离不开大量人工标注。
BERT的思路则是,先利用海量无标注文本做预训练,也就是前面说的“猜词游戏”,先学到通用的语言理解能力,然后再在下游任务上用少量标注数据进行微调。
NLP社区一下子沸腾了,大家很快意识到:预训练+微调实在太有效了,这几乎就是标准解法。从那以后,NLP的发展路径几乎只剩下一条:先做一个大规模预训练模型,再针对不同任务进行微调。
而就在BERT发布前三个月,也就是2018年6月,OpenAI推出了自己的预训练语言模型——GPT-1。
GPT-1和BERT选择的是完全不同的路线:BERT重在理解,GPT重在生成。
GPT-1的训练方式是:给出前半句,预测下一个词。比如“今天天气很*”,模型去预测后面的内容,然后再从左到右一步步生成。
现在回过头看,这条路线似乎才是最终赢家。今天的GPT-4、Claude等模型,基本都沿着这条路在发展。但放在当时,选择这条路径其实很需要勇气,因为:
那时主流观点普遍认为,理解比生成更重要。毕竟NLP最常见的任务是分类、抽取、匹配,这些都依赖较强的理解能力。从信息利用的角度看,双向注意力显然比单向注意力能获取更完整的上下文。而且早期GPT的生成效果也比较一般,所以当时的局面是BERT风头无两,GPT并不起眼。
但OpenAI从一开始就相信,理解终究是被动的,再强的理解能力也只是一个被动工具;只有持续增强生成能力,模型才可能迈向真正的智能体。后来的事实证明,他们的判断是对的。某种意义上看,也能从中得到一点启发:只有主动产出,才更可能带来跃升;仅仅停留在被动理解,进步往往会慢一些。
与此同时,中国也开始加快布局国产预训练模型。
2019年,百度发布了ERNIE,在BERT的基础上引入了知识图谱信息。比如像“李彦宏是百度CEO”这样的外部知识,不再只依赖文本本身学习,而是让模型同时利用结构化知识。这也说明,中文场景确实需要更适合自己的预训练策略。
这些探索大多发生在2019年,但其实早在2018年,业界就已经意识到“预训练+微调”会成为不可逆的主流方向,于是纷纷开始布局自己的中文预训练模型。
总体来看,2017到2018年间,中国在NLP领域仍然处于跟跑阶段,无论算力还是数据规模,与领先者都有明显差距。不过那时种子已经埋下。两年后,中国出现了自己的大模型;四年后,迎来了百模竞逐;七年后,DeepSeek以557万美元成本震动全球。