编程助手_大模型提升效率
1 简介
网传有了大模型之后,很多人都要失业了,其中也包括一部分程序员,确实大模型可以减轻开发者的工作量,但是具体到减轻了多少工作量,哪种类型的工作,学习成本,使用成本如何?不捧不踩,今天我们尽量客观地体验一下。
本文将介绍目前使用最多的三个智能编程助手,它们均可提供:代码解释、注释、生成、实时补全等功能。下面基于 VSCode 环境来介绍具体的使用方法。
2 Copilot
3 CodeGeeX
4 Cursor
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 用后感
今天,启 docker 镜像时把 tag 弄错了,导致 copilot 没能正常运行。活儿又有点急,没来得及找原因,就切着用 ChatGPT 实现查相应的功能,这一整天就跟单腿蹦似的;晚上修好了,感觉松了一口气。
有时候开着它,给你推荐得不对还打断思路,但是用习惯了,没它还真别扭。
这一旦开始依赖……真是可怕。
7 使用注意事项
- 在设计结构时尽量关掉,在实现代码时再打开
- 需要先写个 demo,不能啥都没有就让它写
8 参考文献
【CodeGeeX2】很强的国产免费AI代码补全工具,基本使用教程