随着最近发布的 ChatGPT,人工智能再次嗡嗡作响,ChatGPT 是一种自然语言聊天机器人,人们用它来写电子邮件、诗歌、歌词和大学**。 早期采用者甚至用它来编写 python **,以及对 shellcode 进行逆向工程并用 c 重写。 ChatGPT给那些渴望人工智能实际应用的人带来了希望,但它也引出了一个问题:它会取代作家和开发人员吗,就像机器人和计算机将取代一些收银员、流水线工人,也许在未来会取代出租车司机一样。
很难说未来人工智能文本创建能力会变得多么复杂,因为该技术将吸收越来越多的写作示例。 但我认为它在编程中非常有限。 如果有的话,它最终可能只是开发人员工具包中的另一个工具,用于处理不需要软件工程师提供的批判性思维技能的任务。
ChatGPT 给很多人留下了深刻的印象,因为它在模拟人类对话方面做得很好,而且听起来知识渊博。 它由流行的文本到图像 AI 引擎 Dall-E 的创建者 OpenAI 开发,由一个大型语言模型提供支持,该模型已根据从互联网(包括存储库)抓取的大量文本进行训练。 它使用算法来分析文本,而人类则微调系统的训练,以听起来像人类写的完整句子回答用户问题。
但 ChatGPT 也有缺陷,同样的局限性阻碍了它用于编写内容,也导致它在创建时不可靠。 因为它是基于数据,而不是人类智能,所以它的句子听起来很连贯,但没有提供关键的、明智的回应。 它还重新利用了仇恨言论等冒犯性内容。 答案可能听起来很合理,但可能非常不准确。 例如,当被问及 1,000 和 1,062 这两个数字中哪个更大时,ChatGPT 会自信地给出一个有理有据的答案:1,000 更大。
OpenAI 提供了一个使用 ChatGPT 来帮助调试的示例。 响应是基于前面的 ** 生成的,并且缺乏复制基于人工的 QA 的能力,这意味着它可能会生成错误和错误。 OpenAI 承认,ChatGPT“有时会写出听起来合理但不正确或毫无意义的答案”。 这就是为什么它不应该直接用于任何程序的制作。
缺乏可靠性给开发者社区带来了问题。 Stack Overflow 是程序员用来编写和故障排除的问答,暂时禁止使用,称 ChatGPT 生成的响应量如此之大,以至于无法跟上质量控制,这是由 ChatGPT 完成的。 人类。 “总的来说,由于从 ChatGPT 获得正确答案的平均比率非常低,因此发布由 ChatGPT 创建的答案可能对 ** 和提出或找到正确答案的用户非常有害。 ”
撇开编码错误不谈,由于 ChatGPT 与所有机器学习工具一样,是在适合其结果的数据(在这种情况下是文本性质)上训练的,因此它缺乏理解人类计算环境以进行良好编程的能力。 软件工程师需要了解他们正在创建的软件的预期目的以及使用它的人。 好的软件不能通过用内省的**拼凑程序来构建。
例如,ChatGPT 无法理解简单需求中的歧义。 虽然很明显,如果一个球只是向上反弹,另一个球反弹然后再次反弹,第二个球会移动得更远,但 ChatGPT 很难处理这种细微差别;如果要从开发人员手中接管这些系统,则需要这种细微差别。
它在基本数学方面也遇到了麻烦,例如当它被要求确定哪个更大并在负数和正数之间提供选择时。 ChatGPT 自信地告诉我们正确的空间总和,但无法理解 -5 小于 4。 想象一下,您的恒温器失控了,因为加热从 40 摄氏度而不是 -5 摄氏度开始,因为 AI 程序已经对其进行了编码!
预训练的人工智能**生成也引发了一些有关知识产权的法律问题;目前,无法区分限制性许可证或开放许可证。 如果 AI 从受版权保护的存储库中借用预先编写的行,这可能会使人们面临许可合规性的风险。 这个问题已经引发了针对另一款基于 OpenAI 的产品 GitHub Copilot 的集体诉讼。
我们需要人类来创造人们所依赖的软件,但这并不是说人工智能在软件开发中没有一席之地。 与安全运营中心使用自动化进行扫描、监控和基本事件响应的方式相同,AI 可以用作处理较低级别任务的编程工具。
在某种程度上,这已经发生了。 GitHub Copilot 允许开发人员使用 ChatGPT 来改进**、添加测试和查找错误。 Amazon 提供 CodeWhisperer,这是一款机器语言驱动的工具,旨在帮助开发人员在集成环境中使用自然语言注释和生成的建议来提高生产力。 有人创建了一个用于 ChatGPT 的 Visual Studio 扩展。
一家公司正在为开发人员测试人工智能。 与谷歌共享母公司的Deepmind今年早些时候发布了自己的生成工具AlphaCode。 本月早些时候,DeepMind在《科学》杂志上发表了对CodeForces平台竞赛的模拟评估结果,题为“机器学习系统可以可编程”。 除了标题语法之外,AlphaCode 还通过解决“需要结合批判性思维、逻辑、算法、编码和自然语言理解的问题”在参与者中排名前 54%。 “这种编码平台的开发可以对程序员的生产力产生巨大影响,”摘要说。 它甚至可能通过将人类工作转移到制定问题来改变编程文化,机器学习......负责构建和执行。
机器学习系统每天都在变得越来越先进;然而,他们无法像人脑一样思考。 40 多年的人工智能研究一直如此。 虽然这些系统可以识别模式并提高简单任务的生产力,但它们可能并不总是像人类那样高效**。 在我们让计算机大规模生成**之前,我们可能应该看到像 Alphacode 这样的系统在 CodeForces 等平台上排名前 75% 的参与者,尽管我担心这对这样的系统来说可能太多了。 同时,机器学习可以帮助解决未来的简单编程问题,让未来的开发人员能够思考更复杂的问题。
目前,ChatGPT 并没有颠覆任何技术领域,尤其是软件工程。 对机器人将取代程序员的担忧被夸大了。 总会有一些任务可以由具有人类认知能力的开发人员完成,而机器永远无法完成。