||
2022年,人工智能技术最吸引人眼球的进展之一是OpenAI引入了一种称为ChatGPT的聊天机器人,可以通过长形式问答对话,回答复杂问题。这是一项革命性的技术,许多用户对它提供人类质量响应的能力感到敬畏。
ChatGPT是OpenAI基于GPT-3.5开发的大型语言模型聊天机器人,一种大型语言模型(LLM)。大型语言模型通过大量数据进行训练,以准确预测句子中的下一个单词。
在ChatGPT交互式人工智能助手发布以后,除了围绕ChatGPT的炒作和喧嚣之外,许多人开始尝试在现实世界中应用。例如,漫无边际的聊天、搜索一个主题同时解释复杂的主题、回答一个简单但棘手的数学问题、音乐创作、以多种语言创建内容、准备工作面试、撰写几乎任何主题的论文,以及产生、调试和解释代码等等。
这里仅讨论ChatGPT交互式人工智能助手产生的代码达到什么水平了?日前看到贝特朗·梅耶(Bertrand Meyer)教授博客文章(参考资料[1])中给出的示例,颇为出乎意料。
贝特朗·梅耶教授例子的问题是:有一个函数,对0得到0,对1得到1,对2得到4,对3得到9,对4得到16,对5得到25。在这一点上,几乎所有人(和ChatGPT)都会说,你不需要继续,我明白了:平方函数。
梅耶教授将上述值提供给ChatGPT。但是,为了更好地评估ChatGPT的能力,他补充说,对6得到35。(注意,不是36!)
Meyer:I have a function which gives 0 for 0, 1 for 1, 4 for 2, 9 for 3, 16 for 4, 25 for 5 and 35 for 6.
(梅耶:我有一个函数,给出0它得到0,1得到1,2得到4,3得到9,4得到16,5得到25,6得到35)
Meyer:Can you please give me the code in Eiffel ?
(梅耶:你能给我Eiffel的代码吗?)
现在,瞧,ChatGPT仍然推断为平方函数!ChatGPT生成程序如下:
ChatGPT生成的代码 A
不止于此。贝特朗·梅耶继续与之交谈,它会自我纠正,但通过采用一种逐案编程。
Meyer:But for 6 I wanted 35, not 36
(梅耶:但是,对于6我希望得到35而不是36”)
ChatGPT生成程序如下:
ChatGPT生成的代码 B
在梅耶教授的一次尝试中,他还得到过一个if-then-else,默认情况下为n*n,特殊情况下为35。
下一个问题是函数对7得到什么值,得到了一个令人失望的回答,但当指出对此不满时,事情再次变得令人惊讶,事实上比以前更令人惊讶。
Meyer:Is there a more general way of phrasing it, rather than case-by-case
(梅耶:有没有比逐案更通用的措辞方式)
ChatGPT: Yes, there is a more general way of expressing the function that returns the desired output. Instead of using a series of 'elseif', cluses, you can use a formula to calculate the value for any input 'n'.
(ChatGPT: 是的,有更通用的方式来表达返回所需输出的函数,而不是使用一系列 'elseif' 子句,您可以使用公式来计算值输入 'n')
ChatGPT: The function can be written as follows
(ChatGPT: 该函数可以编写如下:)
ChatGPT生成的代码 C
推断出的函数令人印象深刻。对于n=0,得到结果是0,对于n=1,得到结果是1。但是,对于n=2,得到结果是5。
应该说,编程“几乎正确”在软件中并不是很有用。我们需要正确的答案。当然,手工编程的程序也有bug,但这些程序是以人类的速度开发的,有相应的测试技术与之配套。
无论如何,现在确实有了一种技术,可以从自然语言的描述中生成程序。如果你需要一个程序元素,并且能够描述这个需求,人工智能助手会为你生成它。对你选择的编程语言没有特别的限制。如果其描述和示例足够有效,代码也可能会很好。但是,正如在上面看到,即使有正确的描述,我们仍然可能得到错误的答案。随着技术进步,出现这种情况的可能性将降低,但可能性仍将存在。
参考资料:
[1] Bertrand Meyer. What Do ChatGPT and AI-based Automatic Program Generation Mean for the Future of Software. Communications of the ACM. December 23, 2022
https://cacm.acm.org/blogs/blog-cacm/268103-what-do-chatgpt-and-ai-based-automatic-program-generation-mean-for-the-future-of-software/fulltext
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-26 23:45
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社