V2EX 07月23日 11:04
[随想] 一點關於 AI 編程的思考
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

程序员的工作是将人类模糊的需求转化为机器可执行的精确指令。这个过程本质上是对信息进行翻译和补充,通过不断叠加细节和约束来排除不确定性,最终将抽象的概念具象化。从“我要一辆车”到具体的汽车型号,每一步都是信息的量化和可能性的排除。AI代码生成则处于这一翻译链的后半段,其智能程度决定了程序员需要提供信息的抽象程度。AI越聪明,程序员可以越抽象;AI越笨,则需要越具体的指令。

🎯 程序员的核心工作是将抽象的人类语言需求转化为机器理解的具体指令,这个过程是信息翻译和补充的过程。需求的模糊性与机器执行的精确性之间存在信息量的差异,程序员通过叠加约束来缩小这种差异,直至只剩一种可行方案。

💡 信息量等同于排除可能性的多少。从一个笼统的概念(如“车”)到具体的模型,程序员的工作就是不断地为这个概念添加约束,排除掉其他所有不符合要求的可能性,最终锁定唯一的实现方式。

🔄 程序员在面对需求时,会提出多种潜在解决方案,每个方案都引入了新的约束。选择最佳方案需要依据原始需求中的“原始约束”,或通过与产品沟通、经验预测等方式来扩展上下文,从而做出更明智的决策。

🤖 AI在代码生成方面扮演的角色是翻译链的后半段,接收程序员提供的中间语言并生成最终代码。AI的智能水平直接影响程序员所需输入的抽象程度:AI越智能,程序员可以提供越抽象的指令;反之,则需要提供更多细节以确保代码的可用性。

程序員的工作,本質上是在做語言翻譯,將描述需求的人類語言翻譯到機器語言。其中,需求語言是抽象的,就像用戶說「我要一輛車」,是一種概括性的描述,但要實際把車造出來,就要落實到非常具象的語言,因為無論是計算機還是現實物理,都有非常具體的規則,錯一點就會不能用。這種抽象程度的差異可以理解為信息量的差異,給定一個車的概念,它可以有成千上萬種樣子,但到生產出來的具體型號,就只剩下了一種,其他所有樣子都被排除了,這也是信息論裏提出的「信息量即是排除可能性的多寡」。

於是程序員的工作本質上是對信息的補足,這種補足是通過不斷疊加約束實現的,每個新增加的細節都是約束,能砍掉一部分可能性,直到最後可能性剩下一種。具體地說,給定一個需求,程序員會想到一些潛在的方案,每個方案會有新加入的約束,提出方案本身就是補充了原本不存在的信息。那麼如何從潛在方案中選擇呢?程序員需要在需求中找到一些能指引選擇的原始約束,例如把方案介紹給產品詢問意見,或者根據自身的經驗預測一下未來的需要,這實際上就是擴充了上下文。

AI 的代碼生成工作在上述翻譯鏈的後半段,它會從程序員那取得中間階段的語言,然後生成具體的代碼。如果 AI 更聰明,那麼程序員應當可以提供更抽象的語言,讓 AI 自己補足信息,而如果 AI 更笨,程序員就需要提供更多信息,才能保證最終代碼的可用。於是,我們有了一個度量 AI 聰明程度的方法,也有了一種適應 AI 的策略,就是如果 AI 不夠聰明,就提供更多細節直到它能寫出來。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

程序员 AI代码生成 信息论 约束 需求转化
相关文章