碎片:10月4日

碎片:10月4日

💡 原文英文,约2000词,阅读约需8分钟。
📝

内容提要

文章探讨LLM时代编程角色的转变:代码不仅是给机器的指令,也是理解问题域的概念模型。随着LLM降低代码生成成本,机械编写变得次要,明确概念模型、发现并迭代词汇更重要。

🔎

延伸解读

从“建造”到“培育”:LLM带来的范式转变

文章指出,传统软件如同建造桥梁,行为确定且可修复;而LLM更像培育植物或孩子,具有不可预测性。当出现问题时,传统系统可以修复或禁用组件,但LLM没有简单的修复或禁用方法。这种差异要求我们重新思考开发流程,不能简单套用确定性工程的思路。

代码的双重角色:指令与概念模型

Unmesh Joshi提出代码有两个交织的目的:给机器的指令和问题域的概念模型。LLM降低了代码生成成本,机械编写变得次要,但概念模型、词汇发现和迭代变得更加重要。编程语言仍然关键,因为写代码本身是思考的一部分,我们不应只是被动审查生成的代码。

表示形式与抽象层次:Sam Ruby的洞见

Sam Ruby以Rails为例,说明即使没有人类阅读,用高级语言表示程序仍有意义:Ruby/Rails约6万token,编译成C则达400万token,会超出LLM上下文窗口。因此,保持顶层符号的紧凑和精确至关重要,让底层编译尽可能深入,但顶层表示应作为可信来源。

幻觉率与实用性:Gemini 4 Argon的权衡

文章提到Gemini 4 Argon在Artificial Analysis上幻觉率仅15%,远低于其他模型(如Opus 5.5的59%)。虽然它回答正确率较低(50% vs 66%),但不知道时会明确说不知道,而非编造。这种更诚实的表现,对于需要可靠信息的任务可能更有价值。

❓

Q&A

LLM时代,编程的角色发生了哪些变化?

编程的角色没有消失,而是在改变。随着LLM降低代码生成成本,机械编写指令变得次要,更重要的是明确概念模型、发现并迭代正确的词汇,并通过迭代、领域专长和反馈来精炼词汇。

为什么说代码既是给机器的指令,也是理解问题的模型?

代码有两个交织的目的:一是给机器的指令,二是问题域的概念模型。在LLM时代,第二个角色变得更加重要,因为编写代码本身就是思考的一部分,我们需要构建更好的概念模型和词汇。

从构建确定性系统到培育推断性系统,挑战是什么?

挑战在于理解这种转变:构建确定性系统(如桥梁)时,我们可以修复bug或禁用组件;但推断性LLM没有简单的修复或禁用方法,可能导致不可预料的后果。

为什么在LLM时代,编程语言仍然重要?

因为编程语言是表达概念模型和词汇的工具。即使LLM生成代码,我们仍需要高级语言来保持程序的紧凑、精确和常规,以便人类和LLM都能有效工作。

Sam Ruby对代码表示和LLM上下文窗口有什么观点?

Sam Ruby指出,将Rails代码编译成C会大幅增加token数量(从6万到400万),这会妨碍LLM的上下文窗口和注意力。因此,即使没有人类阅读,用高级语言表示程序也是合理的。

关于AI代理的能力,Sam Ruby提出了什么比喻?

Sam Ruby将人们对AI代理能力的讨论比作盲人摸象,我们只能看到这个对象的部分视图。实际的问题不是代理是否好,而是对于手头的任务,信息来自哪里,以及什么会检查结果。

🏷️

标签

➡️

继续阅读