OpenAI 研究人员发现,即使是最好的人工智能也 “无法解决 ”大部分编码问题

也许这些人工智能应该学习编码。

OpenAI 的研究人员承认,即使是最先进的人工智能模型也仍然无法与人类编码员相比–尽管公司首席执行官山姆-奥特曼(Sam Altman)坚称,到今年年底,人工智能模型将能够击败 “低水平 ”软件工程师。

在一篇新论文中,该公司的研究人员发现,即使是前沿模型,或者说最先进、最具挑战性的人工智能系统,“仍然无法解决 ”大部分编码任务。

研究人员使用了一个新开发的名为 SWE-Lancer 的基准,该基准基于来自自由职业者网站 Upwork 的 1400 多项软件工程任务。OpenAI 利用该基准测试了三种大型语言模型(LLM)–自己的 o1 推理模型和旗舰产品 GPT-4o,以及 Anthropic 的 Claude 3.5 Sonnet。

具体来说,新的基准测试评估了 LLM 在处理 Upwork 两类任务时的表现:单个任务(涉及解决 bug 并对其进行修复)或管理任务(看到模型试图放大并做出更高层次的决策)。(这些模型不能访问互联网,这意味着他们不能直接抄袭网上发布的类似答案)。

这些模型在 Upwork 上承担的任务累计价值数十万美元,但他们只能解决表面的软件问题,却无法真正发现大型项目中的漏洞或找到其根本原因。对于使用过人工智能的人来说,这些粗制滥造、半生不熟的 “解决方案 ”可能并不陌生–人工智能最擅长的就是提供听起来很有把握的信息,而这些信息往往一经仔细检查就会分崩离析。

论文指出,虽然这三种 LLM 的运行速度往往 “远超人类”,但它们也未能掌握错误的普遍程度或理解其来龙去脉,“导致解决方案不正确或不够全面”。

正如研究人员解释的那样,Claude 3.5 Sonnet 的表现要好于与之对抗的两个 OpenAI 模型,而且比 o1 和 GPT-4o 赚得更多。不过,它的大部分答案都是错误的。研究人员认为,任何模型都需要 “更高的可靠性”,才能在现实生活中的编码任务中获得信任。

更直白地说,这篇论文似乎表明,虽然这些前沿模型可以快速工作并解决放大任务,但它们在处理这些任务方面的技能远不及人类工程师。

虽然这些 LLM 在过去几年中进步很快,而且很可能会继续进步,但它们在软件工程方面的技能还不足以取代现实生活中的人–但这并不妨碍首席执行官们解雇他们的人类编码员,转而使用不成熟的人工智能模型。

本文文字及图片出自 OpenAI Researchers Find That Even the Best AI Is "Unable To Solve the Majority" of Coding Problems

你也许感兴趣的:

