1 简介
网传有了大模型之后,很多人都要失业了,其中也包括一部分程序员,确实大模型可以减轻开发者的工作量,但是具体到减轻了多少工作量,哪种类型的工作,学习成本,使用成本如何?不捧不踩,今天我们尽量客观地体验一下。
本文将介绍目前使用最多的三个智能编程助手,它们均可提供:代码解释、注释、生成、实时补全等功能。下面基于 VSCode 环境来介绍具体的使用方法。
2 Copilot
2.1 介绍
Copilot 由Github和OpenAI合作推出,底层基于的Codex模型,通过GPT-3继续训练得到。
Copilot 可以先免费试用一个月。所以大家可以先试试,如果觉得必需,再购买或者在某宝以便宜的方式购买。
2.2 VSCode使用方法
-
安装插件:github copilot, github copilot lab, github copilot chat
主要功能分成两部分:一部分是生成后续程序 (github copilot),另一部分通过与 copilot 对话实现更丰富的功能支持 (github copilot chat)。 -
正常安装后,左侧边栏和界面右下会出现小机器人图标
右下角提示 copilot需要 github 帐号登录,按提示操作即可一个月免费使用(或者申请个比较便宜的学生号)。
-
生成后续程序
例如:编写一行注释,回车后等几秒,自动生成的代码以灰色呈现;按Tab键接受推荐;Alt+左/右中括号可切换不同的推荐;Ctrl+Enter:打开一个Tab页,查看所有推荐。(其它环境快捷键可能不同,请查看具体帮助页) -
点击左侧图标可调出 Chat 栏
目前版本主要分成四大功能:程序解释、代码翻译、写测试用例、其它功能(BRUSHES);其它功能又包括:加注释、fixbug,程序拆分、加强稳定性等,其中最后一项"自定义"可以用文本描述功能并执行,该功能非常实用,比如:新加一个函数,一个类,加头文件都可以通过文本描述实现。
2.2.1 问题及解决
- 一开始安装后我的左侧边栏没显示Copilot图标,我更新了vscode最新版,又尝试切换了插件的预发布版本后可正常使用,如果还不正常,也可尝试关闭vscode,再进入。
- 如果安装后,没直接出现github登录提示框,可尝试关闭vscode,再进入。
2.2.2 资源
- 主页:https://github.com/features/copilot/
- 使用手册:https://docs.github.com/en/copilot/
2.3 总结
2.3.1 优点
- 稳定,功能全
- 生态成熟,支持IDE:JetBrains IDEs,Vim/Neovim,Visual Studio,Visual Studio Code
- 可以根据程序的上下文补全代码
2.3.2 缺点
- 需要“科学”才能稳定使用,商业版可支持设置代理。
- 普通用户每10刀一个月,对认证师生或高质量开源贡献者免费开放。非专业选手不一定非得用 Copilot,而对于专业选手每月10刀也能接受。
- 需要配置比较多。
3 CodeGeeX
3.1 介绍
CodeGeeX是清华系列国产工具,底层基于 ChatGLM2模型,开源免费。
3.2 VSCode使用方法
- 安装插件:codegeex
安装之后,在右侧看到说明文档,内容比较全也比较长。 - 主要功能分成两部分,同copilot,都封装在一个插件中。
- 正常安装后,左侧边栏和界面右下会出现类似菱形的图标。
按提示 login,微信登录即可用。 - 生成后续程序
基本用法同 Copilot 一致,AI生成的代码浅灰色,按Tab链后变正常。 - 点击左侧图标可调出 Chat 栏
Chat 栏支持提问和代码翻译等功能;智能问答含三个基本功能:/explain,/comment,/fixbug(在左下角输入框输入"/"可调出),在右边选代码,左边点功能即可。也可以在框中输入需要操作的文本描述。
3.3 总结
3.3.1 优点
- 开源免费
- 无需“科学”,直接使用
- 无需复杂配置
3.3.2 缺点
- 功能相对偏少,可看作低配版的 Copilot
- 在聊天中,输入自已描述的功能效果不太好,它不太能看懂需求
- 我测试了两个时段,其中有一次提问时不太稳定,一直 wait timeout (也可能是巧合)
4 Cursor
4.1 介绍
Cursor 是调用Chatgpt接口实现的AI编程工具,目前GPT-3.5可免费使用,GPT-4只对专业订购者开放。Cursor本身是一个IDE,可从其官网下载安装包。
4.2 使用方法
- 从其主页:https://www.cursor.so/ 直接下载对应平台的 IDE 安装。
- IDE 和 VSCode很类似,可看作轻量化的 VSCode,使用习惯非常像,常用快捷键都一样。
- 第一次使用时,可以试用左侧的 demo 测试,融入操作的向导非常贴心。
- 点击右上角可以对它提问
- 主要快捷键有两个:
- Ctrl+K在代码中操作
- Ctrl+M以提问方式交互
- 其它的提示都显示在屏幕上,按提示操作很快就学会了,学习成本低。
- 与代码续写相比,它可以根据需求,生成整个程序,整体更有章法。
4.3 总结
4.3.1 优点
- 使用 ChatGPT 作为算法引擎,免费可用
- 无需“科学”,直接使用
- IDE 和 GPT结合得非常好,几乎所有操作提示全在界面上
- 不只是补全,还可以生成整体代码
- 无需复杂配置,学习成本低
4.3.2 缺点
- IDE比较简单,不能满足开发需求
- 使用时需要在 VSCode 与 Cursor IDE之间切换,打断思路。
5 讨论
5.1 使用场景
- 对于新手,我们不用再花很多时间强调代码规范了,让大家直接用 AI 就可以润色出不错的代码和注释。
- 对于不熟悉的领域、代码、编程语言,可以快速地了解和梳理代码,解释代码和逻辑。
- 自动编写常用的代码片断
- 自动编写相对复杂的 正则 或 SQL 查询
- 解决一些简单的bug
- 帮助程序员快速入门一门语言或一种框架
- 快速程序写 demo 和代码框架,程序员只需要做少量修改即可使用
5.2 使用体验
5.2.1 基于场景的设计
最简单的使用大模型的方法是 ChatGPT 聊天界面提问代码相关问题,这种情况下,程序员需要描述环境,比如功能,编程语言,函数的输入输出,风格…… 而返回也往往是包含描述和代码,一般需要人看完整段回答,然后选取部分代码,再与自己代码组合。而且在两个界面之间切来切去很打断思路。
而上述的几种工具都使用了基于场景的设计,把工具融入编码的工作流,自动识别上下文,直接修改代码,节省了很多脑力,和 Chat 差别非常大。
5.2.2 清晰的注释
目前辅助工具更擅长写小模块,模板,常用功能;而对于业务理解,整体设计相对较差。从原理看,模型是用代码训练出来的,训练用的源码也有不同水平,难免不对,尤其对其未见过的复杂业务逻辑。
因此,整个开发过程需要人与工具不断沟通,比如:一开始它给我写的代码非常简单,后来我修改了几次注释提示,想要的内容就全都有了,自己再整理一下,或者让它整理一下,就很完美了。
另外,程序员可以先梳理业务逻辑,将其拆分成子任务,然后再用辅助工具其现子任务的具体功能。
5.3 使用效果
《Google Research 2022年度盘点》发布:谷歌在内部为开发者提供 5 亿参数的语言模型 ML-Enhanced 用于 为 IDE 集成代码补齐功能,通过内部1W+员工的实验对比显示,该功能减少了6%的开发时间,3% 的新代码(以字符为单位)是通过接受机器学习生成的。由此可见,AI 的代码补全功能并不像我们想象中那么有效。至少目前离完全自动化还很远。
当然,这也与开发应用的类型有关。我个人感觉,对于前后端,数据分析,数据等常用工具而言,提升20%-30%的工作效率应该没问题,甚至有时候觉得,有些普通的功能,选择一下,等着按Tab就行了。对于不熟悉的领域,机器生成的常常比人写的好。
5.4 如何选择工具
下图是计算机科学家 Matthias Plappert 在他的推文中对主流大模型代码效果的评测:
这样看来 openai-gpt4 还是首选,但比较贵,性价比最高的应属 openai-text-davinci-003;Openai 的 GPT 系列仍独占鳌头。
对于如何选择辅助工具,也列出了一些建议,仅供大家参考:
- 如果有比较高的定制需求,或者大批量修改,可以自己做一些提示和后处理,调用 chatgpt-3.5/4 的api,直接优化代码。
- 如果以编程为生,需要深度使用,自己又能“科学”的,推荐使用 Copilot。
- 对于单位使用或者科研人员,建议先用 CodeGeeX 试试水,或者考虑购买 Copilot 商业版。
- 如果使用 VSCode,建议使用可嵌入的工具,不用切来切去,不打断思路;如果没有非常依赖的 IDE 建议先试用 Cursor。
6 参考文献
【CodeGeeX2】很强的国产免费AI代码补全工具,基本使用教程
VsCode 安装Copilot
2023年AI编程工具总结
大模型代码生成排行榜出炉,70亿LLaMA拉跨,被2.5亿Codex吊打
当前业界最优秀的8个编程大模型简介
ML-Enhanced Code Completion Improves Developer Productivity