GPT-4 会梦见电子程序员吗
date
Mar 23, 2023
slug
gpt-4-dream-programmer
status
Published
tags
OpenAI
summary
type
Post
以下内容由 AI 辅助创作。
AI 文明的技术爆炸
Our future will no longer experience evolution, but rather an explosion. - by Raymond Kurzweil
自 2022 年 12 月起,OpenAI 陆续公开了一系列项目的 Public Review,其中包括 ChatGPT、gpt-3.5-turbo 和 GPT-4 等。这些项目的推出引起了广泛的讨论和关注。其中,ChatGPT 在推出仅仅五天就获得了 100 万用户,被视为最先进的人工智能对话系统之一,也吸引了谷歌、微软等科技巨头加入军备竞赛。微软决定继续投资 OpenAI 100 亿美元,并致力于将 ChatGPT 和自家应用的整合;谷歌也加入了这场智能聊天机器人对搜索引擎发动的大战,在今年 2 月 6 日推出了基于自家大型语言模型 LaMDA 的聊天机器人 Bard。
虽然这些项目和技术展示了惊人的能力,但也引起了公众的担忧。人们担心 AI 可能会替代人类从事某些工作,导致许多从业者失业。
不过,也有一些人认为这种观点是过度担忧和非理性的,类似于 AlphaGo 击败李世石和 Stable Diffusion 产生的大众效应。无论如何,这一问题需要持续关注和探讨。
值得注意的是,虽然 AI 能够在某些领域内展现出惊人的能力,但它仍然在某些伦理问题上遭遇到了困境。例如,AI 对于某些人类简单易懂的问题却给出了令人啼笑皆非的答案,比如“爸爸和妈妈能结婚吗”。
对于这个现象,Yann LeCun 提出了一种假设:
AI Chatbots Don’t Care About Your Social NormsThey seem so human, but they are very alien.
虽然如此,无论 AI 聊天机器人所处的文明和人类文明是否存在交集,不可否认的一点是:具有复杂的逻辑推理能力是高等文明物种所具备的一个重要特征。当我们在思考「人工」智能时,这种逻辑推理能力往往是关键,因为它使我们能够解决复杂的问题,制定合理的决策,并推动技术创新和社会进步。同样,复杂逻辑的推理能力可以让 AI 聊天机器人从 Artificial Idiot 进化为 Artificial Intelligence。
在前 GPT-4 时代,AI 的复杂逻辑能力受到了很大的限制:仅局限于文本单一模态,即只能在海量数据训练的基础上通过适当的 Prompt 才能使其具备与人类媲美的思维过程,这也使得 ChatGPT 在双盲(双目失明)的情况下只能达到人类平均的智力水平。
然而随着 GPT-4 的发布,一切都发生了翻天覆地的变化。GPT-4 拥有多模态信息处理能力,使得人工智能能够更好地观察世界,消除了其在认知方面的局限性(上海交通大学和 Amazon Web Services 在 Multimodal Chain-of-Thought Reasoning in Language Models 一文中指出,通过视觉特征和语言作为输入,小型模型可以在多模态问答数据集 ScienceQA 中取得比 GPT-3.5 更好的表现。令人惊讶的是,这种小型模型的参数量仅是 GPT-3.5 的二十分之一)。这意味着,AI 聊天机器人可以更加逼真地模拟人类的思维过程,更好地理解并应对不同语言和语境中的挑战,从而为用户提供更加智能化,真实和互动的体验。
OpenAI 在 GPT-4 技术报告 的 Contamination on professional and academic exams 一节指出,GPT-4 在 Codeforces Rating 和 Leetcode 测试中的表现明显低于其他类型的考试,尽管这两种考试的评估过程中污染数据率为 0%,但在同样污染数据率为 0% 的 Uniform Bar Exam 中,GPT-4 取得了 90% 的百分位成绩。这是否意味着 GPT-4 具备编程能力并能够取代程序员,本文将在下一章节中进一步探讨。
总之,AI 文明的技术爆炸将在未来很长一段时间内影响人类社会。两种文明之间的碰撞将会走向何方,仍充满着无限的可能性。
程序员和产品经理的赛博角斗场
其道遠險狹,譬之猶兩鼠鬥於穴中,將勇者勝。 ——《史記卷八十一廉頗藺相如傳》
为了探究 GPT-4 的实际编程能力,笔者使用了目前可供体验的基于 GPT-4 的代码编辑器 Cursor。
至于 Cursor 的后端是否调用了 GPT-4 API 仍存在一定的争议,相关内容详见:
https://twitter.com/amanrsanger/status/1636205986674520064
无论最终结论如何,这与本文所讨论的主题并不特别相关。
based on gpt-3 not gpt-4
Updated Apr 16, 2023

