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

Fish AI Reader

Fish AI Reader

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

FishAI

FishAI

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

联系邮箱 441953276@qq.com

相关标签

程序员 AI代码生成 信息量 约束条件 人机协作
相关文章