Software-2.0

2017年6月,大神 Andrej Karpathy 刚从现在如日中天的 OpenAI 离职加入了 Tesla,跟着Elon Musk干自动驾驶。半年后的2017年11月13日,Andrej 写了一篇文章「Software 2.0」,提出了一个新的软件范式,一个以神经网络为主体、其他代码为辅助的 Software 2.0。具体文章见 https://karpathy.medium.com/software-2-0-a64152b37c35

2017: Software 1.0 vs Software 2.0

  1. Software 1.0 中的规则(也就是我们常说的业务逻辑)是设计好的,由程序员把设计好的业务规则,通过一种编程语言写给机器执行。可以是Python或者Java、C++等;Software 2.0 的核心是一个神经网络、是无法被人理解的一种代码。
  2. Software 1.0 是程序员写代码;Software 2.0 是程序员搞训练、调整训练数据集等。开发范式发生了非常大的变化。

2021: 进一步

『The Rise of Software 2.0』https://pub.towardsai.net/the-rise-of-software-2-0-you-dont-want-to-be-left-behind-cbaa75f6d19 ,加上更多的AI 产品已经可以看到了,Software 2.0 的轮廓逐渐清晰了,尤其作者提到的中间态 Data Products,就是我们目前看到的大多数产品的形态。

2023: ChatGPT

2023年,chatGPT 持续火爆,尤其是 GPT 4.0 的 plugin 机制,让 GPT 插上了翅膀,无所不能的画面呈现在我们眼前。6年后,Software 2.0 是这样子,但跟之前Andrej 说的还是有一些不同:

  1. 软件的核心是神经网络,但 LLM 这个怪兽让我们大多数开发者没有机会去训练模型,而是通过 Prompt 自然语言,充其量做一些 Embedings,fine-tuning 都是奢侈的
  2. 还是因为LLM大模型的存在,『The Rise of Software 2.0』中提到的Software 2.0 的高研发投入不存在了,大家都是围绕着LLM 基础大模型做。但反过来想,大家的护城河在哪里呢?

还有吗?也许有。Microsoft 最近开放出一个 Semantic Kernel 的开发框架,把基于大语言模型开发抽象成了几个模块:Kernel、Planner、Skills、Memory和Connectors,这简直就是当年写Web 程序的时候提出了一个 MVC 框架一样,方便大家快速基于LLM 大语言模型构建自己的应用,简直就是LLM时代的 Spring。

https://github.com/microsoft/semantic-kernel

https://devblogs.microsoft.com/semantic-kernel/

https://learn.microsoft.com/en-us/semantic-kernel/