CodeGeeX能打过Copilot吗?

人工智能 开源
在实际开发中,CodeGeeX的使用体验是远差于Copilot,但是CodeGeeX是清华实验室的开源免费项目,在算力支撑和数据量而言是远低于OpenAI。基于CodeGeeX项目的基础上,可以进行私有部署,对算法模型进行改进优化,还是需要支持蹒跚前行的国产开源模型的。

写在前面

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项目的基础上,可以进行私有部署,对算法模型进行改进优化,还是需要支持蹒跚前行的国产开源模型的。

总之,还有许多需要做的。

责任编辑:姜华 来源: 前端一码平川
相关推荐

2023-04-18 23:23:58

2023-09-21 11:48:49

CodeGeeXAI代码

2023-11-03 07:46:54

CodeGeeX编程助手

2023-06-09 13:37:00

排行模型

2017-06-02 09:10:15

架构等效性系统

2021-09-23 09:50:37

LinuxWindows命令

2022-03-17 16:59:38

人工智能GitHub

2010-06-21 10:09:47

Java

2021-01-31 17:42:49

比特币货币黄金

2024-03-04 00:10:00

并发并行JavaScript

2021-05-11 08:22:32

Epoll 监听I

2021-08-30 07:22:15

Go类型interface

2024-03-25 09:11:45

CopilotAIPC

2020-05-20 09:26:59

Node.jsDenoJavaScript

2012-03-13 09:21:40

虚拟化云计算虚拟桌面

2021-02-06 23:00:39

机器学习工程人工智能

2021-02-23 11:04:44

比特币加密货币货币

2015-08-07 10:06:26

加班编程热情

2015-08-11 09:39:25

重构提高代码质量

2022-11-21 14:02:14

点赞
收藏

51CTO技术栈公众号