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

大家好,我是 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://www.hqwc.cn/news/214331.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android开发从0开始(广播)

应用广播 发送标准广播的三步骤 发送标准广播: //发送标准广播 Intent intent new Intent("com.dongnaoedu.chapter09.standard"); sendBroadcast(intent); 定义广播接受者: public class StanderdReceiver extends BroadcastReceiver { public s…

【腾讯云云上实验室-向量数据库】Tencent Cloud VectorDB为非结构化数据查询插上飞翔的翅膀——以企业知识库为例

前言 以前我曾疑惑,对于非结构化的内容,如一张图片或一段视频,如何实现搜索呢?图片或视频作为二进制文件,我们如何将其转化为可搜索的数据并存储起来,然后在搜索时将其还原呢? 后来我发现&…

关于进制的转化

二进制转十进制: 🔰 方法一:二进制转十进制,用各数的码位与位权的乘积之和,说白了就是用从右到左的每个数去乘以2的幂次方(最右边是0),然后就所有的数相加。 补充:位权是…

【Mybatis】Mybatis操作数据库详解

Mybatis操作数据库 什么是MybatisMybatis入门准备工作创建Springboot工程 建表 创建实体类 配置数据库连接字符串编写持久层代码单元测试 Mybatis的基础操作打印日志参数传递增(insert)返回主键 删(delete)改(update)查(select) Mybatis XML配置文件配置连接字符串和Mybatis写持…

虚拟化原理

目录 什么是虚拟化广义虚拟化狭义虚拟化 虚拟化指令集敏感指令集虚拟化指令集的工作模式监视器对敏感指令的处理过程: 虚拟化类型全虚拟化类虚拟化硬件辅助虚拟化 虚拟化架构裸金属架构宿主机模式架构 什么是虚拟化 虚拟化就是通过模仿下层原有的功能模块创造接口来…

接口测试学习路线

接口测试分为两种: 测试外部接口:系统和外部系统之间的接口 如:电商网站:支付宝支付 测试内部接口:系统内部的模块之间的联调,或者子系统之间的数据交互 测试重点:测试接口参数传递的正确性&…

在全球碳市场中崭露头角的中碳CCNG

在全球气候治理的大背景下,中国碳中和发展集团有限公司(简称中国碳中和)正在成为全球碳交易市场的一个重要参与者。随着国际社会对碳排放的日益关注,中国碳中和凭借其在碳资产开发、咨询与管理等领域的深厚积累,正成为…

【Golang】解决使用interface{}解析json数字会变成科学计数法的问题

在使用解析json结构体的时候,使用interface{}接数字会发现变成了科学计数法格式的数字,不符合实际场景的使用要求。 举例代码如下: type JsonUnmStruct struct {Id interface{} json:"id"Name string json:"name"…

提供电商数据|带你简单认识天猫API接口相关参数文档调用说明

什么是API接口 API接口(Application Programming Interface Interface)是应用程序与开发人员或其他程序互相通信的方式。它允许开发者访问应用程序的数据和功能。 API接口,软件的“握手”与“交流”之道,软件世界的“好基友”。想让软件聊得来?想开发App却无从下手?API来相救…

多actor实体组合并统一应用变换_vtkAssembly

开发环境: Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example参考代码 demo解决问题:创建了一个球体和立方体的三维可视化,将它们组合成一个装配体,应用变换,调整不透明度&#…

App Inventor 2 数字转文本

App Inventor 2 是弱语言类型,文本和数字之间不用刻意去转换,之间赋值就可以了。 案例:数字转文本 App Inventor 2 是弱语言类型,同理数字也能直接赋值给文本变量: 更多请参考:App Inventor 2 文本代码块…

什么是网络爬虫技术?它的重要用途有哪些?

网络爬虫(Web Crawler)是一种自动化的网页浏览程序,能够根据一定的规则和算法,从互联网上抓取和收集数据。网络爬虫技术是随着互联网的发展而逐渐成熟的一种技术,它在搜索引擎、数据挖掘、信息处理等领域发挥着越来越重…