又一写代码AIGC代码生成模型开源,程序员来检验一下效果!
大家好,我是千寻哥,我最近准备成为了日更技术博主,哈哈哈,就是得给自己立个FLag,人才会有动力进步!
我发现一说,出现了哪些自动生成代码的工具,80%的程序员都是会一些焦虑的。没办法,选择程序员这一行就注定了会有35岁这个存在也可能不存在的危机感!
不过天空飘来五个字:那都不是事!程序员需要发展自己的副业,最好是可以反哺你的主业,哈哈哈,AI时代一切跟上洋哥,把握AIGC生成暂时的,可能也是最后一个风口!那么我们直接进入正题。
最近Meta 开源代码专用大模型 Code Llama,且免费商用。效果也非常好,不过,仅仅又过了一天,Phind 微调版 Code Llama 又迎来了一个强劲的对手。这次是 WizardLM 团队的编程专用大模型 WizardCoder。
该团队推出了基于 Code Llama 的最新版本模型 WizardCoder 34B,它利用 Evol-Instruct 进行微调而成。
- GitHub 地址:https://github.com/nlpxucan/WizardLM/tree/main/WizardCoder
- Huggingface:https://huggingface.co/WizardLM/WizardCoder-Python-34B-V1.0
此次具体版本是 WizardCoder-Python-34B-V1.0,下图是与主流闭源和开源模型的 HumanEval pass@1 比较。除了最新 API 的 GPT-4(该团队测试后得到的结果是 82.0%),该模型超越了所有闭源和开源模型,包括最新 API 的 ChatGPT(72.5%)和原始 GPT-4(67%)。

因此,WizardCoder-Python-34B-V1.0 成为了最新的 SOTA 开源代码大模型。

WizardLM 团队还表示,WizardCoder-Python-34B-V1.0 的性能百分之百是可以复现的。
想要体验 WizardCoder-Python-34B-V1.0 的小伙伴可以尝试以下 demo。
测试demo 地址:http://47.103.63.15:50085/

有人表示,在试了 demo 后发现,提供准确代码之前似乎有 COT(思维链)在起作用,这非常棒。

还有人表示,WizardCoder-Python-34B-V1.0 要比 GPT-4 犯的错更少。

不过运行 WizardCoder-Python-34B-V1.0 需要 32GB 以上的 Mac电脑。

WizardLM 团队会带来更多惊喜
WizardCoder 在成为代码家族一员已经不是新鲜事,但是 WizardLM 团队每次都会给大家带来不一样的惊喜。
斯坦福发布的大语言模型排行榜 AlpacaEval 是一种基于 LLM 的全自动评估基准,且更加快速和可靠。很多著名的模型如 GPT-4、ChatGPT 等都在其上刷榜单。在这其中,WizardLM 13B V1.2 依旧在第六位。
下面我们直接进入实操的教程部分,作为AIGC模型,必须检验传统算法效果以及算法生成效果,哈哈哈,还有面试必考的八股文!
(1)首先使用生成模型写冒泡法数组排序的python代码:

(2)代码生成结果:

(3)如果不是程序员的朋友,别着急,我还帮大家准备了IDE环境下的验证,在pycharm编辑器运行:

运行的排序效果不错,冒泡法排序的时间复杂度是O(N²)
可能冒泡法排序,算是比较检测的算法测试,下面我们再测试一下,新的内容。
现在正值秋招以及金九银十,相信很多的面试者都会比较头疼八股文,让我们测试一下WizardCoder模型对计算机八股文的回答效果怎么样!
(4)来一道计算机网络的八股文提问验证一下WizardCoder大模型的功能
问题:可以用中文讲讲HTTPS与HTTP请求的区别吗?
以下是回答的截图:

从专业的角度来看,回答的还是不错的,基本和搜索引擎是一个水平,不过并不是100%的精准,但是还是那句话,大模型的研究是一个趋势,必须坚持!
那么既然可以在数据结构与算法领域以及八股文的领域进行使用,那么你肯定还会想,既然是python的大模型,在深度学习领域的效果到底如何呢?
(5)训练深度学习模型训练来验证WizardCoder生成代码的能力
问题:使用python3以及torch写一个训练手写数字的代码:
以下是回答的截图:

我们来验证一下代码写的如何,放入Google Colab实验环境,进行运行。
运行输出结果:

怎么样,运行的准确率94.64%,也表示出来即使是随机生成的代码,准确率也是不错的。
经过千寻的多次测试验证,感觉python3的相关代码生成最为准备,大家可以用来生成脚本,进行测试!
除了实操应用,我们对生成模型的工作原理进行内容解析如下,包括其常见的参数设定,以及如何设定的背后逻辑。
(6)生成模型的Max tokens参数设定
PS:在这里我们可以看到,进行模型推理计算的时候,有一个Max tokens的参数设定,这个参数是做什么的呢?

我们在以上的参数设定中Max tokens参数修改为64,可以发现最明显的变化是生成的语句变短了,大家可以这么理解,Max tokens作为请求的次数限制,如果极致一点,设置为max tokens=1:

生成的内容之一个:Here!
(7)生成模型的Temperature温度参数设定
关于温度参数的设定,大家可以把它类比为New Bing AI的标准化以及创造力的平衡参数,Temperature越接近0,生成的答案就越标准客观,Temperature越接近1,生成的答案也就越具有创造力。
Temperature = 1:

最明显的一个区别就是具有明显的解释,更加人性化。
怎么样,效果是不是还不错呢,千寻觉得适当的焦虑可以帮助你有动力去努力生活,但是可千万不能太焦虑,影响正常的生活节奏!
千寻也测试了一下,目前为止的代码大模型确实已经可以在一定程度上替代程序员了,但是我认为,程序员想做到不失业,要学会拥抱变化!利用这些大模型提高你的开发效率才是王道!
我是千寻哥,一个只讲干货的码农,我们下期见~
