苏杰在 2010 年写了一本书,叫《人人都是产品经理》。十五年过去了,站在今天,或许也可以说,“人人都是程序员”,因为编程的范式正在发生深刻变化。 在神经网络出现之前(2012 年代表作是 AlexNet),可以称为编程 1.0 阶段。那时我们依赖确定性的逻辑来解决问题:a 就是 a,b 就是 b,程序的执行路径清晰、固定。 神经网络的出现带来了编程 2.0。通过在不同数据集上的训练,我们可以不断调整网络中每个节点的权重,进而影响最终输出。编程的任务变成了设定问题的起点与终点,神经网络则在“答题空间”里寻找解答。这个答案未必最优,但能有效解决问题。Karpathy 在 2017 年的《Software 2.0》里对此做了系统阐述。 而到了大模型时代,可以称之为编程 3.0。神经网络本身进化为“可编程体”,编程语言就是 Prompt。人们不再需要写复杂的函数和条件判断,而是通过自然语言来影响模型的推理过程。Prompt 之所以能改变输出,是因为它重塑了模型的“输入分布”,从而改变了注意力的聚焦点与解题路径。换句话说,Prompt 相当于在潜在的解题空间里拉起一条“轨道”,引导模型更快更准地落在某类答案上。 从“写死逻辑”到“训练权重”,再到“语言编程”,编程的本质正在从 控制计算机,转向 引导智能体。未来,当人人都能以语言驱动智能,编程将不再是少数人的技能,而会像写作一样,成为每个人的日常能力。
LLM 出来之后,在应用层的折腾从未停歇。从 Prompt 调优到 Workflow 配置,再到 Agent 构建,最终目的都是一样的:让 LLM 更好地为人类干活,把机器的性能压榨到极致。 对 LLM 的压榨,可以分为两个维度。一是帮助它找到最优算法,让推理少走弯路。 为此我们几乎把能想到的路子都走了一遍,让 LLM 学会反思(reflection、self-consistency、self-critics),学会推理和规划(reasoning、planning、chain-of-thought、tree-of-thought);学会记忆(short-term memory、long-term memory),不至于对话一长就失忆;学会找知识(RAG、knowledge graph),在外部世界里补充事实;学会构建上下文(context building),在有限 token 里塞下更多有效信息;学会用工具(tool-use,function calling,MCP),把事情交给外部程序去跑,而不是光靠自己生成;等等。 这些东西,说到底都是技巧和机制,本质目的是让 LLM 更快理解人类要干啥,围绕目标(goal-oriented)尽可能找到一条代价最小的路,跑到最优解上去。 第二个维度,是对时间的压榨,让 LLM 可以做到 7×24 小时不停歇。当我们对 LLM 有了更深入的理解之后,很容易想到把它打造成属于自己或组织的“数字员工”,它不知疲惫、不会抱怨,可以持续运转、不断学习。 大部分人今天用 AI 的方式,还停留在查资料、总结内容、写周报月报这些单点场景上,如果要真正构建一名“不停歇的 AI 数字员工”,光靠这些还不够。我们需要先规划出属于自己的 AI 数字工厂 ——想清楚要造出来的“产品”是什么,是沉淀知识的系统,是自动化的业务流程,还是一个可以长期迭代的服务。 在这座工厂里,AI 是生产线上的执行者,它负责具体的加工与产出;而人类的角色发生了转变,从“亲自干活的工人”变成“监工与管理者”。 人类不再亲手完成每一步,而是要设计流水线,设定规则,制定指标,监控质量,并在需要时调度资源。换句话说,AI 的价值不在于替我们“干一点活”,而在于帮把整条流水线跑起来,而人类更像是“数字工厂的管理者”。 当这两个维度结合起来时,真正的拐点就出现了。LLM 不再只是一个冷冰冰的工具,而是逐渐变成了可以长期协作的伙伴。它既能承担重复性劳动,也能在复杂问题上提供洞见。它不仅仅是“帮你做事”,更是“和你一起做事”。 未来的差距,不在于谁能写出更漂亮的 Prompt,而在于谁能把 LLM 真正融入到自己的时间和组织里,形成稳定的生产方式。 因此,会不会用、用到什么深度、能否持续优化,这些才是长期的竞争力来源。谁能把 AI 运行成“工厂”,让自己从执行者转为监工和管理者,谁就能在未来的日常工作和业务中,获得真正可复用、可累积的优势。
大概 17 年的时候,吴恩达说,“AI 是新的电力”,从当时看还无法理解,回到今天,这件事情已悄然发生:写代码少了 AI Coding 工具,生产力便立减大半;ChatGPT 额度一用光就会微微恐慌,迫不及待去找充钱的口子。 LLM 能力的供给越来越像电力的供给,OpenAI/ Google/Anthropic 等公司投入资本支出训练 LLM,相当于建设电网;再投入运营成本,通过 API 向所有人供给智能服务;同时,人们对 API 的要求,也与对公共事业相似:低延迟、高可用、稳定质量。 随着 AI 电力的普及,不可避免会出现一个新的问题,“全球智能断电”—— ChatGPT 抖一抖,依赖它的所有产品就会抖三抖,严重的话还会面临客户流失的风险。 这个问题有两类解法,一个是构建非中心化智能电力系统,也就是在自己的服务器或者云计算平台部署开源精简版的智能电网,另外一个就是在多电网之间做好负载均衡,毕竟同时挂的概率还是很低的。 从这个角度来看,做开源算力供给和做电力中介都会是一门好生意。前者掌握了分布式智能电力的基础产能,后者则主导了智能电力服务的负载均衡。 在电力中介方面,做的还不错的产品,国外的是 OpenRouter,国内的是 Siliconflow,最近还看到另外一个不错的,叫 ZenMux,国内外的模型都十分丰富,它的核心理念是,通过智能自动化,将多模型选择、风险管理和 API 编排等复杂流程简化为“一个 API、一个 SDK、一个平台”,把用户体验放到了首位。 可以感受到,AI 正在从一个生产力工具,走向和电力、自来水一样的社会基础设施,它不再只是提升效率的手段,而是正在成为支撑未来文明形态的社会基建。 P.S. 前面提到 ChatGPT 额度用光,最近刚折腾了一把, ChatGPT 因为几次扣款失败,直接就把我的卡给 ban 掉了;折腾半天,最简单好使的,还是直接在美区 Apple Store 上冲支付宝购买的礼品卡,在手机完成订阅。
Agent 有两个变量,一个是控制任务走向的 workflow 工作流,一个是控制内容生成的 context 上下文。 1)如果 workflow 和 context 的确定性都很高,这类任务就容易被自动化,类似传统 RPA,比如在处理发票处理、表单填报任务时,AI 更多是粘合剂,发挥空间比较有限。 2)如果 workflow 确定但 context 不确定,也就是流程固定但输入多变,就需要 Agent 在语义和理解上补全,比如客服问答、合同解析,需要通过外部检索、知识图谱等工具来弥补信息的缺口,让推理结果更符合预期。 3)如果 workflow 不确定但 context 确定,也就是输入清晰但走法多样,Agent 就要去自主规划路径,例如市场分析报告生成、个性化推荐等,大多数 End-to-End RL Agent 都擅长做这类任务,因为它们在训练阶段就习得了大量的路径规划和解题思路。 4)而当 workflow 和 context 都不确定时,就是最复杂的场景了,既要推理也要探索,像创新方案设计、跨部门信息收集等,这类更偏向于通用型 Agent,它的执行效果,取决于给它配备的工具丰富度,尤其是编程能力要最大化开放,例如让它学会去 Github 找仓库克隆并修改代码来解决问题,让它像人一样干活儿。 所以,要把 Agent 做好,首先要明确场景。本质上,自动化解决的是“确定性”问题,而智能化解决的是“不确定性”问题。
Barret李靖
1个月前
Andrej Karpathy 将软件发展分为三个阶段,Software 1.0,是通过编写计算机代码来解决问题,标志性产物是 Github;Software 2.0,神经网络扮演了重要角色,编程工作变成了训练和调参,通过调试不同的数据集,来修改神经网络每一层、每个节点的权重,标志性产物是 Hugging Face;而 Software 3.0 最本质的变化是,神经网络变得“可编程”了,且编程语言不再是传统代码,而是提示词,你可以通过自然语言跟大模型交互来找到问题解。 从写代码,到训模型,再到写提示词,软件的本质始终是:寻找让机器解决问题的最优表达方式。 再去看编程范式的变化,在神经网络出现之前,软件属于“确定性编程范式”,if A then B else C,逻辑规规矩矩,一条逻辑解决一个明确问题;而到了 LLM 时代,演进成了“概率性编程范式”,软件输出结果由权重叠加完成,可能性变多了,能解决的问题也更多、更大、更复杂,因此未来大量的长尾需求也会得到好的满足。 回到人机交互这个命题,问题也随之而来,代码过于精确(输入高成本),而自然语言过于模糊(输出低质量)。要做好人机交互,需要有一层规约(Specification),把事情有条理地讲清楚。事实上,我们日常的需求拆解、需求澄清,其实就是在“写 spec”,它的价值不在于文档本身,而在于帮助人类和机器对齐意图。这也是为什么越来越多的 AI 编程工具(如 Kiro Spec、Trae Solo)本质上都在探索新的 spec 模式。 可以预见,当机器拥有更强的“自主意识”、能够解决更复杂的问题后,未来的人机协同、机机协同也会变得频繁,要解决“人-机-机”三方协同问题,软件工程的核心势必会转向定义规则、目标与价值观上。对工程师来说,或许就是,从编码切换到写规则。