写在前面
CodeGeeX是一个类似于Github Copilot的、拥有130亿参数的多编程语言代码生成的预训练模型,是由清华大学、智谱AI等机构共同研发的。
当前CodeGeex是开源免费使用的CodeGeex开源地址,相对于Copilot的使用方式没有那么陡峭,CodeGeex使用文档还是比较简单的。
CodeGeeX无需VPN,可以直接在vscode插件平台安装使用,上手简单。
CodeGeex的4种使用模式
CodeGeex包含4种使用模式,分别是:
- 隐匿模式
- 交互模式
- 翻译模式
- 提示模式
隐匿模式
CodeGeex处于激活状态时,停止输入内容后,就会从光标处开始生成内容,生成待选内容后会以灰色显示,按Tab键即可插入生成结果。(这一点和Copilot一致)
交互模式
按Ctrl+回车键激活交互模式,可以在右侧窗口显示生成的x个候选片段(x数量可以在设置的Candidate Num中修改,最多可以生成3个候选项,数目越多生成越慢),点击候选片段上的use code即可插入使用。(这一点是有点困惑,在实际使用中只生成了一个候选项)
翻译模式
Windows系统是Ctrl+Alt+T,Mac系统是Ctrl+Option+T激活翻译模式,CodeGeeX会把该代码翻译成匹配您当前编辑器语言的代码。点击翻译结果上方的use code插入。还可以在设置中选择您希望插入的时候如何处理被翻译的代码,您可以选择注释它们或者覆盖它们。(这个翻译模式相比较Copilot是不友好的,没有结合上下文生成匹配语言的代码,反而要进行二次交互)
当选择的内容是纯注释,点击Ctrl+Option+T可以选择待翻译的目标语言,一次性生成代码,个人体验比隐匿模式更直接:
提示模式
官方demo
可以对需要处理的代码进行选择,按Alt/Option + t触发提示模式,此时会出现预定义模板列表(默认的是只有Java和Python语言模板):
可以根据自己的需求在配置文件中的Prompt Templates,进行模板内容添加和编辑:
模板内容:
实际使用:
这个模式还需要探索,没有达到预期。
额外功能(个人认为可以归纳为编程语言转译)
可以点击在侧边栏的CodeGeex插件,在input框输入待处理代码和选择语言,在output框选择目标语言点击Translate按钮进行转译:
CodeGeex使用过程发现的问题
1、上下文结合能力不强,编码能力较弱
CodeGeex对上下文的识别能力不是很好,当我要它在ts文件中写一个贪心算法解决股票买卖问题时,它给我的是c++语言的头部引入:
我们看到官方给出的demo,也是如此,至少我没想明白。
在重新让它生成代码时,它会给我补充注释,但是补充的是英文,没有结合上下文内容:
翻译模式下,这个引入的内容不知道从哪儿来的:
明确要求使用ts语言生成代码片段,还是直接候选的是c++头部文件:
2、生成的内容累赘,不够简洁,还标注了模型训练代码来源(属实没想到)
当要它写出一个快排算法示例时,万万没想到还注释了模型训练的代码片段来源:
3、代码生成较慢
简单的代码不能够一次性给出,还要一小句一小句给出:
4、对JS/TS的支持不友好
在使用隐匿模式时,在py文件可以根据上下文生成代码,在ts或js文件却生成的是c#代码。
写在最后
在实际开发中,CodeGeeX的使用体验是远差于Copilot,但是CodeGeeX是清华实验室的开源免费项目,在算力支撑和数据量而言是远低于OpenAI。基于CodeGeeX项目的基础上,可以进行私有部署,对算法模型进行改进优化,还是需要支持蹒跚前行的国产开源模型的。
总之,还有许多需要做的。
文章版权声明
1 原创文章作者:天空之城,如若转载,请注明出处: https://www.52hwl.com/66873.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别