前两章我们看清了传统软件的硬:决定在开发时做完,使用时只剩执行。现在轮到主角登场。AI——具体说,是以大语言模型为代表的那类 AI——把这堵墙的位置挪了:它把大量「做决定」的时刻,从开发时推迟到了使用时。
这就是种子那句话的精确含义:软件的软,体现在开发过程中(你可以改代码、重新发布);AI 的软,体现在使用过程中——它被用的时候,行为还在被塑造。你不但可以影响它的表现,而且是每一次使用时都可以。
行为在使用时才定型
先看一个对比。传统软件里,「翻译这段话」这个行为是发布前就定死的:点翻译按钮,走固定流程,出固定格式的结果。你没法跟它商量「翻得口语一点」——说明书里没这一页。
而对一个大语言模型,「翻译」根本不是一个被写死的功能。你只是说「翻一下」,它就翻了;你说「翻得口语一点,像朋友发微信」,它就换一种翻法;你说「保留术语但把长句拆开」,它再换。同一个模型,行为在每次对话的当下才被确定。烧陶瓷的比喻在这里失效了:它更像一块始终保持可塑的泥,每一次使用都是一次重捏。
塑造它行为的有三股力量,按从硬到软排:
- 权重:权重是模型训练完成后固化下来的亿万参数——大白话说,是它从海量文本里「学」进去的全部经验的总和,相当于它的出厂性格。这是最硬的一层,普通用户碰不到。
- 提示词:提示词(prompt)是你给它的那段话——大白话说,是使用当下写给它的说明书。这一层软得多:任何人用自然语言就能改,即时生效。
- 上下文:上下文是当前这场对话里它已经看到的所有内容——大白话说,是它此刻的「短期记忆」。同一句话,前面聊过什么,它的反应就不一样。
还有第四股力量,藏得最深:概率。模型每次生成下一个词,本质上是在一堆候选里按概率抽样——同样的问题问两遍,答案可以不同。传统软件追求「同样的输入同样的输出」,AI 是「同样的输入,同一个分布」。这个区别会在第五章掀起大浪,这里先记住它。
为什么偏偏是「使用中」变软
值得追问一句:为什么训练不能让行为也保持柔软?为什么软的偏偏是使用环节?
因为两端的成本结构完全不同。训练一次大模型,要烧掉成千上万张显卡跑上几个月,是工业级的凝固——比编译贵无数个量级。而使用时的每一次对话,只是在这块凝固的「经验体」上做一次轻量的推演。于是产业自然演化出一个分工:昂贵的、通用的部分提前凝固成权重;便宜的、具体的部分留到使用时现场决定。提示词之所以能撬动模型,正是因为模型在训练时被喂了足够多「听指令行事」的文本,把「可以被当场商量」这个性质本身学进了权重里。
大白话:传统软件是把整道菜做好了端上桌,你只能说吃或不吃。AI 是后厨给你配了一位什么都会做、且听得懂人话的厨师——菜谱(权重)他早就背熟了,但今晚怎么做、咸一点还是淡一点,坐下来说了算。
软的代价:你拿到了方向盘,也接过了方向盘的责任
先别急着欢呼。行为在使用时才定型,意味着三件传统软件不用操心的事,现在成了日常:
- 行为是不保证的。说明书变成了商量,商量就有谈不拢的时候。它会误解你,会自由发挥,会在你没想到的方向上撒欢。
- 表达成了操作。跟传统软件交互,你点的是按钮;跟 AI 交互,你写的是语言。「把话说清楚」从一种软技能,变成了直接操纵软件行为的硬技能——措辞的细微差别会真实改变输出。
- 沟通的终点活了。第一章那条「意图→翻译→翻译→代码」的链条,终点本来是凝固的。现在终点会动、会应、会谈条件——整条链条上每个环节的角色,都得重新定义。
这三件事,正好是本书后半部分的地图:开发者怎么当(第四章)、测试怎么测(第五章)、谁来定义软件(第六章)、坏了怎么修(第七章)。
先把结论钉在这里:AI 不是一门新功能,它是软件的一种新的「软硬结构」——决定的时刻从开发时大规模地搬到了使用时。软件开发发生的所有变化,都是这次搬家激起的回声。下一章先看回声的第一站:写软件的人。