一个悄然崛起的国产软件!!AI 又进化了!!

news/2024/7/5 3:43:47

大家好,我是 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 体验

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,我们下期见!


http://lihuaxi.xjx100.cn/news/1829178.html

相关文章

基于白鲸算法优化概率神经网络PNN的分类预测 - 附代码

基于白鲸算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于白鲸算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于白鲸优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络的光滑…

MySQL 优化器 Index Condition Pushdown下推(ICP)

ICP 测试 准备数据 CREATE TABLE icp (employee_id int(6) NOT NULL AUTO_INCREMENT,first_name varchar(20) DEFAULT NULL,last_name varchar(25) DEFAULT NULL,email varchar(25) DEFAULT NULL,phone_number varchar(20) DEFAULT NULL,PRIMARY KEY (employee_id) );insert i…

LED驱动控制专用电路

一、基本概述 TM1628是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用IC,内部集成有MCU 数 字接口、数据锁存器、LED 驱动、键盘扫描等电路。本产品质量可靠、稳定性好、抗干扰能力强。 主要适用于家电设备(智能热水器、微波炉、洗衣机、空调…

初学ARM嵌入式开发有什么好书值得去学习?

初学ARM嵌入式开发有什么好书值得去学习? 以一个从业者的角度来讲,嵌入式覆盖的范围还是比较广的,比如简单单片机,ARM系列,有无操作系统等。复杂程度也不断增加。 刚刚踏入这个行业的时候,算是从零做起。建…

使用正则表达式来判断一个字符串只是否包含数字

使用正则表达式来判断一个字符串只是否包含数字 1、第一种 import java.util.regex.Pattern;public class Main {public static void main(String[] args) {String inputString "12345";if (containsOnlyDigits(inputString)) {System.out.println("字符串只…

【Java 进阶篇】Jedis 操作 String:Redis中的基础数据类型

在Redis中,String是最基础的数据类型之一,而Jedis作为Java开发者与Redis交互的利器,提供了丰富的API来操作String。本文将深入介绍Jedis如何操作Redis中的String类型数据,通过生动的代码示例和详细的解释,让你轻松掌握…

OSG粒子系统与阴影-雾效模拟(1)

虚拟现实中有很多效果,如雨效、雪效、雾效等,这些都可以通过粒子系统来实现。一个真实的粒子系统的模式能使三维场景达到更好的效果。 本章对OSG粒子系统的使用以及生成自定义粒子系统的方法进行了详细介绍最后还附带说明了阴影的使用方法。在实时的场景…

【Spring】MyBatis的操作数据库

目录 一,准备工作 1.1 创建工程 1.2 准备数据 1.3 数据库连接字符串 1.4 创建持久层接口UserInfoMapper 1.5 单元测试 二,注解的基础操作 2.1 打印日志 2.2 参数传递 2.3 增(Insert) 2.4 删(Delete&#x…