> 自媒体 > (AI)人工智能 > aiXcoder郝逸洋:迎接GPT-4挑战,未来将开发千亿级语言模型丨GTIC 2023
aiXcoder郝逸洋:迎接GPT-4挑战,未来将开发千亿级语言模型丨GTIC 2023
来源:智东西
2023-04-23 12:42:33
287
管理

智东西

编辑 | GTIC

智东西4月14日报道,在刚刚落幕的GTIC 2023中国AIGC创新峰会上,AIXcoder(硅心科技)CTO郝逸洋带来了主题为《大型语言模型(LLM)时代下的代码生成》的主题演讲。

他谈道,GPT-4带来了代码生成的新变革,支持更长序列、更多指令号微调、多模态(图片输入)等操作,展现出更适于泛用的效果,同时也面临不少问题,包括缺乏相关文件、依赖库及需求文档,以及速度较慢、信息安全威胁等。

实际上,程序生成模型与语言模型有较大区别,比如在交互方式方面,普通的对话语言模型以问答、续写为主,程序生成模型则需要填空、补全、备份。

郝逸洋称,未来,aiXcoder将促进模型从百亿级扩展到千亿级,加入大量自然语言处理 代码的混合数据,针对编程中的各类场景专门构造指令数据集,从而得到综合性能更好的代码编辑工具。

据悉,aiXcoder(硅心科技)是一家AI虚拟编程机器人研发商,旗下有“aiXcoder智能编程机器人”,基于深度学习模型,并针对不同的专业领域和编程语言,能够自动预测程序员的编程意图,向用户推荐即将书写的下一段代码,进而提升代码的编写效率。

以下为郝逸洋的演讲实录:

各位下午好!

之前的一些环节其实都是在讲一些比较大的、涉及到整个AI领域上的一些事情,接下来我讲的内容可能会比较聚焦一些,重点聚焦在代码这个小领域上。但说小也并不小,整个开发的程序员群体其实是非常庞大的,它能产生的市场价值也是非常大的,这就是我们正在做的事情。

一、LLM时代的代码生成,GPT-4利弊并存

在ChatGPT出来之前,世界上就已经有很多的代码生成模型。那什么叫做代码生成?用AI的方式来生产代码,帮程序员完成一部分的写代码工作,未来甚至还有可能代替程序员,这就是代码生成。在ChatGPT或者说是GPT-4出来之前,我们用的办法很简单,就是把代码换到大型的自然语言模型当中,让它来续写代码。

到GPT-4时,已经比之前的ChatGPT版本好多了。GPT-4有1750亿的数据,在GPT-3的基础之上对ChatGPT进行微调,让它学会了对话的能力,又在它的基础上进一步训练。虽然OpenAI没有公布出相关的细节,但从结果来看,GPT-4有了更长序列的理解能力,以及更多的指令微调,还包括对图片的理解能力,这就是我们现在得到的GPT-4。

GPT-4还能完成代码优化,我给了它一小段有缺陷的代码,代码中循环一百万次往一个relist里面放东西,我希望它能发现这一百万次其实有点大了,应该要先申请一批内存,而不是不断地去增加循环次数。但出乎意料的是,GPT-4并没有发现这个问题,反而发现了两个别的问题。GPT-4把所有的东西都放到一个文件夹里,最后一口气来打印所有的日志,并给出解释以及最后的描述,GPT-4具备一个完整的能力。

GPT-4对片段也有理解能力,我给了它一个很长的代码,问它是什么意思,它就能告诉我是什么意思,对于用户而言这是一种很强的能力。GPT-4是很泛用的代码功能,它是在GPT-3的能力之上训练出来的,为GPT-3加入了一些RHF让它有更好的对话能力,又在这个基础上训练出了GPT-4。

我想GPT-4的能力从GPT-3而来,我做了一个实验,给了它同样的一段代码,问它这段代码的问题是什么,它的答案前半部分描述了我在做一件什么样的事情,后面却越说越不对劲,它说我收到了以下错误,实际上我没有收到任何错误。为什么GPT-3会有这样的行为?GPT-3的训练模式就是语言模型,这个模型主要就是往后续写。我给它一个问题,它就续写这个问题,虽然它把这个问题更加详细地描述了一遍,但并不是我所希望的东西。

