第一个阶段是硬件编程,以摆弄开关和电路为代表。在计算机发展的早期阶段,程序员需要手动编写机器语言指令,比如操作纸带或打孔卡片来输入程序。主要特点是程序员直接对硬件进行编程。这个阶段的共性是需要掌握硬件底层知识,对硬件的操作能力较强,但差异也很大,因为硬件种类繁多,不同的硬件编程方式也有很大的不同。
第二个阶段是软件编程,以编写代码为代表。随着计算机硬件的不断升级,程序员可以使用更高级的语言和编译器来编写程序,这就是软件编程阶段。例如,使用C、Java、Python等高级编程语言来编写应用程序和系统软件。它的主要特点是程序员对操作系统和软件进行编程,而不是直接对硬件编程。这个阶段的共性是需要掌握编程语言,能够实现各种算法和逻辑,同时需要了解操作系统和软件开发的基本原理。
第三个阶段是模型训练,以调整参数为代表。随着机器学习和深度学习的兴起,大规模的数据集和计算能力的提升使得大模型训练,主要通过特征模型参数来编程。在这个阶段,程序员需要设计和训练复杂的神经网络,例如使用 TensorFlow 或 PyTorch 这样的框架,来构建人工智能应用,如图像识别、语音识别、自然语言处理等。它的主要特点是使用大规模的数据和计算资源,通过机器学习算法来训练出具有智能的模型。

第四个阶段提示工程,以自然语言的提示工程为代表。通过大型语言模型,如 GPT 和GPT-3,程序员可以通过给出一些关键词或者示例,让模型自动生成代码。这种方式不需要具体的编程语言知识,使得程序员能够更加高效地实现想要的功能。例如,使用 OpenAI 的 Codex 平台可以通过自然语言描述来生成代码。
传统的程序编写需要程序员对编程语言和算法有深入的了解,并需要逐步调试和优化程序。提示工程的“提示员”只需要提供简短的提示文本,由大模型完成后续的推理和生成任务,用户不需要编写代码,也不需要深入了解算法。因此,使用提示工程编写程序时,更加注重用户体验和交互设计,而不是程序代码的细节实现。
教科书上,软件编程的经典公式是“程序=算法+数据结构”,强调以算法为中心,但需要数据必须有结构。而到了大模型时代,作者认为AI编程的公式应该修订为:
模型=算法框架+数据
AI编程公式的基本逻辑是:数据比算法更重要。
在这个修订的新公式中,一是弱化了算法的价值,强调了在AI编程中需要的只是算法的框架,而不需要包括了细节的实现。代码级的实现是通过训练完成的,程序员的作用被弱化了。二是强化了数据的价值,需要海量的高质量数据对模型做训练,而不仅仅是数据结构。