Software 2.0 主要包含以下内容:
源地址:https://karpathy.medium.com/software-2-0-a64152b37c35作者:[Andrej Karpathy](https://karpathy.medium.com/?source=post_page-----a64152b37c35--------------------------------)(OpenAI创始团队成员,原特斯拉AI部门负责人)发布时间:2017年11月12日翻译:在[OneFlow社区](https://www.oneflow.org/index.html)翻译基础上略作修改我发现,有时候人们会把神经网络当作“不过是机器学习工具箱中的工具之一而已”。它有优点也有缺点,在某些领域有用,并且可以帮助你打赢Kaggle比赛。很不幸,这种观点完全是只见树木、不见森林。神经网络可不只是又一种分类器而已,它代表着一种根本性转变的开始,这种转变与我们如何开发软件有关。它就是软件2.0。我们对软件1.0已经比较熟悉——它们由计算机语言(如Python、C++等)所开发。它由程序员写的给计算机的明确指令组成。通过编写每一行代码,程序员确定了程序空间中具有一些理想行为的特定点。与之对比的,软件2.0由更抽象、人类更难理解的语言(比如说,神经网络中的权重)开发。没人可以直接参与这种代码的编写,因为它涉及到大量的权重(往往上百万数量级),并且(我试过)直接编写权重某种意义上是很困难的。取而代之,我们为程序的行为指定目标(比如,“符合数据集中样本的输入输出对”,又或者“赢得围棋比赛”),并写好程序的骨架(比如神经网络的结构),这样就在整个程序空间中确定了一个可以用于搜索的子集,然后就可以使用我们所有的计算资源在这个空间中搜索可用的程序。
对于神经网络而言,我们将搜索限制在程序空间的一个连续的子集上,并且,使用反向传播和随机梯度下降方法进行搜索,(出人意料地)这种搜索方式挺有效。更具体地对比,软件1.0是将人工设计的源码(比如cpp文件)编译为可以有效工作的二进制文件。而软件2.0的源码通常由两部分组成:1)定义了目标行为的数据集;2)给定代码大致结构,但是需要填充细节的神经网络结构。训练神经网络的过程,就是将数据集编译成二进制文件的过程——得到最终的神经网络。时至今日,大多数实际应用中,神经网络的结构及训练系统已经日益标准化为一种商品,所以,大部分活跃的“软件开发”工作某种形式上变成了组织、增加、调整和清理带标签的数据集。这从根本上改变了我们迭代软件的编程范式,将开发团队分成了两拨:软件2.0的程序员(数据标记员)负责编辑和扩大数据集,而另一小撮人,维护着与训练有关的基础设施以及分析、可视化和标注等接口。事实证明,对于真实世界中的很多问题,采集数据(更泛化地说,确定期待的行为)比显式地写程序要容易得多。由于以上以及以下我将要介绍的软件2.0的诸多好处,我们正在见证工业界大量代码从软件1.0迁移至软件2.0的重大转变。软件1.0吞噬着整个世界,软件2.0(AI)在吞噬软件1.0。
就在过去几个月里,因为美联储的加息,科技公司的资本狂欢宣告结束,美国上市的SaaS公司股价基本都跌去了70%,裁员与紧缩是必要选项。但正当市场一片哀嚎的时候,Dall-E 2发布了,紧接着就是一大批炫酷的AI公司登场。这些事件在风投界引发了一股风潮,我们看到那些兜售着基于生成式AI(Generative AI)产品的公司,估值达到了数十亿美元,虽然收入还不到百万美元,也没有经过验证的商业模式。不久前,同样的故事在Web 3上也发生过!感觉我们又将进入一个全新的繁荣时代,但人工智能这次真的能带动科技产业复苏么?本文将带你领略一次人工智能领域波澜壮阔的发展史,从关键人物推动的学术进展、算法和理念的涌现、公司和产品的进步、还有脑科学对神经网络的迭代影响,这四个维度来深刻理解“机器之心的进化”。先忘掉那些花里胡哨的图片生产应用,我们一起来学点接近AI本质的东西。全文共分为六个章节:1.AI进化史-前神经网络时代、Machine Learning的跃迁、开启潘多拉的魔盒2.软件2.0的崛起-软件范式的转移和演化、Software 2.0与Bug 2.03.面向智能的架构-Infrastructure 3.0、如何组装智能、智能架构的先锋4.一统江湖的模型-Tran sformer的诞生、基础模型、AI江湖的新机会5.现实世界的AI-自动驾驶新前沿、机器人与智能代理6.AI进化的未来-透视神经网络、千脑理论、人工智能何时能通用?文章较长,累计22800字,请留出一小时左右的阅读时间,欢迎先收藏再阅读!文中每一个链接和引用都是有价值的,特别作为衍生阅读推荐给大家。