这种情况有一个很好的办法可以避免掉,当我给它一个引子,给它冒号告诉它接下来要写的答案,让它续写,针对我们的需求构造出一个提示,让模型可以根据我们的提示往后生成内容。这是在ChatGPT之前我们使用大语言模型的主要方式,它也能答出这个结果,跟GPT-4给的答案是一致的。如果我接下来告诉它,接下来需要修复的问题是什么,需要修复的代码是什么,它应该也可以以同样的方式给出来。

GPT-4的强处就体现在这里,是很泛用的能力,可以解决开发中遇到的各种问题。我总结了一下,在用GPT-4辅助代码开发的过程中,你只用把你的问题描述一下,丢给GPT-4,就能用它的结果。Github前两天发布了CopilotX,本质上就是在做这件事情,除了刚才demo中的四个场景,另外还有两个场景,一个是文档搜索,另一个是Prompt Quest描绘的生成,和自然语言相关,主要的功能和我刚才测试的场景差不多。

二、GPT-4弱势初显:依赖数据、速度慢、信息安全隐患

我们用GPT-4或者是CopilotX去做这个辅助代码开发时,我们兴冲冲地去尝试,但是往往会遇到很多实际的问题,比如如果我们要做一个可以在网页上运行的贪吃蛇程序,要把这个问题描述清楚可能有点难度,一般的程序员还得先想想或是上网查点资料才能写出来,但这个问题对于GPT-4来说没有难度。

真正有难度的是,当我在写一个有业务逻辑的代码的时候,我需要把用户购物车里的商品循环一遍,还要把每个商品的价格取出来求一个和,获得总价来反推回去。

这个逻辑让一般的程序员理解起来没有问题,但是让GPT-4来做这件事就很困难。GPT-4和我们所理解的购物车不一样,它不知道购物车是什么,我们需要把这个结构告诉它。总价要怎么获取它也不知道,种种因素放在一起导致很难跟GPT-4描述清楚这件事情,因此它生成的代码很难用。

实际上,在设计这个训练任务的时候,里面有很多小细节需要考虑。最简单的一个方法,也是很多预训练模型的方法,先确定一个长度,假设是1024,有了这个长度之后,在里面随机挖出一个空,让模型来补全这个空并生成里面的内容。无论怎么生成,它都不会超过当前的长度,这就会导致一个问题,当我们在实际代码中使用这样一个模型的时候,我们发现无论这个空有多长,模型都会努力用最短的代码把前后文连接起来。

最后,我们设计了一套方案,强制保留前文和下文,并且不限制这个空的长度,最后得到了一个模型。我们一开始期望模型输出能把不存在的值给定义出来并且补充完整,但是它直接把当前的函数结束了并且又新建了一个函数。

遇到这样的问题我们只能通过改变训练任务来解决,设计训练任务的时候就要考虑到这些情况。

我举这个例子就是想说,在训练GPT-3、GPT-3.5、GPT-4时也要考虑这样的问题。GPT-4目前的缺陷,第一是在实时性上,它对于代码纠错缺少实时性,只能在代码全部写完后整体纠错;第二就是它的上下文序列有限,看不到项目里面所有的信息。最后一点也是它最致命的问题,整个项目中的信息、配置、文件等和从网页上抓取的文件差异很大,和主动构造的数据相比它表现的还是要差一些。

aiXcoder是用ChatGPT类似语言模型的方式做代码生成的一套工具,现在已经免费上线使用了。

我们的下一步就是要汲取ChatGPT在代码上的能力,首先是把大模型参数逐步从百亿级增加到千亿级,还要加入更多的自然语言数据来训练它,让它有理解自然语言的能力,最后通过指令微调来针对更多场景,构造一个指令级的数据,解决在代码中的程序依赖问题,最后能得到一个最好的代码全模型,完成代码理解、代码生成、代码修复的综合智能化代码开发。

谢谢大家!

以上是郝逸洋演讲内容的完整整理。

2
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 凡本网注明 “来源:XXX(非本站)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。 如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。 QQ:617470285 邮箱:617470285@qq.com
关于作者
天泰悠然(普通会员)
文章
353
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40329 企业收录2981 印章生成184523 电子证书784 电子名片48 自媒体20029

@2022 All Rights Reserved 浙ICP备19035174号-7
2
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索