不管是极寒、酷热,还是强酸、强碱,乃至太空环境,细菌几乎能殖民地球上所有的生态位,靠的正是其基因组(即“代码”)那套厉害的演化逻辑。 在编程中,这对应于高内聚、低耦合的模块化设计。每个类或模块都应像一个独立的“操纵子”,可以被轻松地替换或与其它模块组合,而不会引发连锁反应。 咋理解?细菌演化出了“水平基因转移”(Horizontal Gene Transfer)的强大能力,可以直接从其它细菌那里“复制粘贴”有用的基因片段(如抗生素抗性基因),而无需理解对方完整的基因组上下文。 对于你写的任何一个function(基因)或class(操纵子),你能想象有人在不了解你项目其余代码、也无需导入任何新依赖的情况下,直接“顺手牵羊”(yoink)地拿走它,并立即从中获益吗?你的这段代码,有没有潜力成为一个热门的GitHub Gist? Karpathy表示,相比之下,真核生物基因组是更大、更复杂、组织更紧密的monorepo,创新性明显较低,却是构建完整器官和协调生命活动的必要条件。 软件1.0:代码,就是我们熟悉的传统编程,程序员敲代码指挥计算机通过指令执行任务。软件2.0:权重参数,神经网络时代不再直接写代码,而是调整数据集,让优化器生成神经网络的权重参数。 以前的神经网络都是固定功能的机器,比如AlexNet只能做图像识别。但大模型不一样,它们是可编程的!你的提示词(prompt)就是程序,而且还是用英语(或其他自然语言)写的。 Karpathy称自己发了推特15年,也猜不到究竟哪条会火,以为随便聊聊Vibe coding这个自己想出来的新词不会有太多人关注,结果这个词现在火到连维基百科页面都有词条了。 不过他发现写代码反而是容易的部分,真正困难的是部署——认证、支付、域名配置这些都要在浏览器里点来点去。“计算机在告诉我该点哪里,这太荒谬了,为什么不是它自己去点?” 现在的软件都是为人类设计的,到处都是“点击这里”的指令,大模型看不懂。一些先驱如Vercel和Stripe已经开始提供大模型友好的文档,用Markdown格式,把所有“点击”替换成了curl命令。 Karpathy表示,很多人觉得提示词就是日常用大模型时输入的简短指令,但在所有工业级LLM应用中,“上下文工程”完全是另一门艺术与科学,它得精准把控上下文窗口里的信息填充。 说它是“科学”,是因为要做好这件事需要整合任务说明、示例演示、检索增强生成(RAG)、相关多模态数据、工具调用、状态记录和历史对话等要素,还要通过压缩技术优化内容。 信息太少或形式不当,LLM 就缺乏足够的上下文来发挥最佳性能;信息过多或无关,则会推高调用成本并降低效果,要做到恰到好处绝非易事。 合理将问题拆解为可控的工作流精准填充上下文窗口调用匹配任务需求的LLM模型处理生成-验证的用户交互流程更多细节:安全防护、效果评估、并行处理、预加载机制等


