引言

开始学习 AI 之前,值得先问一个更基础的问题:计算机到底是什么?

为什么同一台机器既能绘制光谱曲线,又能运行分子动力学模拟?

为什么有的计算任务适合 GPU,有的任务却必须依赖 CPU?

为什么一段代码在自己的电脑上运行正常,发给同学或部署到服务器上却报错?

这些日常疑问背后,联系着硬件怎样执行物理操作、软件怎样分层组织任务,以及人怎样向机器精确传达指令。

本章围绕五个问题展开:

  1. 发展历史:从巴贝奇、洛芙莱斯,到图灵、香农、冯·诺伊曼、霍珀、汤普森与里奇,通用计算机的关键问题怎样被逐步解决?
  2. 硬件体系:计算机由哪些核心功能部件组成,CPU 与 GPU 遵循怎样的计算范式与分工?
  3. 编程语言:自然语言与底层电路之间隔着什么,为什么科学计算需要不同的编程语言?
  4. 操作系统:谁来协同管理程序与硬件,为什么代码的可靠运行高度依赖环境?
  5. 本质反思:可编程机器的本质是什么,“符号处理”与“理解化学”之间隔着怎样的科学边界?

历史帮助我们理解核心组件的来源,硬件与操作系统揭示其实际工作机制,编程语言提供表达思想的工具,最终回到它能够为化学研究承担怎样的任务。

关于数据的具体编码与表示、机器学习算法的详细训练,将留待后续章节深入。

2.1 发展历史:通用机器怎样逐步形成

2.1.1 从机械计算到可编程的构想

早期计算工具的核心驱动力,是代替人类繁重易错的手工数值运算。 19 世纪 30 年代,查尔斯·巴贝奇先后设计了用于自动计算数表的差分机,以及具备现代通用计算雏形的分析机。 分析机在机械结构上首次规划了专门保存数值的“仓库”(对应现代存储器)、执行运算的“作坊”(对应现代运算器),并通过穿孔卡片向机器传递操作指令。巴贝奇机器设计资料

这一构想展现了划时代的质变:机器不再只是固定执行单一算法的死工具,其运行任务可以由一套可随时更换的操作步骤所决定。

image.png

图 2-1:查尔斯·巴贝奇设计的差分机样机,展示了以机械部件自动执行数值计算的早期尝试。