与传统的代码编辑器(例如 Visual Studio Code)不同,Cursor 设计的语言简洁,着重强调人工智能与人类协同开发。而且,它提供了 Generate/Edit 和 Chat 两种交互方式:Generate/Edit 指根据人类指令直接生成代码,非常简便直接;Chat 则类似于 ChatGPT,通过与用户进行对话来提供代码建议,更加灵活和个性化。无论你是想快速生成代码还是和人工智能进行深入交流,Cursor 都能满足你的需要。

在 Cursor 编辑器的基础上,为了验证 GPT-4 的实际编程能力,笔者遵循以下三个原则进行了探究:
- 只提供产品经理视角下的功能描述性指令,而非具体的代码说明。
- 若 AI 生成的代码无法正常编译,仅向 AI 提供编译错误信息,而非直接告知 AI 具体的修改方法。
- 不使用任何第三方代码和资源,这样可以更好地评估 GPT-4 编程能力,同时也避免了第三方代码和资源对最终结果的影响。
关于协同开发的第一步,笔者采用 Generate 的方式,让 AI 从零开始设计一个 Flappy Bird 游戏。这种方式可以使我们更好地了解 GPT-4 编程能力,以及通过协同开发对它的指导和训练。让 AI 从无到有地设计和开发 Flappy Bird 游戏,可以让我们更好地了解它在编程方面的实际表现。
在后续的开发过程中,笔者采用 Chat 的方式向 AI 提供新的需求和编译错误信息。为了更真实地体现人机协同开发的场景,在 Generate 和 Chat 过程中并没有使用任何的 Prompt 模板。然而,这种方式可能会注入一些人工先验信息(需要强调的是,本文仅叙述了一种主观人机交互体验,并非客观的实验分析)。
根据 AI 生成的原始代码的基础上,笔者提出了如下新需求(这表明 AI 生成的初始代码缺乏如下功能):
- 多语言支持
- 得分及最高分显示
- 游戏场景和角色绘图
- 开始及重新开始按钮
- Dark Mode
- 更精确的碰撞检测算法
- 随机障碍物生成
游戏完成品及代码详见:
从目前 Cursor 提供的 GPT-4 表现来看,可以粗浅得出以下结论:
- GPT-4 可以充分理解人类提供的需求,即使需求内容的语义不清晰,并给出逐行级的代码修改指导。
- GPT-4 具有一定程度的 Debug 能力,可以根据用户提供的编译错误修改代码,但缺少相关领域工程经验的程序员通过 GPT-4 的 Debug 效率不如资深程序员的工作效率(这表明 GPT-4 提供的代码修改建议可能不能完全解决问题)。如果 GPT-4 能自主获取到来自编译器的信息反馈(编译信息作为监督信号的训练),生成代码的错误率可能会大大降低。
- GPT-4 具有十分强大的绘图能力:在缺乏素材的情况下,GPT-4 可以根据用户输入的 Prompt 进行细致的素材创作。
- GPT-4 能够理解颜色和位置两个概念:这体现在前端开发中,GPT-4 可以通过一些模糊指令调整组件的颜色以及组件间的相对位置。
- GPT-4 生成的代码中带有大量的注释信息,这表明逻辑链在 GPT-4 执行代码生成任务中扮演了重要角色。(有关逻辑链和代码生成的讨论)
在后 GPT-4 时代,「程序员」和「产品经理」之间的相互作用正在发生巨大的变化。如果「产品经理」具备扎实的开发能力,则能在变革中幸存;「程序员」如果具备 Least-to-most 的能力,也能身兼二职,立于不败之地。但不论如何,他们都将殊途同归,因为最终胜利的将是「具备实力的一方」。
我们重新定义了编程
Hey Siri, call GitHub.
2023 年 3 月 23 日,GitHub 发布了基于 GPT-4 的协同开发系统 Copilot X。该系统在阅读开发文档、Pull Requests、终端指令交互、语音编程中注入了 AI 力量,彻底改变人们对于编程的定义和认知。那么,他们在做白日梦的时候会遇见电子程序员吗?