国内团队开发的免费AI编程助手

CodeGeeX是智谱AI旗下的代码生成大模型,以每半年更新一代模型的迭代速度不断进化,致力于探索大模型代码生成能力的上限。以下是关于它的详细介绍:

1. 基本信息

  • 所属公司:智谱AI。
  • 发展历程:2022年9月发布第一代模型,后续以每半年更新一代模型的速度迭代。
  • 模型参数:CodeGeeX是一个拥有130亿个参数的大规模多语言代码生成模型,在20多种编程语言的大型代码库上进行了预训练。
  • 训练情况:采用华为MindSpore框架实现,在鹏城实验室鹏城云脑II中的192个节点(共1536个国产升腾910AI处理器)上训练而成,训练历经两个月时间。除了Layer - norm与Softmax使用FP32格式以获得更高的精度与稳定性,模型参数整体使用FP16格式,最终整个模型需要占用约27GB显存。为了增加训练效率,使用8路模型并行和192路数据并行的训练策略,微批大小为16、全局批大小为3072,并采用ZeRO - 2优化器降低显存占用。

2. 功能特点

基础功能

功能 说明
代码生成与补全 根据自然语言注释描述的功能自动生成代码,也可根据已有的代码自动生成后续代码,补全当前行或生成后续若干行,其代码补全功能能让开发者告别手动输入冗长代码,大大提高编程速度。例如在编写一个计算阶乘的函数时,CodeGeeX可自动补全循环代码
自动注释 可以给代码自动添加行级注释,还能根据需要选择英文或者中文注释,节省大量开发时间
代码翻译 能实现多种编程语言之间的互译,理解代码语义并在保留原始代码语义和功能的基础上,翻译成另一种编程语言的等效代码,帮助开发者更好地理解不熟悉语言的代码,也能进行类比学习
智能问答 无需离开IDE环境去搜索引擎寻找答案,开发者在开发中遇到的技术问题,可直接向AI助手提问,通过侧边栏的智能问答交互,获得快速解答

进阶功能

功能 说明
代码解释 为选中的代码段或整个代码文件生成详细的注释和解释,包括代码的用途、每行代码的作用、逻辑流程以及可能的改进建议
单元测试生成 根据函数、方法的内容和运行逻辑,生成相关的单元测试代码,支持Java、Python、Go、C/C++、JavaScript等语言
函数重构 快速进行函数重构,梳理代码逻辑,降低出错风险
生成调试日志 通过理解代码运行逻辑,为代码自动生成调试信息,帮助用户快速定位问题
生成ReadMe文档 根据代码内容快速生成符合ReadMe格式的文档信息
CodeInterpreter工具箱 接入了CodeInterpreter的能力,可以实现批量处理文件,分析多种格式的数据并进行可视化,绘制数学函数,分析代码文件等
修复代码错误 通过智能分析代码中的错误,提供具体的修复建议和详细的错误解释,用户可以在编辑器中直接触发代码修复功能,避免手动查找错误原因和翻阅文档
交互式编程(InLineChat) 支持在编写代码的过程中,通过嵌入式对话与CodeGeeX互动,获取即时的编程帮助
代码审查 支持对代码变更进行详细的检查,直观地查看代码修改部分,并获得智能编程助手给出的优化建议,有助于在代码提交前发现潜在问题,提升代码质量
自动生成CommitMessage 通过分析代码的修改内容,生成简洁明了且符合规范的提交信息,用户还可以自定义提交信息的生成风格,确保提交历史的清晰和一致
接入本地模型 本地模式可以将本地API服务接入智能问答和代码补全中,以实现安全、隐私、高效的编码体验,用户可以将任何与兼容的RESTful API接入到CodeGeeX的插件中

3. 支持语言和IDE

  • 支持语言:支持100 + 种编程语言,常见的有Python、Java、C++/C、JavaScript、Go、TypeScript、ObjectC、Kotlin、Uni - App、Peal、GraphQL等。
  • 支持的IDE:适配多种主流IDE平台,包括Visual Studio Code、JetBrains IDEs(如IntelliJ IDEA、PyCharm等)、Visual Studio、HBuilderX、DeepIn - IDE、Vim等。

4. 使用模式(以插件为例)

  • 自动模式:在该模式中,如果不想继续重复代码的编写,可以敲下tab键,它会帮您自动生成代码。CodeGeeX将在用户停止输入时,从光标处开始生成(右下角CodeGeeX图标转圈表示正在生成)。生成完毕之后会以灰色显示,如果用户对结果满意,按Tab即可插入生成结果。在生成多个候选的情况下,可以使用Alt/Option + [或]在几个候选间进行切换,用户也可以在设置中改变CandidateNum。
  • 交互模式:通过敲入一行注释,使插件自动生成一段完整的代码解决方案。通过Ctrl + Enter激活交互模式,CodeGeeX将生成X个候选,并显示在右侧窗口中(X数量可以在设置的CandidateNum中修改)。点击候选代码上方的usecode即可插入结果到当前光标位置。
  • 翻译模式:该模式可帮助将一种语言翻译成另一种语言,例如将用C++写的某个算法翻译成Python,而不用自己再敲一遍。在当前语言的文本编辑器中输入或者粘贴一段代码,选择代码,然后点击Ctrl + Alt + T激活翻译模式,根据提示选择要翻译的目标语言。CodeGeeX将自动识别当前编辑器中代码的语言,并进行翻译,点击翻译结果上方的usecode即可将翻译结果插入文件,还可以在设置中选择插入时如何处理被翻译的代码——注释或者覆盖它们。
  • 提示模式:该模式可模仿已输入代码实现相应功能,如快速对大段代码进行解释。其原理是利用CodeGeeX强大的少样本生成能力,用户可以在输入中添加额外的提示来实现一些有趣的功能,包括且并不限于代码解释、概括、以特定风格生成等。用户可以在自定义模板中提供一段逐行解释代码的例子,选择想要解释的代码,Alt/Option + T触发提示模式,选择写好的模板,CodeGeeX将会解释输入的代码。模板文件是高度自定义化的,用户可以将自定义模板添加到插件设置中的PromptTemplates中,key表示模板的名字,value是模板文件的路径(此路径不唯一,可以是电脑上的任一路径,.txt,.py,.h等格式文件均可)。

5. 优缺点

优点

  • 提高效率:能够自动生成代码、补全代码、添加注释等,显著提高开发者的编程效率,节省开发时间。
  • 个性化体验:能够根据开发者的编程习惯提供定制化建议,让编程过程更加舒适。
  • 智能化学习:具备学习能力,能够不断优化自身算法,为开发者提供更优质的服务。
  • 场景广泛:可以应用于各类编程场景,如Web开发、移动端开发、大数据处理等,市场前景广阔。
  • 生态丰富:可以与其他开发工具、平台相结合,打造完整的编程生态体系,为开发者提供一站式服务。
  • 免费使用:对于个人开发者来说是完全免费的。

缺点

  • 依赖风险:对于初学者来讲,如果过度依赖大模型,可能会导致基础不牢,空有其表。
  • 结果问题:大模型在处理一些复杂的问题时,给出的代码可能会存在一些问题(如逻辑问题),亦或者给出的并非最优解,需要开发者加入自己的判断与调试。

相关导航

广告也精彩

暂无评论

暂无评论...