核心观点 作者认为,将2024年的AI(如LLM、图像生成模型)归类为“软件”会误导关于伦理、政治和技术的讨论。虽然AI在计算机上运行,但其本质与传统软件有根本区别。
传统软件 人类编写明确、可理解的指令(源代码),计算机遵循这些指令产生可预测的输出。其逻辑由人设计和决定。
生成式AI 开发者选择模型架构和训练数据,然后通过算法“生长”出一个复杂的概率模型。这个模型由海量人类未直接选择或审查的数字(权重)组成,它不是人类编写的指令集。
传统软件 可以通过单元测试等方法进行精确验证。如果出现错误(bug),开发者可以通过修改源代码来修复。
生成式AI 其能力和边界通常无法预先完全了解,也没有明确的功能说明书。当表现不佳时,无法通过修改“源代码”来修复。纠正其行为需要通过“微调”(进一步训练)或“提示工程”等间接方法。
传统软件 执行指令,例如搜索引擎是“检索”并显示已存在的信息。
生成式AI 进行“推理”,使用其内部的概率模型来“生成”全新的、通常是意想不到的输出。它是在创造而非检索。作者引用了“随机鹦鹉”的比喻,但也承认它能完成写诗、通过考试等复杂任务。
本文的核心在于挑战传统软件工程的观念。传统软件工程建立在确定性、可验证性和可维护性之上。工程师期望能够通过代码审查、单元测试和调试来完全控制软件行为。
然而,AI模型的行为是概率性的、涌现的且难以解释的。这意味着:
社区讨论精华摘要
主题一:赞同与类比扩展 —— “AI之于软件,如同人类之于化学” +
核心观点 评论者 gjm 提出了一个广受好评的类比:AI系统是软件,就像人类是化学一样。虽然人体由化学过程驱动,但我们通常在更高的抽象层次(如心理学、社会学)来理解人类行为。同样,虽然AI由代码运行,但理解其行为需要超越代码本身。
主题二:反对与修正 —— “这是代码与数据的区别,而非软件与否” +
核心观点 评论者 noggin-scratcher 和 zoop 等人认为,作者混淆了“软件”与“代码”。他们指出,AI模型(即权重)可以被视为“数据”,而运行推理的引擎则是“软件”。
论据 现代软件早已包含非确定性、随机性和难以理解的部分。他们认为,AI只是软件的一个新子集,其特性需要我们更新对软件的认知,而不是否定其软件属性。
主题三:范式转移视角 —— “AI是继硬件、软件之后的新层次” +
核心观点 评论者 abramdemski 认为,这是一个类似于从硬件到软件的范式转移。曾经,硬件爱好者也可以说“软件只是硬件的一种配置”,但这会错失“编程”带来的巨大变革。同样,将AI仅仅视为“数据”或“另一种软件”也可能会低估这场变革的深度。
主题四:系统工程视角 —— “AI是需要被严格约束的系统组件” +
核心观点 一位 [anonymous] 评论者从系统工程的角度提出,工程师会构建一个外部控制软件框架,使用多个并行的AI模型进行冗余验证,监控模型的置信度,并在风险高时切换到安全模式。
实践方法 在这个框架下,AI是一个需要被管理和约束的、概率性的组件,而不是一个独立的、不可控的实体。
来自 GPT-5 Pro 的定义与总结 +
生成式AI (Generative AI) 是一种基于大规模语言模型 (LLM) 和其他生成模型的技术,它通过复杂的概率模型生成输出。这些模型并非由人类编写明确指令,而是通过训练数据和算法“生长”出一个概率模型。
在传统软件中,开发者明确指定每一步,而生成式AI依赖于训练过程和海量数据。其输出是基于统计模式生成的,因此无法通过简单的代码修改来调整行为。若输出不符合预期,通常需要通过微调 (fine-tuning) 或提示工程 (prompt engineering) 来调整。
根本区别在于:传统软件的行为是确定的,可通过修改源代码改变;而生成式AI的行为更多地依赖于数据和训练,输出带有随机性和不可预测性。
总的来说,生成式AI是一种通过训练数据自动调整行为的系统,不同于传统软件的指令驱动机制,其功能和结果由模型与数据间的复杂交互决定。