共有 171 条讨论

  1. 最近,我需要使用 SQL 完成一项我并不熟悉的一次性任务。因为我可以从概念上解释我需要什么,但不知道所有正确的语法,这似乎是在 Claude 中循环的完美用例。

    最初的几次来回操作还算顺利,但很快就出现了一些无效的 SQL。我发回了确切的错误和行号,它的回应是更改了所有别名,但重复了同样的逻辑错误。我又试了一次,这次它重写了更多代码,但仍然使用了完全相同的无效操作。

    这时,我只好继续阅读一些文档和其他资源,用传统方法解决了问题。

    鉴于对 LLM 的大肆宣传,老实说,我很惊讶看到顶级模型仍然以如此基本和直接的方式失败。我一直在尝试在日常工作中使用 LLM,这样我就不会错过一些潜在的好东西,但我仍然没有发现它们有那么大的用处。

    1. 我不相信 LLM 会发展成为通用人工智能。那些 “人工智能指日可待 ”的承诺越来越像一个大骗局。

      1. 我从来都不支持它。它给人的感觉就像谷歌的迭代一样–1998 年左右,谷歌曾一度领先于其他所有产品。第一次使用它时,你会觉得 “天哪,你做对了,没想到这也能做到”。它很大,改变了很多东西,但并不是历史的终结,很多人完全相信这是历史的终结。

      2. 我们只需要你(而不是我)多给一点钱就能实现目标。我会为了 1000 亿美元对你撒谎吗?

      3. 那要看你说的 “进化 ”是什么意思了。我不认为我们会通过简单地扩展 LLMs 就能获得通用人工智能,但我认为通用人工智能如果出现的话,它的发展历程在很大程度上可以追溯到 LLMs。在我看来,穿越嵌入空间的旅程就像是前进的方向,而这正是 LLM 的意义所在。

        1. 嵌入空间是一回事,法律硕士则是另一回事。

          我认为前者是可以理解的,而且很可能是真正 AGI 的一部分,但后者则是一系列黑客行为,在最坏的情况下,是把我们引向死胡同的 “障眼法”。

        2. 有什么资源可以让我了解嵌入空间和潜在空间之间的区别吗?

      4. 我的意思是,这已经是几年前的事了!

        这可能发生也可能不发生,但 “骗局 ”的意思是故意欺骗。我认为没有人真正知道法学硕士的去向,以至于有足够的把握使用这个贬义词。

        1. 正如你正确指出的那样,没有人真正知道它是否会导致什么结果,那么告诉每个人它会导致什么结果就是故意欺骗吗?

          1. 当他们的股价因为他们的话而上涨时,是的。

        2. >“骗局 ”指的是故意欺骗。

          是的,我敢肯定,任何从事这项工作的工程师都知道这不是 “几年后的事”。但这并不能阻止产品团队利用炒作周期。因此,“使用欺骗手段剥夺(某人)金钱或财产”。

          1. 我同样相信,有一些真正的信徒已经喝了 “迷魂汤”,他们真的相信 AGI 就在不远处,只需要修复几个漏洞,再等几代摩尔定律就可以实现了。人工智能公司无名工程师的信念又有什么区别呢?

            1. >人工智能公司的无名工程师的信念有什么不同?

              希望有一位经理和适当的任务调度。如果我在每个冲刺阶段都做出这些承诺,并且一直说 “是啊,任务只差一周就能完成了!” 除非我掉进了爱丽丝梦游仙境的兔子洞,否则我会被炒鱿鱼的。我善意地假设,很多人工智能工程师都比我更聪明、更善于安排时间。

              但这就是管理者的职责所在,也是适当确定范围和视角的目的所在。也许他们对此没意见,但我敢打赌,除非收益巨大,否则任何一家以盈利为目的的公司都不会继续探索。

              1. 但我们都是门外汉,根本无法具体定义 AGI 的含义,更不用说就其达成任何一致意见了,所以经理和适当的任务调度会在 jira 的冲刺中安排更具体、更谨慎的任务。这甚至不会是一个有一百万张票的史诗。(或许是吧,我不在那里工作,笑)。

                那里的战壕里的人都在从事具体的战术工作,不会因为达到内部 KPI 而被解雇,而这些 KPI 并不是虚无缥缈的 AGI。

                1. >因此,在 jira 中,经理和适当的任务调度会使冲刺阶段的任务更加具体和谨慎。

                  是的,这就是我的话背后的真正含义。营销人员在说 “我们正在开发 AGI!”,但这只是表面现象,就像有人在买房子一样… 就像有人在买房子一样,他们刚开始存钱,还不确定要买哪里的房子,也不知道自己想要什么样的房子。这还只是一个想法,更不用说 “在拐角处 ”了。

                  与此同时,他们还得到了一些小的、平淡无奇但却很重要的垫脚石来做实验。没有什么能让产品线上升,因为这意味着要实事求是。这就是我讨厌炒作文化的原因。它掩盖了真正的进步和对进步的诚实。它让人分心,因为谈论蓝天下的 “事物 ”比谈论真正的垫脚石更有利可图。

    2. LLM 的编码性能与学习过程中窃取的数据量成正比。这就是为什么前端人员对它信誓旦旦,并预测我们将在短短几年内成为新的神级霸主。这是因为前端代码基本上都在那里,只需将其编译成数据集即可。像 SQL DB 这样的东西并不存在于互联网的每个角落,在数据集中的代表性可能很低,因此性能较差。稀有语言或系统语言也是如此,比如 Rust,LLM 对它的使用也非常糟糕。

    3. 它让我不再使用 Google 和 StackOverflow。我可以快速查找大多数东西,而不是和其他人玩 “橡皮鸭”,因此我的效率更高。如果知道 API 和 API 版本,它还能很好地发现函数中的错误。如果我需要了解某些东西在做什么,它可以帮助我注释这些行。

      我用它来改进我的代码,但我仍然无法让它完成任何中等复杂程度的工作。这篇论文与我的经验不谋而合。

      我确实认为它将继续快速发展,但它可能更像是一种认知辅助工具,而不是替代品。我尽量只在时间紧迫或需要一根拐杖来帮助我继续前进时才使用它。

    4. 在我与法学硕士的编码互动中,大约三分之一的人都会遇到这种情况。我一直在努力提高处理这种情况的能力。在某些时候,很明显你已经很好地解释了问题,而 LLM 实际上是在重复同样的错误答案,无法取得进展。尽快发现这种情况会很有帮助。

      我喜欢使用强类型语言(Elm、Haskell),因此很难避免 “只需将编译错误粘贴到 LLM,只需一秒钟 ”的陷阱。在某些时候(通常是来回三次左右),如果 LLM 无法修复错误,它就会生成越来越多不同的编译错误。这就需要我选择真正要深入研究的问题了(这个问题在 Haskell 中比在 Elm 中更严重,因为 Elm 的编译错误是首屈一指的)。

      1. 问个诚实的问题–不是想冒犯你,但你用 Elm 来做什么?在我遇到的每一个地方,它都是一些遗留系统,还没有人关心过它的迁移,它完全就是一个垃圾堆。

        你得花上三天的时间来构建它,然后说 “去他妈的”,然后重写它。

        至少,这是我最后(也是唯一)三次在野外看到榆树代码的经历。

        1. 我不是一个真正的前端开发员。我用 Elm 做玩具项目,事实上我最近就做了一个!

          > 你花了大概三天的时间来构建它,然后说 “去他妈的”,然后重写它。

          你会遇到什么问题?我想象不出 Elm 项目有什么难的!(我也不想冒犯你,但我几乎不相信你!)。

          你是用哪种语言重写那些 “垃圾堆 ”里的 Elm 代码的?

          [0] https://github.com/tasuki/iso-maze

          1. 通常是 typescript,elm 前端往往在一些废弃的 repo 中,这些 repo 已经有两年没有运行过 ci 了,而且会因为缺少部署或安全控制等原因而立即失败。

            1. 对,对,我忘了,我也遇到过这种情况:有人删除了 Elm 库的 repo。但我还是通过存档和发布自己的副本挽救了它。

              不过这种情况在 Elm 中比在 JavaScript 中发生得少!无论何时,我都会选择 “废弃两年 ”的 Elm 项目,而不是 “废弃两年 ”的 typescript 项目!

              在你的案例中,问题并不在于 Elm。

    5. 虽然我确实觉得 llm 很有用,但主要是用于简单和重复性的任务。

      在我看来,他们并没有真正编码任何东西,也没有多少理解能力。他们只是擅长搜索和粘贴从网上搜来的答案。他们还能对这些片段进行简单的转换,比如重命名变量。但如果你告诉它有问题,它并不会尝试真正解决问题。它只会遍历树中的同一分支,并尝试给出树中另一个类似的解决方案;如果没有更好的解决方案,它也会给出相同的解决方案,但也许会对其运行转换。

      所以,简而言之,学习如何编码或教你的孩子如何编码。因为在未来,我认为这将比以往任何时候都更有价值。

      1. > 所以,简而言之,学习如何编码或教你的孩子如何编码。因为在未来,我认为这将比以往任何时候都更有价值。

        教你的孩子如何机智和好奇。编码只是实现这一目标的一种手段。同意,但这是一个很好的方法。

    6. 我最近不得不用 BigQuery 和一些开源数据集做类似的事情。

      正如你提到的,Claude 给我带来了糟糕的结果。它不断幻化出开放数据集文档的部分内容,出现一些无意义的列。当出现错误文本和更多上下文时,也无法修复错误。我在使用 4o 时也遇到了类似情况。

      但我用 o1 做了同样的尝试,它的一致性要好得多,可以完整生成查询和更改。我把文档中的一些内容输入它,只要它一挣扎,它就会想办法解决。

      最终,我用 o1 实现了我想做的事情。我猜是推理帮了我的忙,尤其是当我面对它的幻觉并提供部分文档时。

      也许模型和缺乏 CoT 可能是你遇到的挑战的一部分?

      1. > 并提供了部分文档。

        在这一点上,我会问自己,我是希望我原来的问题得到解决,还是只希望 LLM 成功完成我要求的任务。

        1. 是的,我想有些人确实喜欢阅读BigQuery文档,然后仔细琢磨。而我喜欢完成我的工作。在我的案例中,o1完美地完成了BigQuery,节省了我的时间。我只需要输入开源数据集文档的某些部分

        2. 这取决于自动摄取上下文有多难。

    7. 我每天上班都在做这样的事情。这是个很好的起步基础,但很多时候,你最终还是要通过谷歌或查看文档来了解它在搞什么鬼。

    8. 值得一提的是,我最近编写的一个 SQL 文件出现了错误。我试着自己修复它,并在网上搜索,但还是无法解决。我把它粘贴到 Claude 中,错误立刻就解决了。

    9. 我是 Claude AI 和 ChatGPT 的付费用户,我认为就您提到的使用情况而言,ChatGPT 会比 Claude 做得更好。我建议您以 20 美元/月的价格在相同的使用情况下尝试一下 o1。

      1. 我。大致相同。我认为人们高估了 LLM 之间的差异。就像人们高估了……人与人之间的差异一样。村里的白痴和爱因斯坦之间的差别,在我们人类看来只是很大的差别。从大的方面来说,他们是非常相似的。

        显然,法学硕士和人类并不那么相似!知识量不同,失败模式不同,等等。

    10. 我现在认为,所有的 LLM 都只是给你一个大致的形状,但你必须手动重写它,判断哪些需要保留,哪些不需要保留。

    11. 当 claude 陷入这样的循环时,最好的办法就是在新窗口中重新开始。

      当你把 claude 与一些好的上下文和好的问题结合起来时,它的表现会非常出色。对于 sql 来说,有一些更专业的 llms,我想试试其中之一。Claude 是一款通用型软件,因此并不是在所有方面都很出色。

      它在 react 和 Python 方面非常出色,正如有人提到的那样,初级代码是公开和可用的。

      不过,随机 sql 需要更多的提示 “指导”。多解释数据和错误原因。告诉克劳德:“我认为你在制造泔水”,他就会走出自己的怪圈。

      祝你好运!

    12. 不幸的是,没有一种 “SQL”。所有主要的数据库引擎都有自己的分叉和扩展。如果你没有说明你使用的是哪一种(Microsoft SQL、Oracle、Postgres、SQLite、MySQL),那么你就没有给 LLM 提供足够的信息,就像初级工程师只根据你提供的信息盲目工作一样。

      1. 为了简洁起见,我把这部分省略了,但我一开始就告诉了 Claude 我使用的 Postgres 版本,甚至指明了它产生的错误在 Postgres 中是无效的。

    13. 我也有过类似的看法,现在也是如此,但我觉得我确实有点理解这种炒作: 我发现克劳德和双子座 2 Pro(实验版)有时能做一些我真的没想到它们能做的事情。当然,以前的情况在一定程度上也是如此,而且我已经知道,仅凭这一点并不一定有用。

      因此,我一直在试用双子座 2 Pro,主要是因为我现在可以免费使用它,我认为它已经超越了有趣的范畴,进入了有用的领域。它也有 LLM 一直存在的失败模式问题,但老实说,它已经成功生成了代码,并回答了谷歌绝对帮不上忙的问题。在不处理幻觉/知识缺口的情况下,它生成的代码令人震惊,而且有时还能生成数百行代码,而不会出现明显的错误或 bug,这取决于你问的是什么问题。主要的问题是偶尔会遗漏某个重要细节或将某些方面过于复杂化。我发现它生成的单元测试质量也不尽如人意,因为它生成的单元测试经常相互严重重叠,而且不一定能增加价值(仔细想想,开箱即用的单元测试很少)。

      当我尝试用它来完成实际任务时,我的结果喜忧参半。有几次,当谷歌搜索完全没有结果时,它帮我找到了正确的地方,所以它的价值主张显然是存在的。它擅长生成普通代码、bash 脚本、CMake 代码、Bazel 等,这些代码在我看来都写得不错,不过我还没有足够的信心实际使用它的输出结果。有一次,它建议用一个并不存在的链接器标志来解决问题,但令人惊讶的是,它确实在无意中为我的问题提出了一个解决方案,而这个解决方案同时也确实起了作用(这是一个奇怪的兔子洞,但用 -D_GNU_SOURCE 进行编译,在一个非常老旧、非标准的编译环境中修正了一个不起眼的链接器错误,帮助我用他们基于 apbuild 的上游系统编译了我的 DeaDBeeF 插件)。

      但遗憾的是,幻觉仍然是个问题,而且当前的工作流程(即使使用光标)也有很多不尽如人意的地方。我希望看到能动态抓取上下文和使用网络搜索的系统,尝试编译或运行测试,甚至让其他 LLM “审查 ”工作并尝试达到更好的状态。我相信所有这些都已经存在,但我不是一个真正的法学硕士,所以我没有跟上它的步伐。不过,就我个人而言,鉴于前沿模型的现状,如果真的存在这种系统,我倒是想试试。我只是想看看目前的技术水平能达到什么程度。

      即使抛开这一点不谈,我也觉得它很有用,尤其是在谷歌搜索越来越无法使用的情况下。

      不过,我还是有些担心。如果这些技术发展得越来越好,可能会让很多工程师在发展深层次解决问题的技能方面举步维艰,因为你需要的入门技能将大大减少。学习 RTFM、深入研究代码和进行一般研究是非常有价值的事情。拥有一个可以用作无限懒人网的机器人可能并不是一件好事。

    14. 这就完全解释得通为什么它无法回答你的问题了,因为你没有关系代数的词汇量来正确地为模型填料。任何初级领域都有自己的语料库词汇来表达该领域特有的想法和概念。

      1. 老实说,我不知道这是不是一个讽刺性的回复

  2. 一半的工作是规范和迭代。我认为,人们之所以关注全面取代 SWE,是因为这样做很轰动,但我们最终会发现,SWE 可以专注于模式化程度较低或模糊的工作,而 LLM 则可以更高效地处理子任务,从而提高工作效率。除非使用 LLM 的非 SWE 人员变得足够技术化,能够从 LLM 中获得他们需要的东西,否则我看不出 SWE 如何被完全取代。

    1. > 除非使用法律硕士的非在职人士变得足够专业,才能从法律硕士中获得他们需要的东西

      我是非社会工作者。在过去的一年里,我使用 LLM 完成了几项任务,如果是以前,我可能会付钱给 Fiverr 上的自由职业者。

      其中最复杂的一项是去年春天完成的,我编写了一个 Python 程序,在 Google Colab 上运行,从 Internet Archive 上获取数十本 19 世纪书籍的 OCR 转录本,将转录本发送到 Gemini 1.5,并收集 Gemini 对每本书的五段总结。

      如果我把这项工作发布到 Fiverr 上,我愿意为此支付几百美元。而我自己却能完成这一切,既不懂 Python,也没有使用 Google Colab 的经验。我所花费的只是订阅 ChatGPT Plus(我本来就有订阅)和几美元的 API 使用费。

      我没有让任何全职 SWE 失业,但我确实从 Fiverr 自由职业者那里抢走了一份工作。

      1. > 我没有让任何全职 SWE 失业,但我确实从 Fiverr 自由职业者那里抢走了一份工作。

        我认为这是大多数人在思考人工智能模型将如何取代工作时忽略的细微差别。

        大多数人似乎认为,“如果人工智能不能完全取代社工,那就不会发生”。

        而实际上,人工智能首先会降低门槛,让懂技术但不是特级工程师的人也能加入进来,自己完成工作。或者说,它使现有工程师的工作更有效率。每减少一个小时的工作量,就能将许多原本需要工程师完成的任务分摊开来,最终形成一个工程师的全职价值。如果你省去的是 Fiverr 开发人员的工作,那就意味着 Fiverr 开发人员最终会去做剩下的工作,从而给其他开发人员带来供应压力。

        这和很多人认为自动驾驶汽车无法在每条道路上行驶是一样的。不,他们只需要从一条道路开始,掌握这条道路,然后不断扩展到更多道路。直到它们能处理所有三藩市的道路,然后再扩展到越来越多的城市。

        1. 完全有可能。你有数字和现实世界的例子吗?增长?利润?实际量化的生产力收益?

          你的 “getcha ”方案所忽略的细微差别在于,取代 Fiverr、加速小型副业项目、制作非 SWE 脚本、创建模板等,并不是现在所需要的数万亿美元的破坏。

      2. 这是一个很好的轶事,但大多数软件工程都不是编写脚本。它需要深入大型代码库和许多错综复杂的问题。

        尽管如此,我还是非常看好人工智能在不久的将来能够处理越来越多的这类问题。Cursor 绝对是让我们领略跨代码库理解能力的好帮手。

        1. 附议。Zed 使得为 Claude 3.5 Sonnet 提供整个代码库作为上下文变得轻而易举。这种特殊的模式让我感觉自己就像一个初级开发人员一样,能完成一些小而集中的任务。一年前,我甚至无法想象我现在对 LLM 的使用。

          1. 我不太了解克劳德,但我在使用 03-mini 时遇到的主要问题是,它 “忘记 ”了应该放在上下文窗口中的东西。这导致它使用不同的函数名和数据结构。我认为它是在猜测,而不是从以前的记录中获取。

        2. > 这是一个很好的轶事,但大多数软件工程都不是脚本工程。它需要深入到大型代码库的腰部(或颈部)和许多错综复杂的地方。

          我正在开发的代理(RA.Aid)就是通过在工作前爬行和研究代码库来解决这个问题的。我之所以最终制作了第一个版本,正是因为我正在开发一个较大的 monorepo 项目,其中包含大量文件、后端、API 层、应用程序等。

          因此,我认为 LLM 可以做到这一点,但前提是必须使用一些技术,让它能够锁定代码库中与特定变更相关的特定信息。

      3. 如果目标是在已知数据或输入的情况下,让某个程序大致正确运行一次,那就没问题。实际软件开发的目标是在 100% 的情况下运行,而 LLM 本质上是对开发过程的货物崇拜,委托不可靠的自动化来完成琐碎的任务。可悲的是,软件质量将不断下降,甚至可能下降得更快。

        1. 别再现实主义了,一次性脚本随时都会带来数万亿的投资回报。就我个人而言,每个月的订阅费用可能就有一百万,因为我偶尔编写的模板代码已经无限提速,我随时都能从中获利。

      4. > 我没有让任何全职 SWE 失业,但我确实从 Fiverr 自由职业者那里抢走了一份工作。

        现在谁还会用 LLM 呢。有趣的是,Fiverr 将增加非人类自由职业者。类似于算法交易员。被动收入。

    2. 因此,LLM 在某种程度上使编程变得更高级,类似于过去的新编程语言,或者通过从自然语言生成代码(目前的主要用途?),或者通过解释用自然语言编写的 “程序”(“将 CSV 第 3 列中的所有数字相加”)。

      后一种情况在一定程度上可以让更多人编程,类似于电子表格的作用,而在第一种情况下,正如你所指出的,我们仍然需要完整的 SWE。

    3. 现在每个人都是打字员,所以我认为未来每个人都是 SWE 并不牵强。

      1. 很少有人是打字员。

        大多数人都会使用键盘,但大多数非技术人员的打字速度要比专业打字员差好几个数量级。

        这里的另一条评论提到了他们如何使用 colab 而不是 SWE,但这已经比普通人使用电脑的速度快得多了。

        有些人使用电脑几十年,却不会在电子表格中求和,也不知道电子表格能做什么。

        1. 打字员的每分钟打字速度是多少?

          1. 最狭义的定义:

            > 注册熟练速记员(RSR)是美国国家速记员协会(NCRA)的新称号,它将认可那些希望验证其初级能力水平的速记专业人员。

            > 您必须通过三项五分钟的技能测试 (SKT),以评估您在三个方面的技能水平: 文学方面为 160 wpm,陪审团指控方面为 180 wpm,证词/Q&A 方面为 200 wpm。

            https://www.ncra.org/certification/NCRA-Certifications/regis

            1. 速记与普通打字有点不同,不是吗?

            2. 这是全国法庭记录员协会;如您所说,参与会员资格的是速记法庭记录员和[速记]字幕员、CART 提供者等。他们的会员常见问题解答提到转录员有资格成为准会员–但不是独立的,只是作为速记专业人员的辅助人员(所以我认为更像是视图员)。

              还要注意的是,列出的速度被描述为初级水平。与之相比,速度竞赛(1)的特点是文学作品(即演讲或某种政府文献或类似内容)的阅读速度为 200-220 WPM,陪审团指控(指示)的阅读速度为 200-260 WPM,问答([证人]证词)的阅读速度为 280 WPM。

              从速记出现以来,速记员的典型速度几乎都是这样的,即使是用笔而不是速录机进行速记时也是如此–至少可以追溯到 19 世纪;我个人对早期速记系统的性能无从谈起。

              这些 “起步 ”速度大约是大多数最好的长手打字员的最高水平(例如,请参见 hi-games.net typing leaderboard 的 5 分钟(2) 与 10 秒(3) 测试)。

              至于被视为 “打字员 ”的 WPM 临界值?我的意思是,这又不是什么专业证书。我想,只要会打字,或者足够认真,任何人都可以成为打字员。就连工作要求的事实标准也没什么可参考的:几乎所有客户服务、技术支持、普通办公和其他类似工作的招聘启事中都列出了打字速度要求,坦白说,这些要求从令人沮丧到可笑不等。即使是转录员(长手写,而不是速记,离线转录,而不是实时转录)也不需要超过 80 WPM 的打字速度就能找到工作。在我看来,80 WPM 仍是一种非常乏味的速度,但我知道这通常被认为是一种可观的速度,对于大多数任务来说绰绰有余,所以我想如果非要选一个的话,我对这个数字也没意见。

              我也赞同上面 jb-wells 的观点,认为任何触摸打字的人(最好能达到三位数,或者在自己能力允许的范围内)都可以被视为打字员,或者任何设法说服别人付钱让他们以任何速度打字的人。

              1. https://www.ncra.org/home/the-profession/Awards-and-contests

              2. https://hi-games.net/typing-test,300/

              3 https://hi-games.net/typing-test,10/

          2. 我猜准确率在 95% 以上,每分钟 60-70 瓦?我还没有获得所需的证书)

            我妈妈在 70 年代上过秘书/商务助理学校,打字课(在打字机上!)要求用十个手指触摸打字。当时的要求是,你的打字速度要足够快,能够抄录别人的口述内容(他们学会了在速度较快的情况下使用速记法)。

    4. 如果在我改进提示的同时,LLM 无法在 3 到 5 次尝试中为我找到解决方案,我就会退回到泥淖中的传统方法,或者使用其他模式,如 Gemini。

    5. > 在这种情况下,他们可能已经成为了 SWE

      或者学会使用像 Bubble 这样的软件

    6. 是的,前几天我第一次尝试了 Copilot,它似乎能够很好地处理这种方法–我不得不完善细节,但这一切都不是因为幻觉或类似的东西。我没有给它机会去尝试处理高层次目标,但根据以往的经验,它最多只能做一些毫无意义的夸张工作。

      另外,关于 “不是真正的程序员 ”这一点: 如果我们像我所相信的那样,认为编程的 “真谛 ”是将指令细粒度化和将数据流概念化的能力,而如果 LLM 仍然不适合编码任务,除非用户能做到这一点,那么这似乎会破坏 “只有使用 LLM 才能假装是程序员 ”的观点。

      总之,我使用 VSCode 中的 Copilot 来 “修复 ”这段 “代码”(它建议我通过……实现它来 “修复 ”我的 “代码”,然后还提供了一个完整的示例):

        # Take a URL from stdin (prompt)  
        # If the URL contains "www.reddit.com", replace this substring with "old.reddit.com"  
        # Curl the URL and extract all links matching /https://monkeytype.com/profile/[^>]+/ from the html;  
        # put them in a defaultdict as the first values;  
        # for each first value, the key is the username that appears in the nearest previous p.tagline > a.author  
        # For each first value, use Selenium to browse to the monkeytype.com/profile url;  
        # wait until 'div[class='pbsTime'] div:nth-child(3) div:nth-child(1) div:nth-child(2)' is visible AND contains numbers;  
        # assign this value as the second value in the defaultdict  
        # Print the defaultdict as a json object
  3. 这一点在几年前就已经显而易见了,因为在这个行业里,每个人都要面对大量的公关报告,而这些报告都是由人工智能编码员审核的,他们有时甚至根本无法解释所做的改动。称其为人工智能,干得漂亮。

  4. 好吧,OpenAI 目前确实有 288 个职位空缺,其中包括大量的软件工程师,所以这也说明了一些问题。

    1. 笑死我了,那个地方歪曲人工智能,在全球范围内制造了太多恐怖事件,我现在都不想给 sama 回复邮件了。

  5. 这反映了我所看到的情况。我发现在我经验最丰富的地方,法学硕士对我的帮助最大。

    也许这是因为提示和预防边缘情况的明确性。也许是因为我很清楚应该做什么。在这些情况下,有时我还是会因为一个比我设想的更完整的答案而感到惊讶,因为一些边缘情况是我没有想到的。

    但如果我完全不知道,事情就会完全偏离轨道。我在做一些棘手的前端工作时,使用了动态放置的 reactflow 节点和贝塞尔曲线边缘。为了解决这个问题,我花了 6 个小时的时间,而且因为沉没成本,我很难停止使用这个助手。但是,如果我坐下来,花几个小时真正分解问题,然后开始实施,我可能会收获更多,速度更快。

    法学硕士最诱人的地方在于,当你时间紧迫时,让他们来解决设计问题。而当你了解领域和工作的自下而上视角时,它解决问题的方式在能力方面是具有欺骗性的。

    在这种情况下,我们希望 upwork 上的人能够深刻理解他们的问题。如果他们了解,他们可能就不会在 upwork 上发帖了。这就是他们想要的报酬。

    1. 我刚和一位客户有过这样的对话。很难避免将人工智能拟人化。一旦你把人工智能系统等同于人类–一个能编写出完美的 pep8 格式 python 的人,很可能是一个正派的 python 程序员,而一个能敲出一些几乎不可读、间距和变量命名风格混杂的代码的人,很可能是一个新手。

      我们用这些信号来表明我们对代码的信任程度–书面文字也是如此。结构不良的句子?断句或停顿?也许这个人知识不够渊博。

      这些捷径在生成完美语法的系统上都会惨遭失败,所以当你把从与人类打交道中获得的刻板印象带入人工智能世界时,当你拆开信息,发现尽管语法无可挑剔,但正确率只有 75% 左右时,你就会大吃一惊。

    2. > 但如果我不知道,事情就会完全偏离轨道。

      根据我的经验,这正是让法学硕士提高工作效率的关键所在,当他们偏离方向进入幻想世界时,能够迅速发现并将其扼杀在萌芽状态。

      然后你向他们指出问题所在,他们会认为自己犯了一个愚蠢的错误并加以改正,然后你要求他们在你刚刚同意的基础上再接再厉,他们又会去重新提出他们刚刚同意的那个明显的问题……因为归根结底,他们更像是一台花哨的自动完成机器,而不是真正的思考机器。

      我发现,即使在使用新语言时,它们总体上也能节省时间,但我认为这在很大程度上是因为我有几十年的编码经验,一旦它们开始肆虐,就会触发我的警觉。

      我无法想象,当一个没有扎实编程基础的人盲目地相信这些东西会产生有用的代码,直到运行时或编译时的错误变得不可避免地显而易见时,那该是多么滑稽可笑。

  6. > 尽管首席执行官山姆-奥特曼(Sam Altman)坚称,到今年年底,他们将能击败 “低级 ”软件工程师。

    对我来说,“低/高水平 ”开始失去意义,因为它的用法正好相反

    1. 低水平首席执行官与高水平首席执行官在哪里?

      我敢打赌,人工智能现在就能胜任他们的工作。

      有人能写出人工智能软件来取代这些人吗?

      1. 管理顾问。主要特质是自信和创造内容的能力。无需坚持到底。

      2. 软件工程师可能更容易实现自动化,你对此感到困扰吗?

        1. 恰恰相反。法学硕士更擅长做 CEO,而不是写代码。一个优秀的开发人员+法学硕士,而不是 CEO,也能取得成功。一个好的 CEO + 法学硕士而不是开发人员是不可能成功的。(对于科技公司而言)

        2. 考虑到有些鸡的表现比股票经纪人还要好,所以不可能。

        3. 这是事实吗?我的意思是,请看链接的文章;即使是这家公司,其整个商业模式就在于让人们相信这_是_个事实,但它却有点像在说 “是的,也许不是”,并含糊地承诺明天会有果酱。

    2. 更妙的是,如果你点击进入链接来源,他根本没有说 “低级”,也没有提出任何与他被引述的说法类似的说法!

    3. 是的,低级语言与低级编码员混为一谈,在某种意义上是相反的意思

  7. LLM 仍然只是文本生成器。这些统计模型无法思考或解决逻辑问题。它们可能会愚弄人们,就像 Weizenbaum 的 “Eliza ”在 60 年代末所做的那样,生成的代码有时会运行一下,但识别和解决逻辑问题是我经常看到这些东西失败的地方。

    1. 你有没有试过最新的型号,将它们与 Cursor 等一起使用?它们可能不是真正的智能产品,但如果 SWE 无法发现它们已经提供了很多价值,我会感到很惊讶。

      它们可能无法解决完全新颖的问题,但它们善于将现有的解决方案移植到新的领域。我只用提示就做出了一些非常疯狂的东西–当然,我可以在需要时提供详细的技术指导,因为我是一名社会工作专家,就像指导一名初学者一样。我在几个小时内就完成了需要几天时间才能完成的原型,这让我非常兴奋。

      纯人工智能生成的代码质量并不高,但我现在的做法是利用它来创建原型,主要是通过提示(创建原型所需的时间与创建一个模型或文档来解释之前的想法一样多),然后一旦我们对它做出承诺,我将主要通过手工来重建它,但会使用 Cursor 来提供帮助。

  8. 对于那些说 “我试过了,但第一次并不完美,所以我放弃了 ”的开发人员,我想起了我父亲常说的一句话: “一个糟糕的木匠会责怪他的工具”。

    因此,在很多情况下,人工智能不会在第一次尝试时就正确回答你的问题。它不得不根据你提供的有限信息做出大量假设,其中有些假设可能与你的具体情况不符。学会更好地提示,它就会更好地为你工作。这是一种技能,就像生活中的其他事情一样。

    想象一下,如果你今天去找一份工作,然后说 “我试过谷歌,但它没有给出我想要的第一个结果,所以我不再用谷歌了”。我不会雇佣一个不能学会使用人工智能作为工具的开发人员,因为人工智能能让工作效率提高 10 倍。如果这就是你的态度,2026 年可能真的会为你的新生活敲响警钟。

    1. SO有效的原因之一是,正确或最佳答案往往会排在列表的前列。人工智能很难可靠地做到这一点–因此它更接近于随机选择答案的《SO》,你必须尝试几个答案才能得到正确答案。

      另外,我敢打赌,你父亲一定想象过木匠的工具箱里装满了公认有用的工具。而对于我们中的许多人来说,人工智能还不够格。

      1. 我想说的是,如果你希望它为你失败,那它绝对会这么做。你第一天也不擅长打字。我在不到一年的时间里,就从一个拥有 20 年经验的普通工程师变成了一个能够解决任何问题的 10 倍工程师。这一切都是因为我学会了如何有效地使用工具。

        不要放弃,重新骑上自行车,继续前进。我保证,只要你给它一个机会,它就会让你大吃一惊。

        这是一个工具,就像你学过的其他工具一样,但它会让你成为一个更好的工程师。它可以填补你对代码理解的所有空白。你可以向它请教所有你不愿向同事请教的问题,因为你觉得自己不知道会显得很笨。如果还是不明白,你可以请它再解释一遍。如果你知道如何使用它,它就会非常强大。

  9. 我在几家最大的科技公司工作了 15 年,拥有丰富的编码经验。我个人的看法是,大多数人都不知道这些人工智能编码系统已经有多强大。如果你使用 RepoPrompt 这样的系统,有选择性地选择要在提示中包含哪些文件,然后清楚地描述你想要做哪些修改,同时提供相当一部分源代码,那么 O1Pro 这样的模型就能在第一时间找到解决方案。

    真正的问题在于人们没有为模型提供适当的上下文。随便拿一个与你接口的编码库来说,比如 Postgres 数据库连接客户端。LLM 本身并不了解该客户端的所有不同配置和细微差别。但是,如果您将客户端的源代码和您自己代码库中的相关部分一并传入,就能为模型提供所需的准确信息。

    每次这样做,包括大容量的提示(可能是 50,000 到 100,000 个令牌),都会大大提高模型生成准确、有用响应的能力。有了像 O1Pro 这样的强大模型,结果可能会非常出色。关键不是这些模型没有能力,而是用户没有向它们提供正确的数据。

    1. 你的意思是OpenAI发表了一篇论文,评估了他们自己的模型在实际问题中的应用,但却没有正确使用他们自己的模型?还有/或者说,你比OpenAI的科学家更了解如何最有效地使用OpenAI的模型?

        1. 我不是这个意思。

          但是,当产品的设计者公开了自己产品的局限性时,却告诉我们他们很愚蠢,不知道如何使用自己的产品,这确实不应该只是一句 “相信我,兄弟 ”就能作为证据的。

  10. 我觉得这个故事的框架很令人沮丧。

    新基准的目的是收集当今 LLM 无法全面解决的任务。

    如果一个人工智能实验室建立了一个基准,而他们的模型在这个基准上的得分是 100%,那他们就是在浪费大家的时间!

    写一篇报道说:“哈哈哈,看看 OpenAI 的模型没能打败他们创建的新 benchemark!”这完全是对研究的误解。

    1. 嘘……你破坏了大家对法学硕士的确认偏见。他们显然不擅长编码,正如我们一直都知道的那样,每个人都应该嘲笑他们。没什么好看的!

      1. 只要这些公司继续假装人工智能已经准备好取代人类,我就会对谎言抱有偏见,谢谢。

      2. 既然你是知情的酷孩子之一,能否分享一下盈利的路线图,甚至更好的预期/夸大的投资回报率?请不要掺杂科幻成分。

  11. 我不知道有多少通过 SWE-lancer evals 的解决方案会因为质量不高而不被发帖人接受。

    我一直在尝试用人工智能 100% 自动解决 Bug 和添加功能,但我不得不承认这是失败的。如果没有人能读懂代码、完全理解人工智能生成的代码并提出改进建议(SWE 在环路中),人工智能代码大多是不好的。

  12. 这是继与之前的基准测试公司建立未公开的合作关系之后的内部基准测试。真希望他们的下一款机型不会在未来几周内大幅超越这一基准。

  13. 他们应该给它喂食 Bootcamp 学习材料和《破解编码面试》一书,以提高它的编码能力。

    1. 如果它能掌握二叉搜索树,它就能掌握一切。

      1. “如果你需要提高速度,请添加哈希表”。

  14. > OpenAI 的研究人员承认,即使是最先进的人工智能模型,仍然无法与人类编码员相比–尽管首席执行官山姆-阿尔特曼(Sam Altman)坚称,到今年年底,他们将能够击败 “低级 ”软件工程师。

    在这一点上,这就是 20 年代的 “明年一定能实现自动驾驶汽车”。

  15. 人工智能模型评估其 “编码 ”能力的基准应该是真实世界的生产级软件源,并修复其中的错误,如 Linux 内核、Firefox、sqlite 或其他大型知名软件源。

    而不是 Hackerrank、Leetcode 或以前的 IOI 和 IMO 这些我们已经有了解决方案的问题,以及复制从别人那里复制的最佳解决方案。

    如果它连大多数没有前人解决方案的未知编码问题都无法处理,那它还有什么希望正确解释和修复代码行数超过 100 万至 1000 万行的复杂软件源的错误呢?

    1. 对于不知道 IOI 和 IMO 指的是什么的人;

      IOI 指的是国际信息学奥林匹克竞赛(International Olympiad in Informatics),这是一项面向高中生的著名年度计算机科学竞赛;而 IMO 指的是国际数学奥林匹克竞赛(International Mathematical Olympiad),这是一项面向大学预科学生的世界著名数学竞赛。

      (讽刺的是,由 ChatGPT 提供)

    2. 兰瑟的新基准是实际问题,而这正是它失败的主要原因。

  16. > 不允许模型访问互联网

    有多少软件开发人员能够在不接触互联网(stackoverflow、谷歌搜索、文档)、工具(终端、调试器、linter、cli)的情况下,以零起点的方式(在记事本中编写,然后只编译一次并执行一次)解决大多数简单的编程问题(“Hello world ”除外)?

    我认为这样的比较并不能做出任何判断。未来的基准测试应在允许代理在 5-10 分钟内解决问题的情况下进行,并允许代理访问互联网、文档、linter 和带有 MCP 服务器的终端。

    1. > 有多少软件开发人员能在无法访问互联网(stackoverflow、谷歌搜索、文档)、工具(终端、调试器、linter、cli)的情况下,用零镜头风格(在记事本中编写,然后只能编译一次并执行一次)解决大多数简单的编程问题(“Hello world ”除外)?

      曾几何时,SO 并不存在,人们能够解决非琐碎的问题。曾几何时,考试中的编码问题必须在纸上解决,如果不能编译,就不能及格。

      1. 你没听懂我说的 “零缺点 ”风格,在这种风格下,你只有一次机会来编译和执行代码。即使在过去,当人们使用打孔卡编程时,也需要大量的审查和迭代。这就是 python、ruby、php、javascript 等脚本语言流行的原因,因为你可以获得非常快速的反馈回路,并进行数十次小型实验。我们今天遇到的大多数编码问题本质上都不是算法问题。

        1. 我的考试只有一次机会,在纸上写,在脑中编译代码。

    2. 互联网搜索能为模型提供什么他们还没有的东西?大多数数据源,如 stack overflow、目标语言的文档以及各种相关论坛帖子,都已经是训练集的一部分。

      除非有其他人来告诉它 “这里是如何一步步解决 x 问题的”,否则我看不出超出其临界点的额外信息会有什么帮助。(也许人工智能可以在论坛上发帖等待答案?)

      是的,迭代编程可以通过获取工具来帮助我们–我认为这很有帮助。

      1. 为什么程序员要搜索特定的问题,而不是总是依靠他们固有的知识?

        我是一个蹩脚的业余程序员,但对我来说,看看是否有人已经完全实现了我需要的东西,或者调试出了我遇到的问题,是很有用的。我认为,期望程序员或法学硕士从第一原理出发,对每个库在每种情况下的使用了如指掌是不合理的。

        1. 我这样做是为了在需要休息或进食之前节省有限的脑力。你可以花 5 分钟写一个排序(高级处理),或者直接使用现有的代码,这可能需要花 5 分钟来查找,但耗费的脑力更少。

          这样你就可以把脑力用在需要你做的特定事情上,让谷歌记住特定命令的格式,或者让人工智能写出你的路由文件。

          我年纪越大,受时间、知识或范围的限制就越少,但受清晰度的限制就越多。尽可能将任务委托出去,并保持整个项目和你的职位的清晰度。

        2. 但为什么在知识截止之前,这些信息不会被包含在已经编码在模型权重中的广泛爬行中呢?我相信这篇文章提到了前沿模型,所以我们在这里讨论的是在数万亿代币上训练出来的模型。

          1. 除了截止日期之外,模型也不会将训练集中的所有内容逐字编码。论坛上一篇关于 Foo 库 v13.5.3 版与 Bar 2.3 版不兼容并导致 ValueErrors 的帖子是不会成功的。

          2. 因为截止日期可能是几个月前,而且每个月都有新版本的库在开发。API 被弃用、移除或添加新的 API。模型需要访问最新的 API 或 SDK,并了解当前可用的 iOS SDK 和 MacOS 版本等。访问 github 问题也有助于找出库中是否存在错误。

    3. 你听起来像是一个从未使用过打卡机的人。

      我认为如果经过培训,大多数开发人员都能做到这一点。作为一个在互联网出现之前就学会编程的人,这只是一种不同的思维方式,需要一些时间来适应。

      我现在就在做这样的事情,在没有本地环境的情况下,要花一天的时间才能将更改放到暂存中。你可以适应它。

      1. > 你的口气就像一个从未使用过打卡机的人。

        我希望 HN 永远不会改变。

    4. 这在很大程度上取决于问题的类型。如果我们谈论的是在现有的大型代码库中修复一个错误或添加一个新功能(这可能是专业软件工程工作的一大部分),我认为大多数工程师都可以在没有互联网的情况下完成这些任务。尤其是如果目标仅仅是通过基准测试,让它正常工作,而不考虑未来的情况。

    5. 我几乎从来不看 StackOverflow,因为那里的答案质量太差了。StackOverflow 曾经是个好地方,但大量重复的答案[1] 确实毁了它,而且过时的答案也不会被替换。谷歌搜索结果也很糟糕。

      不过,我同意你的观点。法学硕士 “模式并不适合某些任务,事实上很多任务都不适合 ”法学硕士 “模式。它适合创意写作,但即便如此,也只是因为我们对创意写作的标准很低。它在写作中没有任何真正的创造力或天赋。它可以胡编乱造并紧扣主题。在准确性方面,它很差。它无法编辑自己的作品!在现实生活中,没有人能一气呵成地完成写作,即使是创意写作,尤其是代码或技术写作。它需要能够做一整套其他事情:移动输出块、重写块、扩展块、压缩块、根据外部来源或适当的知识库检查块、比较块的内部一致性等等。这就是我们的工作方式:在函数或代码块层面,在段落、句子和章节层面。

      [1]: 是的,这与这里的人通常遇到的问题恰恰相反,那就是重复的东西被关闭了。我认为应该删除更多的重复内容,并将其重定向到规范答案上,这才是改进的重点。谷歌搜索经常给我几乎没有答案或没有答案的重复答案,我不得不在网站上四处点击才能找到谷歌一开始就应该给我的结果(更好的关键词匹配、未关闭、更高的分数等)。我认为 StackOverflow 是故意这样做的,这样人们就不得不点击更多页面,看到更多广告。

    6. 我经常思考这个问题。当前状态下的人工智能就像是在一个没有互联网或编译器的孤岛上与实习生一起工作,他们必须在纸上按前进顺序写下所有代码,如果他们还要在失明的情况下编写任何用户界面,那就太糟糕了。正因为如此,所有 “用人工智能从头到尾构建一个应用程序 ”的产品都无法很好地运行。

    7. 人工智能模型是根据互联网上的数据训练出来的,所以当然,它们无法利用搜索功能在互联网上搜索,但我怀疑这些素材与模型已经训练过的内容有多大差别。

      此外,在 stackoverflow 和谷歌时代之前,SWE 们会打开书或文档来了解他们正在使用的技术。

    8. 面试不就是这样的吗?所以我认为很多开发人员都会这么做。

      1. 像白板上的 leetcode 这样的面试只是在测试你的推理能力,而不是测试你的解决方案是否能在开箱即用的情况下执行。人类是以迭代的方式解决问题的,这就是为什么快速反馈回路和使用工具是必不可少的。当你开始编码时,编译器或线程会提示你忘记关闭某些大括号或漏掉分号。编译器会提示你新版本的 API 已更改,intellisense 会提示你在当前上下文中可以使用哪些方法,可以使用哪些参数及其类型。执行程序时,运行时会提示你可能漏装了某个节点或 Python 软件包。安装软件包时,你会得到提示,可能某个软件包有额外的依赖关系,或者两个软件包的版本不兼容。命令行工具(如 `ls`)会告诉你项目的结构等。

    9. 我以前可以。网络让我变得懒惰。网络让我变得懒惰,我以前比现在好,不用网络时也比现在好。

      真的,你认为对你有帮助的东西往往只是在拖你的后腿。

    10. 作为一个定期为大学生组织编程竞赛的人,我认为几乎所有的竞赛都是如此。

    11. > 有多少软件开发人员能够在不接触互联网(stackoverflow、谷歌搜索、文档)、工具(终端、调试器、linter、cli)的情况下,以零起点的方式(在记事本中编写,然后只编译一次并执行一次)解决大多数简单的编程问题(“Hello world ”除外)?

      有经验的人可以

    12. 这些模型的标准高于人类。仅凭文档,他们就能解决任何编码问题。

      1. 培训的目的不就是让他们掌握所有可能掌握的信息吗?所以他们不需要互联网,因为互联网上只有他们已经 “知道 ”的信息……

  17. 原文链接:https://arxiv.org/pdf/2502.12115

    简要说明:

    他们用编程任务和经理任务进行了测试。

    绝大多数任务都需要修正错误。

    Claude 3.5 Sonnet(性能最好的 LLM)通过了 21.1% 的程序员任务和 47.0% 的管理员任务。

    当 LLM 被赋予更多的尝试机会时,它们通过测试的概率会更高,但没有太多数据显示它们在哪些方面的改进出现了停滞。(可能是由于运行测试的成本太高)。

    我个人还有其他担忧:

    – 如果要求一个人反复审查 LLM 试图解决问题的尝试,那么在尝试几次之后,这个人就会不那么彻底地审查事情,久而久之,就会让假阳性漏掉。

    – 如果要求 LLM 对反复尝试解决问题的 LLM 进行审查,那么 LLM 就会认为自己是正确的,而不考虑实际情况。

    – 使用 LLM 会增加代码库中的代码流失率

    – 众所周知,代码流失的增加不利于项目的健康发展。

  18. 我越来越认为,生成式人工智能的影响更多是一种渐进式的颠覆,而非革命性的。与印刷术相比,它更像电子表格。

    电子表格成为主流后,以前需要大量人力手工劳动的计算工作变得非常容易。它使许多工作和从事这些工作的人被淘汰。但它们并没有从根本上颠覆社会或对智能的需求,也没有在一夜之间推广开来。

  19. 编码,尤其是文章中提到的那种编码(根据规范构建应用程序),是一项非常复杂的任务。它不可能一蹴而就,也不可能立即得到完美无瑕的结果。

    这就是为什么大多数软件项目(由人类构建)都要经过多次迭代才能完美运行的原因。

    在问 “人工智能能像人类一样编码吗?”之前,我们应该考虑一些问题:

    – 人工智能是如何学习编码的?使用的是什么结构化课程?

    – 人工智能是否接受过经验丰富的前辈的指导,后者解决过人工智能尚未遇到的实际问题?

    – 人工智能是通过动手编码学习的,还是仅仅通过阅读 Stack Overflow?

    如果我们想把人工智能与人类智能相提并论(甚至超越人类智能),难道我们不至少需要考虑人类是如何学习这些复杂技能的吗?

    现在,这就好比给了人类成千上万本编码书籍,让他们去 “阅读 ”和 “理解”,但却不给他们在计算机上测试程序的机会。这就是现在的基本情况!

    如果不这样做,我认为我们永远无法确定当前人工智能的局限性是由于其 “智力低下”,还是因为它没有得到适当的学习机会。

    1. 从根本上说,LLM 只能在训练阶段做一些类似于学习的事情。因此,当你与它互动时,它已经学到了它所能学到的一切。我们关心的问题是,它学到的知识是否足以帮助我们解决 X 问题。除了它学到的知识之外,系统的 “智能程度 ”没有任何有意义的概念,你甚至无法设想与基础知识脱钩的抽象智商测试。

    2. >人工智能是如何学会编码的?

      它没有,它只是很擅长复制已有的代码并稍加修改。

      >人工智能是否接受过经验丰富的前辈的指导?

      它甚至不知道什么是有经验的前辈,它只关心在特定情况下某些模式出现的频率。

      >人工智能是通过实际编码学习的,还是仅仅通过阅读 Stack Overflow?

      它 “学习 ”的方式是收集大量现有代码,其中大部分都是质量很低的开源概念验证,然后吐出可能与问题相关的代码段。

      1. 我认为我们过分简化了 “模式匹配 ”的含义。这也是人类大脑运作的基本机制之一。我相信,我们有意识地(或许是潜意识地)认为,人类的 “逻辑 ”和 “推理 ”比模式匹配更高级。然而,我认为事实并非如此。

        根本区别在于每种情况下模式是如何形成的。对于语言学家来说,他们所知道的只是他们从 “文字 ”中观察到的模式–这是他们唯一拥有的 “感觉”。但是,对于人类来说,模式识别涉及不断摄取和识别我们五种主要感官中的模式–不仅是单独的,而且是同时的。

        例如,当一个龙8国际pt娱乐官网把一个东西描述成 “球形 ”时,它无法感觉到球的形状,因为它缺乏与 “球形 ”一词相关联的另一种感官。相比之下,人类拥有触觉,可以将 “球 ”这个词或音型与握住球的物理感觉联系起来。

        1. >`这也是人类大脑运作的基本机制之一。

          大脑运作的基本机制之一。我们与其他所有有大脑的动物共享的部分、

          祝你好运,教你的狗编码。

          狗早上帮你拿报纸的本领再强,也不意味着年底它就能醒来给你写一套会计软件。

          1. 我们甚至不需要那个例子。例子就摆在我们面前。用一个较小参数的模型,要求它做与较大参数模型同样复杂的事情。它会很吃力。

            顺便说一句,我并不是说参数的多少才是最重要的。

  20. “当你面对新事物时,你可以这样选择。你可以利用这一技术进步,决定 “这是做我现在正在做的事情的一个更好的方法,我可以利用它继续我正在走的路”,所以这就是停留在粉色平面上,或者你可以说 “这不是一个更好的旧事物,这几乎是一个新事物,我想知道这个新事物试图成为什么”,如果你这样做,实际上有机会获得一些令人难以置信的杠杆作用,而不是简单地优化一些无法优化的东西。- 凯

    目前的 LLM 将改变世界,但这不是通过快速完成拉取请求来实现的。

    尽管 “星门级 ”的 LLM 可以大大加快粉色平面的遍历速度,甚至不需要找到正确的用例。LLM 扩展将是这一代计算机图形扩展的趋势。就智能而言,基于 gpt4 的 o3 不过是一枚邮票。随着 LLM 的扩展,将会出现一幅智能图景。

  21. LLM 永远无法解决这个问题,它们基本上只是美化了的复制粘贴引擎,解决真正的代码问题需要发明创造,即使是最基本的任务。他们目前所能做到的最好的情况就是,他们没有能力或实力真正解决问题,而不是在绝大多数时候出错。

    1. > 法律硕士永远解决不了这个问题

      我们应该在 5 年后重新审视这一评论。

  22. 我相信。我甚至无法让 o1 或 claude 3.5 编写一个 tampermonkey 脚本来关闭 LibreChat 中的自动滚动到底部功能,即使上传 html 和 javascript 作为上下文也是如此。

    显然,这与 React 中的溢出锚点或其他东西有关?不知道。我放弃了。

    1. 除非使用 JS 进行字面上的滚动,否则我打赌某些 CSS 策略应该可以做到……

  23. 我通过 Windsurf 创建了一个非常基本的 Flask 脚手架,一旦达到一定的代码量,它就开始删除或奇怪地重写旧的部分来处理上下文。(你是对的,让我们把它移回去吧”)。结果不太好。

  24. > SWE-Lancer,基于自由职业者网站 Upwork 的 1,400 多个软件工程任务而构建

    这里没有提到的是(我认为),这个基准中的任务是有价格的,总和高达百万美元。

    而目前的人工智能能赚到近一半的钱。

    因此,虽然从技术上讲,它们还不能解决大多数问题(目前还不能),但它们已经完全有能力从你的盘子里拿走大约 40% 的食物。

  25. 在我看来,从示例中学习要比从文档中学习容易得多,当我想知道某个功能的附加参数或缺点时,我就会使用文档。不过我不是程序员。

    1. 我希望 LLM 能够使用可接受的设计标准来介绍示例,例如,pythonic 的方法是什么,有哪些例外情况可能会产生更好的性能/优化(代价是什么),或者最好的 go(lang) JSON 解析器是什么(因为内置的不是很好)。

      但相反,我得到的是平均水平或低于平均水平的示例(令人惊讶的是,这就是在高噪声-信号数据集上进行训练时会发生的情况),这些示例要么有微妙的错误,要么有严重的错误。随着 reddit 和其他论坛试图引入人工智能机器人撰写的帖子,我看不到这种情况会有所改善。当然,这些公司肯定知道 LLM 在几代(甚至几十代)内输入自己的输入时输出是如何退化的。

  26. 人工智能不会 “解决 ”问题,它所能做的就是记住问题。如果要求它们解决任何具有挑战性的新问题,它们就会开始产生幻觉。至少目前是这样。

    1. 我为 OpenAI 和山姆-阿尔特曼到处谈论 AGI 而感到羞愧。我对整个科技界感到失望,因为他们上当了,或者至少是假装相信。就像LinkedIn一样 每个人都假装自己是积极向上的人 尽管他们知道这很恶心,而且没人相信。

      1. 每当人工智能幻化出一点复杂的 SQL 或一些它没有太多训练数据的工具/语言时,我就会想到 AGI 的炒作和山姆-奥特曼(Sam Altman)关于人工智能在不久的将来如何用于治疗癌症的言论。

        1. 相反,如果他们正确地说这是一个有用的工具,可以帮助研究人员使用,就像大数据的智能计算器一样,那就会诚实和正确得多。

  27. 不知道他们发现了什么。要么是模型无法使用,要么是他们无法使用模型解决任务。好像他们用的是直接问题,而不是思维链。同一个模型的结果取决于你如何提问。这些任务所需要的思考可能比模型在一次请求中所能做的还要多。更有趣的是,如果有足够的时间,模型是否有能力解决这些问题。使用由某些框架自动协调的多个请求。

  28. 人工智能领域最大的骗局是 Salesforce。他们会采用一些自己制作的蹩脚模型,或者干脆改用更好的开源模型。然后,他们会与云服务提供商达成一笔大交易,为他们的所有客户安装所有这些模型,然后以 OpenAI 每月 100 倍的价格将其作为人工智能重新出售给他们的客户。而且质量会更低。

  29. 在我看来,O1 相当不错。我不知道它是如何消化整个代码库并解决其中的 bug 的。从上面的文章中我看不出这些细节。但 o1 确实对我快速使用新语言编码非常有价值。

  30. 在这一点上,LLM 是 Stack Overflow 的最佳替代品。如果你正在做的事情已经有了大量的文档,而你只需要一个入门指南或一些骨架样板代码,那么 LLM 就是最好的选择。

    它们完全没有创造性,但我 99% 的工作也没有创造性。

  31. 文章的结论是,法律硕士 “在软件工程方面的技能还不足以取代现实生活中的人”。

    然而,根据参考文献,克劳德 3.5 首十四行诗 “赚取 ”了 403 325 00 美元。这就是价值 40.3 万美元的劳动力可能被取代。

  32. 模特们不能上网,这意味着他们不能直接抄袭网上发布的类似答案

    所以……和人类编码时使用的基本工具不一样?

    1. 如果这些任务是基于自由职业者网站上已有的任务,那么法律硕士们就可以直接谷歌搜索任务,然后复制粘贴解决方案。

  33. 我不明白为什么会有人认为目前的人工智能能够独立规划或推理。

    有记忆的变形金刚就另当别论了。

    但是,没有记忆,就没有推理能力。故事结束了,对吧?

  34. 尽管编码性能乏善可陈,但人工智能已经证明,它能够为裁员、裁员、减少股票赠与和增加高管奖金提供获利的理由。

    所以,这并不全是坏消息。

  35. 这说明编码基准是多么不现实、不准确和毫无意义。

    我还包括类似的代码面试平台,如 leetcode、hackerrank 等。

  36. 前情提要:https://news.ycombinator.com/item?id=43086347

  37. 有趣的是,尽管其他机型价格更高,但在传统基准测试中表现更好,克劳德却胜出了。

  38. 我认为这类文章的结果其实是积极的。SWE-Lancer “基准提供了对 LLM 能力更务实评估的可见性。

    具有讽刺意味的是,它实际上反驳了同一篇文章中提到的 Altman 的说法。当你创建了一个无法获得体面分数的基准时,就很难取代工程师了。

    1. 也可能是 永远不要准备你认为不会成功的基准/比较。当你的资金主要来自私人/风险投资者时,这一点尤其重要。时间会证明一切。

      我认为他们正试图构建一个叙事框架,然后取得成功。让我们拭目以待。这有助于向投资者/风险投资人证明 OpenAPI 所做的验证和努力是正确的。毕竟,在我看来,如果没有编码作为 LLM 的用例,人工智能就不会像现在这样受到热捧。贪婪(利润)和恐惧(失业)是保持投资炒作和资金流入的巨大动力。

  39. 我看到了这个

    尽管如此,LeetCode 75 的思维链还是很不错的

    既然面试官 “想看看你是如何思考的”(并且比其他候选人平均用更少的时间得到正确答案)

    我现在知道你应该如何思考了(而且比其他应聘者平均用更少的时间得到正确答案,暂时如此)

  40. … 然后他们尝试了十四行诗 3.7

  41. 这些模型被限制访问互联网,被迫在内部开发自己的解决方案。

    我认为研究人员会发现,人类编码员在无法访问互联网的情况下,无法解决大多数编码问题。

    1. 你说的是哪种问题?有的问题需要你不断学习新的库和服务,查阅文档;有的问题是实际的软件问题,你必须对自己的大型代码库进行反思。我处理过这两类问题,在第一种情况下,模型实际上非常精通 CloudFormation 的所有语法,而我却必须查找这些语法。相反,我曾在旅行中编写过许多功能,无法被互联网分心,只有我和代码,并且能够阅读库源代码。

      事实上,编程需要抽象建模,而语言模型并不具备完全复制的能力。至少,我们现在还看不到。

    2. 一个在特定领域拥有丰富经验的合格人类程序员可能会依靠互联网访问来查找 API 文档和其他通用参考资料,但如果你阅读论文,就会发现所测试的人工智能系统在方法和推理方面存在更多基本缺陷(“3.6.讨论”,从第 7 页开始)。

    3. 如果你要求人类编码员编写有效的、可编译的代码,也许可以。但如果是这样,那你的编码面试就错了。

      我参加过的任何面试都要求被面试者使用伪代码展示他们解决问题的能力。

    4. 该死的 1992 年之前他们是怎么写代码的?

      1. 80 年代我们确实有了 usenet,90 年代有了 gopher。但没错,在那个年代,我们使用的是神话般的 “纸 ”东西(或者说我们还在使用纸莎草纸,我忘了)

    5. 真的吗?我觉得我在互联网时代之前的工作效率最高的时候,是被困在横跨大西洋的航班上,带着一本 java(不寒而栗,说到创伤后应激障碍)参考手册和电池只能勉强维持 2 个小时的笔记本电脑,强调 “两次测量,一次切割 ”的心态。

      看着初级程序员从 SO 或 W3schools 复制粘贴代码(包括明确标注为非生产代码示例),却几乎不知道自己在做什么,真是令人痛苦。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注