spring63的个人博客分享 http://blog.sciencenet.cn/u/spring63

博文

人工智能自动生成程序代码

已有 3806 次阅读 2022-12-28 16:11 |个人分类:科技资讯|系统分类:海外观察

2022年,人工智能技术最吸引人眼球的进展之一是OpenAI引入了一种称为ChatGPT的聊天机器人,可以通过长形式问答对话,回答复杂问题。这是一项革命性的技术,许多用户对它提供人类质量响应的能力感到敬畏。

ChatGPTOpenAI基于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!)

MeyerI 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)

MeyerCan you please give me the code in Eiffel ?

梅耶:你能给我Eiffel的代码吗?)

现在,瞧,ChatGPT仍然推断平方函数!ChatGPT生成程序如下:

图片.png 

ChatGPT生成的代码 A

不止于此。贝特朗·梅耶继续与之交谈它会自我纠正,但通过采用一种逐案编程

MeyerBut for 6 I wanted 35, not 36

梅耶:但是,对于6我希望得到35而不是36”)

ChatGPT生成程序如下:

图片.png 

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: 该函数可以编写如下:)

图片.png 

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




https://blog.sciencenet.cn/blog-3005681-1369518.html

上一篇:智能办公楼
下一篇:数据是新的石油吗?
收藏 IP: 120.244.142.*| 热度|

3 许培扬 王恪铭 谢钢

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 12:57

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部