机器之心的进化 / 理解 AI 驱动的软件 2.0 智能革命[size=1.8]本文将带你领略一次人工智能领域波澜壮阔的发展史,从关键人物推动的学术进展、算法和理念的涌现、公司和产品的进步、还有脑科学对神经网络的迭代影响,这四个维度来深刻理解“机器之心的进化”。先忘掉那些花里胡哨的图片生产应用,我们一起来学习点接近 AI 本质的东西。
The Evolution of Machine Intelligence
就在过去几个月里,因为美联储的加息,科技公司的资本狂欢宣告结束,美国上市的 SaaS 公司股价基本都跌去了 70%,裁员与紧缩是必要选项。但正当市场一片哀嚎的时候,[color=var(--ghost-accent-color)] Dall-E 2 发布了,紧接着就是一大批炫酷的 AI 公司登场。这些事件在风投界引发了一股风潮,我们看到那些兜售着基于生成式 AI([color=var(--ghost-accent-color)] Generative AI)产品的公司,估值达到了数十亿美元,虽然收入还不到百万美元,也没有经过验证的商业模式。不久前,同样的故事在 Web 3 上也发生过!感觉我们又将进入一个全新的繁荣时代,[color=var(--ghost-accent-color)] 但人工智能这次真的能带动科技产业复苏么? 本文将带你领略一次人工智能领域波澜壮阔的发展史,从关键人物推动的学术进展、算法和理念的涌现、公司和产品的进步、还有脑科学对神经网络的迭代影响,这四个维度来深刻理解“机器之心的进化”。先忘掉那些花里胡哨的图片生产应用,我们一起来学习点接近 AI 本质的东西。全文共分为六个章节: - AI 进化史 - 前神经网络时代、机器学习的跃迁、开启潘多拉的魔盒
- 软件 2.0 的崛起 - 软件范式的转移和演化、Software 2.0 与 Bug 2.0
- 面向智能的架构 - Infrastructure 3.0、如何组装智能、智能架构的先锋
- 一统江湖的模型 - Transformer 的诞生、基础模型、AI 江湖的新机会
- 现实世界的 AI - 自动驾驶新前沿、机器人与智能代理
- AI 进化的未来 - 透视神经网络、千脑理论、人工智能何时能通用?
文章较长,累计 28000 字,请留出一小时左右的阅读时间,欢迎先收藏再阅读!文中每一个链接和引用都是有价值的,特别作为衍生阅读推荐给大家。
阅读之前先插播一段视频 Elon Musk 和 Jack Ma 在 WAIC 2019 关于人工智能的对谈的经典老视频,全程注意 Elon Ma 的表情❓❓大家觉得机器智能能否超过人类么?带着这个问题来阅读,相信看完就会有系统性的答案!
[size=0.85em]0:00[color=rgba(255, 255, 255, 0.6)][size=0.85em]/0:44
1×
Elon Musk 和 Jack Ma 在 WAIC 2019
1、AI 进化史
对于机器是否真能 "知道"、"思考 "等问题,我们很难严谨的定义这些。我们对人类心理过程的理解,或许只比鱼对游泳的理解更好一点。
- [color=var(--ghost-accent-color)]John McCarthy 早在 1945 年,[color=var(--ghost-accent-color)] Alan Turing 就已经在考虑如何用计算机来模拟人脑了。他设计了 ACE([color=var(--ghost-accent-color)] Automatic Computing Engine - 自动计算引擎)来模拟大脑工作。[color=var(--ghost-accent-color)] 在给一位同事的信中写道:"与计算的实际应用相比,我对制作大脑运作的模型可能更感兴趣 ...... 尽管大脑运作机制是通过轴突和树突的生长来计算的复杂神经元回路,但我们还是可以在 ACE 中制作一个模型,允许这种可能性的存在,ACE 的实际构造并没有改变,它只是记住了数据 ......" 这就是 机器智能 的起源,至少那时在英国都这样定义。 1.1 前神经网络时代
神经网络 是以模仿人脑中的 神经元 的运作为 模型 的计算机系统。 AI 是伴随着神经网络的发展而出现的。 1956 年,美国心理学家 [color=var(--ghost-accent-color)] Frank Rosenblatt 实现了一个早期的神经网络演示 - 感知器模型([color=var(--ghost-accent-color)] Perceptron Model),该网络通过监督学习的方法将简单的图像分类,如三角形和正方形。这是一台只有八个模拟神经元的计算机,这些神经元由马达和转盘制成,与 400 个光探测器连接。 配图01:Frank Rosenblatt & Perceptron ModelIBM 的 Georgetown 实验室在这些研究的基础上,实现了最早的机器语言翻译系统,可以在英语和俄语之间互译。 1956 年的夏天,在 [color=var(--ghost-accent-color)] Dartmouth College 的一次会议上, AI 被定义为计算机科学的一个研究领域,[color=var(--ghost-accent-color)] Marvin Minsky(明斯基), [color=var(--ghost-accent-color)] John McCarthy(麦卡锡), [color=var(--ghost-accent-color)] Claude Shannon(香农), 还有 [color=var(--ghost-accent-color)] Nathaniel Rochester(罗切斯特)组织了这次会议,他们后来被称为 AI 的 "奠基人"。 配图02:[color=var(--color-darker-gray)]Participants of the 1956 Dartmouth Summer Research Project on AI美国国防高级研究计划局([color=var(--ghost-accent-color)] DARPA)在这个“黄金”时期,将大部分资金投入到 AI 领域,就在十年后他们还发明了 [color=var(--ghost-accent-color)]ARPANET(互联网的前身)。早期的 AI 先驱们试图教计算机做模仿人类的复杂心理任务,他们将其分成五个子领域: 推理、 知识表述、 规划、 自然语言处理([color=var(--ghost-accent-color)] NLP)和 感知,这些听起来很笼统的术语一直沿用至今。 从专家系统到机器学习 1966 年,[color=var(--ghost-accent-color)] Marvin Minsky 和 [color=var(--ghost-accent-color)] Seymour Papert 在《[color=var(--ghost-accent-color)] 感知器:计算几何学导论》一书中阐述了因为硬件的限制,只有几层的神经网络仅能执行最基本的计算,一下子浇灭了这条路线上研发的热情,AI 领域迎来了第一次泡沫破灭。这些先驱们怎么也没想到,计算机的速度能够在随后的几十年里指数级增长,提升了上亿倍。 在上世纪八十年代,随着电脑性能的提升,新计算机语言 Prolog & Lisp 的流行,可以用复杂的程序结构,例如条件循环来实现逻辑,这时的人工智能就是 专家系统([color=var(--ghost-accent-color)] Expert System),[color=var(--ghost-accent-color)] iRobot 公司绝对是那个时代明星;但短暂的繁荣之后,硬件存储空间的限制,还有专家系统无法解决具体的、难以计算的逻辑问题,人工智能再一次陷入窘境。 我怀疑任何非常类似于形式逻辑的东西能否成为人类推理的良好模型。
- Marvin Minsky 直到 IBM 深蓝在 1997 年战胜了国际象棋冠军卡斯帕罗夫后,新的基于 概率推论([color=var(--ghost-accent-color)] Probabilistic Reasoning)思路开始被广泛应用在 AI 领域,随后 [color=var(--ghost-accent-color)] IBM Watson 的项目使用这种方法在电视游戏节目《[color=var(--ghost-accent-color)] Jeopardy》中经常击败参赛的人类。 概率推论就是典型的 机器学习([color=var(--ghost-accent-color)] Machine Learning)。今天的大多数 AI 系统都是由 ML 驱动的,其中预测模型是根据历史数据训练的,并用于对未来的预测。这是 AI 领域的第一次范式转变,学习算法不是指定如何解决一个任务,而是根据数据来诱导它,动态的达成目标。因为有了 ML,才有了 大数据([color=var(--ghost-accent-color)] Big Data)这个概念。 1.2 机器学习的跃迁
机器学习算法一般通过分析数据和推断模型来建立参数,或者通过与环境互动,获得反馈来学习。人类可以注释这些数据,也可以不注释,环境可以是模拟的,也可以是真实世界。 Deep Learning 深度学习([color=var(--ghost-accent-color)] Deep Learning)是一种 机器学习 算法,它使用多层神经网络和反向传播([color=var(--ghost-accent-color)] Backpropagation)技术来训练神经网络。该领域是几乎是由 [color=var(--ghost-accent-color)] Geoffrey Hinton 开创的,早在 1986 年,Hinton 与他的同事一起发表了关于深度神经网络(DNNs - [color=var(--ghost-accent-color)] Deep Neural Networks)的开创性论文,这篇文章引入了 反向传播 的概念,这是一种调整权重的算法,每当你改变权重时,神经网络就会比以前更快接近正确的输出,可以轻松的实现多层的神经网络,突破了 1966 年 Minsky 写的 感知器局限 的魔咒。 配图03:Geoffrey Hinton & Deep Neural Networks深度学习在 2012 年才真正兴起,当时 Hinton 和他在多伦多的两个学生表明,使用反向传播训练的深度神经网络在图像识别方面击败了最先进的系统,几乎将以前的错误率减半。由于他的工作和对该领域的贡献,Hinton 的名字几乎成为深度学习的代名词。 数据是新的石油 深度学习是一个革命性的领域,但为了让它按预期工作,需要数据。而最重要的数据集之一,就是由 [color=var(--ghost-accent-color)] 李飞飞 创建的 [color=var(--ghost-accent-color)] ImageNet。曾任斯坦福大学人工智能实验室主任,同时也是谷歌云 AI/ML 首席科学家的李飞飞,早在 2009 年就看出数据对机器学习算法的发展至关重要,同年在计算机视觉和模式识别([color=var(--ghost-accent-color)] CVPR)上发表了相关论文。 配图04:FeiFei Li & ImageNet该数据集对研究人员非常有用,正因为如此,它变得越来越有名,为最重要的年度深度学习竞赛提供了基准。仅仅七年时间,ImageNet 让获胜算法对图像中的物体进行分类的准确率从 72% 提高到了 98%,超过了人类的平均能力。 ImageNet 成为深度学习革命的首选数据集,更确切地说,是由 Hinton 领导的 [color=var(--ghost-accent-color)] AlexNet 卷积神经网络(CNN - [color=var(--ghost-accent-color)] Convolution Neural Networks)的数据集。ImageNet 不仅引领了深度学习的革命,也为其他数据集开创了先例。自其创建以来,数十种新的数据集被引入,数据更丰富,分类更精确。 神经网络大爆发 在深度学习理论和数据集的加持下, 2012 年以来深度神经网络算法开始大爆发,卷积神经网络(CNN)、递归神经网络(RNN - [color=var(--ghost-accent-color)] Recurrent Neural Network)和长短期记忆网络(LSTM - [color=var(--ghost-accent-color)] Long Short-Term Memory)等等,每一种都有不同的特性。例如,递归神经网络是较高层的神经元直接连接到较低层的神经元。 来自日本的计算机研究员福岛邦彦([color=var(--ghost-accent-color)] Kunihiko Fukushima)根据人脑中视觉的运作方式,创建了一个人工神经网络模型。该架构是基于人脑中两种类型的神经元细胞,称为简单细胞和复杂细胞。它们存在于初级视觉皮层中,是大脑中处理视觉信息的部分。简单细胞负责检测局部特征,如边缘;复杂细胞汇集了简单细胞在一个区域内产生的结果。例如,一个简单细胞可能检测到一个椅子的边缘,复杂细胞汇总信息产生结果,通知下一个更高层次的简单细胞,这样逐级识别得到完整结果。 配图05:深度神经网络如何识别物体([color=var(--color-darker-gray)]TensorFlow Demo)CNN 的结构是基于这两类细胞的级联模型,主要用于模式识别任务。它在计算上比大多数其他架构更有效、更快速,在许多应用中,包括自然语言处理和图像识别,已经被用来击败大多数其他算法。我们每次对大脑的工作机制的认知多一点,神经网络的算法和模型也会前进一步! 1.3 开启潘多拉的魔盒
从 2012 到现在,深度神经网络的使用呈爆炸式增长,进展惊人。现在机器学习领域的大部分研究都集中在深度学习方面,就像进入了潘多拉的魔盒被开启了的时代。 配图06:AI 进化史GANs 生成对抗网络(GAN - [color=var(--ghost-accent-color)] Generative Adversarial Network) 是深度学习领域里面另一个重要的里程碑,诞生于 2014 年,它可以帮助神经网络用更少的数据进行学习,生成更多的合成图像,然后用来识别和创建更好的神经网络。GANs 的创造者 [color=var(--ghost-accent-color)] Ian Goodfellow 是在蒙特利尔的一个酒吧里想出这个主意的,它由两个神经网络玩着猫捉老鼠的游戏,一个创造出看起来像真实图像的假图像,而另一个则决定它们是否是真的。 配图07:GANs 模拟生产人像的进化GANs 将有助于创建图像,还可以创建现实世界的软件模拟,Nvidia 就大量采用这种技术来增强他的[color=var(--ghost-accent-color)] 现实模拟系统,开发人员可以在那里训练和测试其他类型的软件。你可以用一个神经网络来“压缩”学习图像,另一个神经网络来生成原始视频或图像,而不是直接压缩数据,Demis Hassabis 在他的一篇论文中就提到了人类大脑“海马体”的记忆回放也是类似的机制。 大规模神经网络 大脑的工作方式肯定不是靠某人用规则来编程。
- Geoffrey Hinton 大规模神经网络的竞赛从成立于 2011 年的 [color=var(--ghost-accent-color)] Google Brain 开始,现在属于 Google Research。他们推动了 [color=var(--ghost-accent-color)] TensorFlow 语言的开发,提出了万能模型 Transformer 的技术方案并在其基础上开发了 [color=var(--ghost-accent-color)] BERT,我们在第四章中将详细讨论这些。 在 2014 年被 Google 以 5.25 亿美元收购的 [color=var(--ghost-accent-color)] DeepMind 是这个时代的传奇。它专注游戏算法,其使命是 "解决智能问题",然后用这种智能来 "解决其他一切问题"!DeepMind 的团队开发了一种新的算法 [color=var(--ghost-accent-color)] Deep Q-Network (DQN),它可以从经验中学习。 2015 年 10 月 [color=var(--ghost-accent-color)] AlphaGo 项目首次在围棋中击败人类冠军李世石;之后的 [color=var(--ghost-accent-color)] AlphaGo Zero 用新的可以自我博弈的改进算法让人类在围棋领域再也无法翻盘。 另一个传奇 [color=var(--ghost-accent-color)] OpenAI,它是一个由 Elon Musk, [color=var(--ghost-accent-color)] Sam Altman, [color=var(--ghost-accent-color)] Peter Thiel, 还有 [color=var(--ghost-accent-color)] Reid Hoffman 在 2015 年共同出资十亿美金创立的科研机构,其主要的竞争对手就是 DeepMind。OpenAI 的使命是 通用人工智能(AGI – [color=var(--ghost-accent-color)] Artificial General Intelligence),即一种高度自主且在大多数具有经济价值的工作上超越人类的系统。 2020 年推出的 [color=var(--ghost-accent-color)] GPT-3 是目前最好的自然语言生成工具(NLP - [color=var(--ghost-accent-color)] Natural Language Processing)之一,通过它的 API 可以实现自然语言同步翻译、对话、撰写文案,甚至是代码([color=var(--ghost-accent-color)] Codex),以及现在最流行的生成图像([color=var(--ghost-accent-color)] DALL·E)。 Gartner AI HypeCycle Gartner 的技术炒作周期(HypeCycle)很值得一看,这是他们 2022 年最新的关于 AI 领域下各个技术发展的成熟度预估,可以快速了解 AI 进化史 这一章中不同技术的发展阶段。 配图08:[color=var(--color-darker-gray)]Gartner AI HypeCycle 2022
神经网络,这个在上世纪 60 年代碰到的挫折,然后在 2012 年之后却迎来了新生。 反向传播 花了这么长时间才被开发出来的原因之一就是该功能需要计算机进行 乘法矩阵运算。在上世纪 70 年代末,世界上最强的的超级电脑之一 [color=var(--ghost-accent-color)] Cray-1,每秒浮点运算速度 50 MFLOP,现在衡量 GPU 算力的单位是 TFLOP(Trillion [color=var(--ghost-accent-color)] FLOPs),Nvidia 用于数据中心的最新 GPU [color=var(--ghost-accent-color)] Nvidia Volta 的性能可以达到 125 TFLOP,单枚芯片的速度就比五十年前世界上最快的电脑强大 250 万倍。 技术的进步是多维度的,一些生不逢时的理论或者方法,在另一些技术条件达成时,就能融合出巨大的能量。
2、软件 2.0 的崛起
未来的计算机语言将更多地关注目标,而不是由程序员来考虑实现的过程。
- [color=var(--ghost-accent-color)]Marvin Minsky [color=var(--ghost-accent-color)] Software 2.0 概念的最早提出人是 [color=var(--ghost-accent-color)] Andrej Karpathy,这位从小随家庭从捷克移民来加拿大的天才少年在多伦多大学师从 Geoffrey Hinton,然后在斯坦福李飞飞团队获得博士学位,主要研究 NLP 和计算机视觉,同时作为创始团队成员加入了 [color=var(--ghost-accent-color)] OpenAI,深度学习的关键人物和历史节点都被他点亮。在 2017 年被 Elon Musk 挖墙脚到了 Tesla 负责自动驾驶研发,然后就有了重构的 FSD([color=var(--ghost-accent-color)] Full Self-Driving)。 按照 Andrej Karpathy 的定义 - “软件 2.0 使用更抽象、对人类不友好的语言生成,比如神经网络的权重。没人参与编写这些代码,一个典型的神经网络可能有数百万个权重,用权重直接编码比较困难”。Andrej 说他以前试过,这几乎不是人类能干的事儿 。。 配图09:Andrej Karpathy 和神经网络权重
2.1 范式转移
在创建深度神经网络时,程序员只写几行代码,让神经网络自己学习,计算权重,形成网络连接,而不是手写代码。这种软件开发的新范式始于第一个深度学习语言 [color=var(--ghost-accent-color)] TensorFlow,我们也把这种新的编码方式被称为软件 2.0。在深度学习兴起之前,大多数人工智能程序是用 Python 和JavaScript 等编程语言手写的。 人类编写了每一行代码,也决定了程序的所有规则。 配图10:机器学习如何工作?([color=var(--color-darker-gray)]TensorFlow Demo)相比之下,随着深度学习技术的出现,程序员利用这些新方式,给程序指定目标。如赢得围棋比赛,或通过提供适当输入和输出的数据,如向算法提供具有 "SPAM” 特征的邮件和其他没有"SPAM” 特征的邮件。编写一个粗略的代码骨架(一个神经网络架构),确定一个程序空间的可搜索子集,并使用我们所能提供的算力在这个空间中搜索,形成一个有效的程序路径。在神经网络里,我们一步步地限制搜索范围到连续的子集上,搜索过程通过反向传播和随机梯度下降([color=var(--ghost-accent-color)] Stochastic Gradient Descent)而变得十分高效。 神经网络不仅仅是另一个分类器,它代表着我们开发软件的 范式开始转移,它是 软件 2.0。 软件 1.0 人们编写代码,编译后生成可以执行的二进制文件;但在软件 2.0 中人们提供数据和神经网络框架,通过训练将数据编译成二进制的神经网络。在当今大多数实际应用中,神经网络结构和训练系统日益标准化为一种商品,因此大多数软件 2.0 的开发都由模型设计实施和数据清理标记两部分组成。这从根本上改变了我们在软件开发迭代上的范式,团队也会因此分成了两个部分: 2.0 程序员 负责模型和数据,而那些 1.0 程序员 则负责维护和迭代运转模型和数据的基础设施、分析工具以及可视化界面。
2.2 软件的演化
软件从 1.0 发展到软件 2.0,经过了一个叫做“数据产品”的中间态。当顶级软件公司在了解大数据的商业潜力后,并开始使用机器学习构建数据产品时,这种状态就出现了。下图来自 Ahmad Mustapha 的一篇文章《[color=var(--ghost-accent-color)] The Rise of Software 2.0》很好地呈现了这个过渡。 配图11:软件产品演化的三种状态这个中间态也叫 大数据 和 算法推荐。在现实生活中,这样的产品可以是 Amazon 的商品推荐,它们可以预测客户会感兴趣什么,可以是 Facebook 好友推荐,还可以是 Netflix 电影推荐或 Tiktok 的短视频推荐。还有呢?Waze 的路由算法、Airbnb 背后的排名算法等等,总之琳琅满目。 数据产品有几个重要特点:1、它们都不是软件的主要功能,通常是为了增加体验,达成更好的用户活跃以及销售目标;2、能够随着数据的增加而进化;3、大部分都是基于传统 ML 实现的,最重要的一点 数据产品是可解释的。 但有些行业正在改变, 深度学习是主体。当我们放弃通过编写明确的代码来解决复杂问题时,这个到 2.0 技术栈 的转变就发生了,在过去几年中,很多领域都在突飞猛进。 语音识别 曾经涉及大量的预处理、高斯混合模型和隐式 Markov 模型,但今天几乎完全被神经网络替代了。早在 1985 年,知名信息论和语言识别专家 [color=var(--ghost-accent-color)] Fred Jelinek 就有一句经常被引用的段子:“每当我解雇一个语言学家,我们的语音识别系统的性能就会得到提高”。 配图12:图解软件 2.0 的代表应用除了大家熟悉的图像语音识别、语音合成、机器翻译、游戏挑战之外,AI 在很多传统系统也看到了早期的转型迹象。例如 [color=var(--ghost-accent-color)] The Case for Learned Index Structures 用神经网络取代了数据管理系统的核心组件,在速度上比 B-Trees 缓存优化达快 70%,同时节省了一个数量级的内存。 所以,软件 2.0 的范式具备了这几个新特征:1、深度学习是主体,所有的功能都是围绕神经网络的输入输出构建的,例如语音识别、自动驾驶;2、可解释性并不重要,一个好的大数据推荐广告可以告诉客户用户看到这条广告的理由,但你没法从神经网络中找到规则,至少目前不行;3、高研发投入与底开发投入,现在大量的成功都来自大学和科技公司的研究部门,论文绝对比应用多 。。 2.3 软件 2.0 的优势
为什么我们应该倾向于将复杂的程序移植到软件 2.0 中?Andrej Karpathy 在《[color=var(--ghost-accent-color)] Software 2.0》中给出了一个简单的答案: 它们在实践中表现得更好! 容易被写入芯片 由于神经网络的指令集相对较小,主要是矩阵乘法([color=var(--ghost-accent-color)] Matrix Multiplication)和阈值判断([color=var(--ghost-accent-color)] Thresholding at Zero),因此把它们写入芯片要容易得多,例如使用定制的 ASIC、神经形态芯片等等([color=var(--ghost-accent-color)] Alan Turing 在设计 ACE 时就这样考虑了)。例如,小而廉价的芯片可以带有一个预先训练好的卷积网络,它们可以识别语音、合成音频、处理视觉信号。当我们周围充斥着低能耗的智能时,世界将会因此而大不同(好坏皆可)。 非常敏捷 敏捷开发意味着灵活高效。如果你有一段 C++ 代码,有人希望你把它的速度提高一倍,那么你需要系统性的调优甚至是重写。然而,在软件 2.0 中,我们在网络中删除一半的通道,重新训练,然后就可以了 。。它的运行速度正好提升两倍,只是输出更差一些,这就像魔法。相反,如果你有更多的数据或算力,通过添加更多的通道和再次训练,你的程序就能工作得更好。 模块可以融合成一个最佳的整体 做过软件开发的同学都知道,程序模块通常利用公共函数、 API 或远程调用来通讯。然而,如果让两个原本分开训练的软件 2.0 模块进行互动,我们可以很容易地通过整体进行反向传播来实现。想象一下,如果你的浏览器能够自动整合改进低层次的系统指令,来提升网页加载效率,这将是一件令人惊奇的事情。但在软件 2.0 中,这是默认行为。 它做得比你好 最后,也是最重要的一点,神经网络比你能想到的任何有价值的垂直领域的代码都要好,目前至少在图像、视频、声音、语音相关的任何东西上,比你写的代码要好。
2.4 Bug 2.0
对于传统软件,即软件 1.0,大多数程序都通过源代码保存,这些代码可能少至数千行,多至上亿行。据说,谷歌的整个代码库大约有 20 亿行代码。无论代码有多少,传统的软件工程实践表明,使用封装和模块化设计,有助于创建可维护的代码,很容易隔离 Bug 来进行修改。 但在新的范式中,程序被存储在内存中,作为神经网络架构的权重,程序员编写的代码很少。软件 2.0 带来了两个新问题:不可解释 和 数据污染。 因为训练完成的神经网络权重,工程师无法理解(不过现在对理解神经网络的研究有了很多进展,第六章会讲到),所以我们无法知道正确的执行是为什么?错误又是因为什么?这个和大数据算法有很大的不同,虽然大多数的应用只关心结果,无需解释;但对于一些安全敏感的领域,比如 自动驾驶 和 医疗应用,这确实很重要。 在 2.0 的堆栈中,数据决定了神经网络的连接,所以不正确的数据集和标签,都会 混淆神经网络。错误的数据可能来自失误、也可能是人为设计,或者是有针对性的投喂混淆数据(这也是人工智能领域中新的 程序道德规范 问题)。例如 iOS 系统的自动拼写功能被意外的数据训练污染了,我们在输入某些字符的时候就永远得不到正确的结果。训练模型会认为污染数据是一个重要的修正,一但完成训练部署,这个错误就像病毒一样传播,到达了数百万部 iPhone 手机。所以在这种 2.0 版的 Bug 中,需要对数据以及程序结果进行良好的测试,确保这些边缘案例不会使程序失败。
在短期内,软件 2.0 将变得越来越普遍,那些没法通过清晰算法和软件逻辑化表述的问题,都会转入 2.0 的新范式,现实世界并不适合整齐的封装。就像明斯基说的,软件开发应该更多的关心目标而不是过程,这种范式有机会颠覆整个开发生态,软件 1.0 将成为服务于软件 2.0 周边系统,一同来搭建 面向智能的架构。有越来越清楚的案例表明,当我们开发通用人工智能(AGI)时,它一定会写在软件 2.0 中。
3、面向智能的架构
回顾过去十多年深度学习在人工智能领域波澜壮阔的发展,大家把所有的关注点都集中了算法的突破、训练模型的创新还有智能应用的神奇表现上,这些当然可以理解,但关于智能系统的基础设施被提及的太少了。 好在 GANs 的出现让完全依赖人工数据的训练成本大幅下降,还有 [color=var(--ghost-accent-color)] Google AI 在持续不断的努力让 AI 的基础设施平民化。但这一切还在很早期,我们需要新的智能基础设施, 让众包数据变成众包智能,把人工智能的潜力从昂贵的科研机构和少数精英组织中释放出来,让其工程化。 3.1 Infrastructure 3.0
应用程序和基础设施的发展是同步的。 Infrastructure 1.0 - C/S(客户端/服务器时代) 商业互联网在上世纪 90 年代末期成熟起来,这要归功于 x86 指令集(Intel)、标准化操作系统(Microsoft)、关系数据库(Oracle)、以太网(Cisco)和网络数据存储(EMC)。Amazon,eBay,Yahoo,甚至最早的 Google 和 Facebook 都建立在这个我们称之为 Infrastructure 1.0 的基础上。 Infrastructure 2.0 - Cloud(云时代) Amazon AWS、Google Cloud 还有 Microsoft Azure 定义了一种新的基础设施类型,这种基础设施是无需物理部署可持续运行的、可扩展的、可编程的,它们有些是开源,例如 Linux、MySQL、Docker、Kubernetes、Hadoop、 Spark 等等,但大多数都是要钱的,例如边缘计算服务 Cloudflare、数据库服务 MangoDB、消息服务 Twilio、支付服务 Stripe,所有这些加在一起定义了 云计算时代。推荐阅读我在 2021 年 9 月的这篇《[color=var(--ghost-accent-color)] 软件行业的云端重构》。 归根结底,这一代技术把互联网扩展到数十亿的终端用户,并有效地存储了从用户那里获取的信息。Infrastructure 2.0 的创新催化了数据急剧增长,结合算力和算法飞速进步,为今天的机器学习时代搭建了舞台。 Infrastructure 2.0 关注的问题是 - “我们如何连接世界?” 今天的技术重新定义了这个问题 - “我们如何理解这个世界?” 这种区别就像连通性与认知性的区别,先认识再了解。2.0 架构中的各种服务,在给这个新的架构源源不断的输送数据,这就像广义上的众包;训练算法从数据中推断出 逻辑(神经网络),然后这种 逻辑 就被用于对世界做出理解和预测。这种收集并处理数据、训练模型最后再部署应用的新架构,就是 Infrastructure 3.0 - 面向智能的架构。其实我们的大脑也是这样工作的,我会在第六章中详细介绍。 配图13:[color=var(--color-darker-gray)]Hidden technical debt in Machine Learning Systems在现实世界的机器学习系统中,只有一小部分是由 ML 代码组成的,如中间的小黑盒所示,其周边基础设施巨大而繁杂。一个“智能”的应用程序,数据非常密集,计算成本也非常高。这些特性使得机器学习很难适应已经发展了七十多年的通用的 [color=var(--ghost-accent-color)] 冯 · 诺依曼计算范式。为了让机器学习充分发挥其潜力,它必须走出今天的学术殿堂,成为一门工程学科。这实际上意味着需要有新的抽象架构、接口、系统和工具,使开发人员能够方便地开发和部署这些智能应用程序。
3.2 如何组装智能
想要成功构建和部署人工智能,需要一个复杂的流程,这里涉及多个独立的系统。首先,需要对数据进行采集、清理和标记;然后,必须确定预测所依据的特征;最后,开发人员必须训练模型,并对其进行验证和持续优化。从开始到结束,现在这个过程可能需要几个月或者是数年,即使是行业中最领先的公司或者研究机构。 好在除了算法和模型本身之外,组装智能架构中每个环节的效率都在提升,更高的算力和分布式计算框架,更快的网络和更强大的工具。在每一层技术栈,我们都开始看到新的平台和工具出现,它们针对机器学习范式进行了优化,这里面机会丰富。 配图14:Intelligence Infrastructure from [color=var(--color-darker-gray)]Determined AI- 为机器学习优化的高性能芯片,它们内置多计算核心和高带宽内存(HBM),可以高度并行化,快速执行矩阵乘法和浮点数学神经网络计算,例如 Nvidia 的 [color=var(--ghost-accent-color)]H100 Tensor Core GPU 还有 Google 的 [color=var(--ghost-accent-color)]TPU;
- 能够完全发挥硬件效率的系统软件,可以将计算编译到晶体管级别。Nvidia 在 2006 年就推出的 [color=var(--ghost-accent-color)]CUDA 到现在也都保持着领先地位,CUDA 是一个软件层,可以直接访问 GPU 的虚拟指令集,执行内核级别的并行计算;
- 用于训练和推理的分布式计算框架([color=var(--ghost-accent-color)]Distributed Computing Frameworks),可以有效地跨多个节点,扩展模型的训练操作;
- 数据和元数据管理系统,为创建、管理、训练和预测数据而设计,提供了一个可靠、统一和可重复使用的管理通道。
- 极低延迟的服务基础设施,使机器能够快速执行基于实时数据和上下文相关的智能操作;
- 机器学习持续集成平台([color=var(--ghost-accent-color)]MLOps),模型解释器,质保和可视化测试工具,可以大规模的监测,调试,优化模型和应用;
- 封装了整个机器学习工作流的终端平台([color=var(--ghost-accent-color)]End to End ML Platform),抽象出全流程的复杂性,易于使用。几乎所有的拥有大用户数据量的 2.0 架构公司,都有自己内部的 3.0 架构集成系统,Uber 的 [color=var(--ghost-accent-color)]Michelangelo 平台就用来训练出行和订餐数据; Google 的 [color=var(--ghost-accent-color)]TFX 则是面向公众提供的终端 ML 平台,还有很多初创公司在这个领域,例如 [color=var(--ghost-accent-color)]Determined AI。
总的来说,Infrastructure 3.0 将释放 AI/ML 的潜力,并为人类智能系统的构建添砖加瓦。与前两代架构一样,虽然上一代基础设施的巨头早已入场,但每一次范式转移,都会有有新的项目、平台和公司出现,并挑战目前的在位者。
2.3 智能架构的先锋
深度学习被大科技公司看上的关键时刻是在 2010 年。在 Palo Alto 的一家日餐晚宴上,斯坦福大学教授 [color=var(--ghost-accent-color)] Andrew Ng 在那里会见了 Google 的 CEO [color=var(--ghost-accent-color)] Larry Page 和当时担任 Google X 负责人的天才计算机科学家 [color=var(--ghost-accent-color)] Sebastian Thrun。就在两年前,Andrew 写过一篇关于将 GPU 应用于深度学习模型有效性分析论文。要知道深度学习在 2008 年是非常不受欢迎的,当时是算法的天下。 几乎在同一时期,Nvidia 的 CEO [color=var(--ghost-accent-color)] Jensen Huang 也意识到 GPU 对于深度学习的重要性,他是这样形容的:"深度学习就像大脑,虽然它的有效性是不合理的,但你可以教它做任何事情。这里有一个巨大的障碍,它需要大量的计算,而我们就是做 GPU 的,这是一个可用于深度学习近乎理想的计算工具"。 配图15:Nvidia AI vs Google AI 的对比Nvidia 今天赚的大部分钱的来自游戏行业,通过销售 GPU,卖加速芯片的事情 AMD 和很多创业公司都在做,但 Nvidia 在软件堆栈上的能力这些硬件公司无人能及,因为它有从内核到算法全面控制的 CUDA,还能让数千个芯片协同工作。这种整体控制力,让 Nvidia 可以发展云端算力服务,自动驾驶硬件以及嵌入式智能机器人硬件,以及更加上层的 AI 智能应用和 [color=var(--ghost-accent-color)] Omniverse 数字模拟世界。 Google 拥抱 AI 的方式非常学术,他们最早成立了 Google Brain 尝试大规模神经网络训练,点爆了这个领域的科技树,像 GANs 这样充满灵感的想法也是来自于 Google ([color=var(--ghost-accent-color)] Ian Goodfellow 同学当时任职于 Google Brain)。在 2015 年前后 Google 先后推出了 [color=var(--ghost-accent-color)] TensorFlow 还有 [color=var(--ghost-accent-color)] TPU(Tensor Processing Unit - 张量芯片),同年还收购了 DeepMind 来扩张研究实力。[color=var(--ghost-accent-color)] Google AI更倾向于用云端的方式给大众提供 AI/ML 的算力和全流程工具,然后通过投资和收购的方式把智能融入到自己的产品线。 现在几乎所有的科技巨头,都在完善自己的“智能”基础设施,Microsoft 在 2019 年投资了 10 亿美金给 OpenAI 成为了他们最大的机构股东;Facebook 也成立了 [color=var(--ghost-accent-color)] AI 研究团队,这个仅次于他们 [color=var(--ghost-accent-color)] Reality Lab 的地位,Metaverse 里所需的一切和“智能”相关的领域他们都参与,[color=var(--ghost-accent-color)] 今年底还和 AMD 达成合作,投入 200 亿美元并用他们的芯片来搭建新的“智能”数据中心;然后就是 Tesla,在造电车之外不务正业搭建了世界上规模最大的超级电脑 [color=var(--ghost-accent-color)] Dojo,它将被用来训练 FSD 的神经网络和为未来的 [color=var(--ghost-accent-color)] Optimus(Tesla 人形机器人)的大脑做准备。
正如过去二十年见证了“[color=var(--ghost-accent-color)] 云计算技术栈”的出现一样,在接下来的几年里,我们也期待着一个巨大的基础设施和工具生态系统将围绕着智能架构 - Infrastructure 3.0 建立起来。Google 目前正处于这个领域的前沿,他们试图自己的大部分代码用 软件 2.0 的范式重写,并在新的智能架构里运行,因为一个有可能一统江湖的“模型”的已经出现,虽然还非常早期,但 机器智能 对世界的理解很快将趋向一致,就像我们的 大脑皮质层 理解世界那样。
4、一统江湖的模型
想象一下,你去五金店,看到架子上有一种新款的锤子。你或许已经听说过这种锤子了,它比其他的锤子更快、更准;而且在过去的几年里,许多其他的锤子在它面前都显得过时了。你只需要加一个配件再扭一下,它就变成了一个锯子,而且和其它的锯子一样快、一样准。事实上,这个工具领域的前沿专家说,这个锤子可能预示着所有的工具都将集中到单一的设备中。 类似的故事也在 AI 的工具中上演,这种多用途的新型锤子是一种神经网络,我们称之为[color=var(--ghost-accent-color)] Transformer( 转换器模型 - 不是动画片里的变形金刚),它最初被设计用来处理自然语言,但最近已经开始影响 AI 行业的其它领域了。
4.1 Transformer 的诞生
2017 年 Google Brain 和多伦多大学的研究人员一同发表了一篇名为《[color=var(--ghost-accent-color)] Attention Is All You Need》的论文,里面提到了一个自然语言处理([color=var(--ghost-accent-color)] NLP)的模型 Transformer,这应该是继 GANs 之后深度学习领域最重大的发明。2018 年 Google 在 [color=var(--ghost-accent-color)] Transformer 的基础上实现并开源了第一款自然语言处理模型 [color=var(--ghost-accent-color)] BERT;虽然研究成果来自 Google,但很快被 OpenAI 采用,创建了 GPT-1 和最近的火爆的 [color=var(--ghost-accent-color)] GPT-3。其他公司还有开源项目团队紧随其后,实现了自己的 Transformer 模型,例如 [color=var(--ghost-accent-color)] Cohere,[color=var(--ghost-accent-color)] AI21,[color=var(--ghost-accent-color)] Eleuther(致力于让 AI 保持开源的项目);也有用在其它领域的创新,例如生成图像的 [color=var(--ghost-accent-color)] Dall-E 2、[color=var(--ghost-accent-color)] MidJourney、[color=var(--ghost-accent-color)] Stable Diffusion、[color=var(--ghost-accent-color)] Disco Diffusion, [color=var(--ghost-accent-color)] Imagen 和其它许多。 配图16:发表《[color=var(--color-darker-gray)]Attention Is All You Need》论文的八位同学发表这篇论文的 8 个人中,有 6 个人已经创办了公司,其中 4 个与人工智能相关,另一个创办了名为 [color=var(--ghost-accent-color)] Near.ai 的区块链项目。 自然语言处理 这个课题在上世纪五十年代开创 AI 学科的时候就明确下来了,但只到有了 深度学习之后,它的准确度和表达合理性才大幅提高。序列传导模型([color=var(--ghost-accent-color)] Seq2Seq)是用于 NLP 领域的一种深度学习模型,在机器翻译、文本摘要和图像字幕等方面取得了很大的成功,2016 年之后 Google 在搜索提示、机器翻译等项目上都有使用。序列传导模型是在 输入端 一个接一个的接收并 编码 项目(可以是单词、字母、图像特征或任何计算机可以读取的数据),并在同步在 输出端一个接一个 解码 输出项目的模型。 在机器翻译的案例中,输入序列就是一系列单词,经过训练好的神经网络中复杂的矩阵数学计算,在输出端的结果就是一系列翻译好的目标词汇。
[size=0.85em]0:00[color=rgba(255, 255, 255, 0.6)][size=0.85em]/0:10
1×
视频17:[color=var(--color-darker-gray)]Visualizing A Neural Machine Translation ModelTransformer 也是一款用于 NLP 的序列传导模型,论文简洁清晰的阐述了这个新的网络结构,它只基于 注意力机制(Attention),完全不需要递归(RNN)和卷积(CNN)。在两个机器翻译的实验表明,这个模型在质量上更胜一筹,同时也更容易并行化,需要的训练时间也大大减少。 好奇心强的同学,如果想了解 Transformer 模型的具体工作原理,推荐阅读 Giuliano Giacaglia 的这篇《[color=var(--ghost-accent-color)] How Transformers Work》。
4.2 Foundation Models
斯坦福大学 CRFM & HAI 的研究人员在 2021 年 8 月的一篇名为《[color=var(--ghost-accent-color)] On the Opportunities and Risks of Foundation Models》的论文中将 Transformer 称为 Foundation Models(基础模型),他们认为这个模型已经推动了 AI 领域新一轮的范式转移。事实上,过去两年在 [color=var(--ghost-accent-color)] arVix 上发表的关于 AI 的论文中,70% 都提到了 Transformer,这与 2017 年 [color=var(--ghost-accent-color)] IEEE 的一项研究 相比是一个根本性的转变,那份研究的结论是 RNN 和 CNN 是当时最流行的模型。 从 NLP 到 Generative AI 来自 Google Brain 的计算机科学家 [color=var(--ghost-accent-color)] Maithra Raghu 分析了 视觉转换器([color=var(--ghost-accent-color)] Vision Transformer),以确定它是如何“看到”图像的。与 CNN 不同,Transformer 可以从一开始就捕捉到整个图像,而 CNN 首先关注小的部分来寻找像边缘或颜色这样的细节。 这种差异在语言领域更容易理解,Transformer 诞生于 NLP 领域。例如这句话:“猫头鹰发现了一只松鼠。它试图抓住它,但只抓到了尾巴的末端。” 第二个句子的结构令人困惑: “它”指的是什么?如果是 CNN 就只会关注“它”周围的词,那会十分不解;但是如果把每个词和其他词连接起来,就会发现是”猫头鹰抓住了松鼠,松鼠失去了部分尾巴”。这种关联性就是“Attention”机制,人类就是用这种模式理解世界的。 Transformer 将数据从一维字符串(如句子)转换为二维数组(如图像)的多功能性表明,这种模型可以处理许多其他类型的数据。就在 10 年前,AI 领域的不同分支几乎没有什么可以交流的,计算机科学家 [color=var(--ghost-accent-color)] Atlas Wang 这样表述, “我认为 Transformer 之所以如此受欢迎,是因为 它暗示了一种变得通用的潜力,可能是朝着实现某种神经网络结构大融合方向的重要一步,这是一种通用的计算机视觉方法,或许也适用于其它的 机器智能任务”。 更多基于Transformer 模型的 Generative AI 案例,推荐好友 Rokey 的这篇《[color=var(--ghost-accent-color)] AI 时代的巫师与咒语》,这应该是中文互联网上写得最详细清晰的一篇。 涌现和同质化 Foundation Models 的意义可以用两个词来概括:涌现和同质化。涌现 是未知和不可预测的,它是创新和科学发现的源头。同质化 表示在广泛的应用中,构建机器学习的方法论得到了整合;它让你可以用统一的方法完成不同的工作,但也创造了单点故障。我们在 Bug 2.0 那一小节中提到的 数据污染 会被快速放大,现在还会波及到所有领域。 配图18:人工智能的涌现过程([color=var(--color-darker-gray)]来自斯坦福研究人员 2021 年 8 月的论文)AI 的进化史一个不断涌现和同质化的过程。随着机器学习的引入,可以从实例中学习(算法概率推论);随着深度学习的引入,用于预测的高级特征出现;随着基础模型(Foundation Models)的出现,甚至出现了更高级的功能,在语境中学习。同时,机器学习将算法同质化(例如 RNN),深度学习将模型架构同质化(例如 CNN),而基础模型将模型本身同质化(如 GPT-3)。 一个基础模型如果可以集中来自各种模式的数据。那么这个模型就可以广泛的适应各种任务。 配图19: Foundation Model 的转换([color=var(--color-darker-gray)]来自斯坦福研究人员 2021 年 8 月的论文)
|