Skip to content

软件 2.0 #6

@justjavac

Description

@justjavac

今日阅读:Software 2.0

作者 Andrej Karpathy,特斯拉人工智能部门主管,斯坦福博士


以前

我们将神经网络作为“机器学习工具箱中的另一种工具”。但是,这种解释只见树木,不见树林。神经网络不是软件开发的另一种分类,它们代表了我们编写软件的根本性转变的开始。它们是软件
2.0(Software 2.0)。

软件 1.0

软件 1.0 是用 Python、C++ 等语言编写的,是由一条一条的计算机指令组成。通过编写每行代码,程序员可以确定程序使用的资源:内存、CPU、外设、……等等。

软件 2.0

软件 2.0 是用神经网络权重编写的。

不过,没有人参与这段代码的编写过程,因为权重有很多,并且直接用权重进行编码是很困难的。

那么如何编写呢?我们对一个理想程序的行为指定一些约束,并使用可用的计算资源来搜索程序空间中满足约束条件的程序。

我们不是直接编写程序,而是编写一些约束条件,通过采集足够多的数据来进化出(探索出)我们的程序。

未来

大部分程序员不再需要维护复杂的软件库,编写复杂的程序,或者分析程序的运行时间。他们需要收集、整理、操作、标记、分析和可视化提供给神经网络的数据。

软件 2.0 不会取代 1.0(实际上,需要大量的 1.0 基础架构来进行训练和推断,以“编译” 2.0 代码),但是它将会越来越多地接管软件 1.0 的任务。

热评

有了软件 2.0,程序员以后面对的就是 bug 2.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions