大家好,我是 Jack。
AI 写代码想必很多人都体验过了,使用 AI 编程工具是一个大趋势,越早学会使用 AI 辅助你写代码,你的效率也会越高。
甚至有些公司已经要求员工具备 AI 编程能力。
对于学生党,AI 编程可以帮助我们学习,做课后作业、做毕设;对于上班族,AI 编程可以帮助我们提高工作效率,甚至是翻译别人的“屎山”代码。
之前跟大家聊过各种 AI 工具,其中 CodeGeeX 的呼声很高,这个 Copilot 的国产免费平替版到底有着怎样的魅力?
我体验了一番后发现,它有着三个明显的优势。
  • 对个人开发者完全免费;
  • 不用使用科学上网非常方便;
  • 对中文支持非常友好。

一、CodeGeeX

GitHub Copilot 刚发不出来的时候,很多用户表示编程效率有了较大的提高。随后,就涌现了各种代码生成的大模型,包括:DeepMind 的 AlphaCode、Salesforce 的 CodeGen、Meta 的 InCoder 和 Google 的 PaLM-Coder-540B。
而国内较为出名的就是 CodeGeeX,它是清华和智谱 AI 联合打造的多语言代码生成模型。
可以看到,整体也是 Transformer 的结构,采用 KQV 这种经典的多头注意力机制。
除了词嵌入,也用到了位置嵌入,从而帮助模型学到位置之间的依赖关系和自然语言的时序特性。
CodeGeeX 的预训练预料也很丰富:
  • 开源代码数据集:Pile 和 CodeParrot;
  • 从 GitHub 爬取代码,选择的代码仓库至少有一个 star 且小于10MB,然后过滤文件:
    • 每行超过 100 个字符;
    • 自动生成的;
    • 字母比例小于 40% 的;
    • 大于 100KB 或者小于 1KB 的。
通过这些规则,清洗出高质量数据。
上图展示了训练数据中 23 种编程语言的占比。训练数据会被划分为等长的片段。为了帮助模型区分多种语言,在每个片段前添加了语言相关的标签,例如:language: Python。
如今,CodeGeeX 的训练集应该更大了,毕竟它们也在一直持续优化更新。
CodeGeeX 已经完成了新一轮的进化,除了效果的提升,又增加了工具箱模块。
接下来,讲解下怎样玩转 CodeGeex。

二、CodeGeex 体验

1、安装

CodeGeex 支持很多主流的 IDE:
我平时习惯用 VSCode,今天就以它为例进行演示。
CodeGeex 官网:
https://codegeex.cn/zh-CN?article=1113
VSCode 插件安装地址:
https://marketplace.visualstudio.com/items?itemName=aminer.codegeex
打开 VSCode 找到应用扩展。
搜索 codegeex,然后点击安装。
安装后选择登陆,然后就会弹出一个页面,用手机账号注册一下就搞定了。
CodeGeex 侧边栏有三个模块:Ask、工具箱、代码翻译。

1、Ask 问答模式

我们先来个简单的热身菜,在 Ask 模块中输入:用 python 写一个贪吃蛇游戏。
将生成的代码拷贝过来。
python test.py 运行代码。
代码顺利运行。怎么样,有了 CodeGeeX 写个小需求还不是手到擒来?
不过代码呢,不是写完就完事了,如果你用它来做课后作业,作业是 1 秒就写完了,但也没学到知识啊。
这时候,CodeGeeX 就是你最好的老师。选中不懂的代码,左侧的对话框会自动填充这段代码到提示框中。
找到不懂的代码,然后提问:什么意思?
CodeGeeX 会详细给你解释,这段代码是什么含义,为什么这么写。
除了学习,这个功能对于上班族来说,还可以翻译同事写的“屎山”代码,让 AI 帮你一起缕清头绪。
咱们接着加大一点难度,我想处理一批图片数据,把这些图片中的人脸裁剪出来,保存到 res 目录下。
人脸检测是我们经常会用到的算法,比如裁剪人脸后,训练一个 LoRA 模型之类的。
在 Ask 中输入:使用python和opencv检测图像中的人脸,遍历images目录下的图片,裁剪后的图片请保存res目录下。
将代码拷贝过来,然后再运行。
瞧,这样就大功告成了。

2、翻译代码

CodeGeeX 除了这种问答功能,还能翻译代码。
比如一段 js 代码,这是一段冒泡排序算法,我想将代码翻译成 python 的,点击翻译,这样就搞定了。

3、工具箱

最后,咱们再看看 CodeGeeX 的工具箱,这个是最新上线的功能。
我们在浏览网页的时候,经常会碰到  HEX 格式的颜色数值,我们想用到这个颜色。
但是代码却需要用到 RBG 格式的数值,这个时候就可以用到这个工具了,运行一下,可以能得到对应的 RGB 值了。
我们再考验一下它 Excel 转 JSON 的能力,我们新建一个 Excel 。
我随便输入了一些信息,2 米大个 Jack Cui 和 3 米的花季少女李四。
好,然后选择这个插件,上传这个 excel,回车。
可以看到工具箱还贴心地提供了转换代码。JSON 格式的数据也提供了。
怎么样,CodeGeex 很强大了吧,无论对于学生党还是打工族,CodeGeex 绝对都是开发利器。

三、最后

文章对应的视频版,我也发布到了 B 站,想要看更直观的体验视频,可以去瞧瞧:
https://www.bilibili.com/video/BV1hg4y1Q715
好了,今天就聊这么多吧。
我是 Jack,我们下期见!
·················END·················
继续阅读
阅读原文