前言

2023 被称为“AI元年”,人工智能、AI大模型概念迅速点燃市场。对程序员来说,如果能让 AI 帮助我们编码,那工作效率不得起飞!

本篇简单介绍一下当前主流的 AI 编码工具。

AI 能做什么

首先来看看 AI 能做哪些事情,只有想不到,没有做不到。

  • 添加注释
  • 代码补全
  • 代码翻译
  • (测试)代码生成
  • 代码重构
  • 代码安全

工具

目前 AI 辅助编程工具有很多,有人觉得 ChatGPT 3.5 性价比高,好用;有人觉得 4.0 质量高,好用;还有人觉得国产大模型不用翻墙,好用;还有人觉得其他产品好用。

仁者见仁,智者见智,没必要非分出个好坏来,自己用着顺手就行。

Ollama

Ollama 是一个强大的框架,设计用于在 Docker 容器中部署 LLM。用的人比较多,很活跃。

CodeLlama

Code Llama 是 Llama 2 强化了代码能力的版本。Meta(大模型开源鼻祖,向开源者致敬)开源的大模型

消费级硬件 Nvidia 3090 24G 可以运行 4 位量化的 LLaMA 30B 模型,每秒大约 4 到 10 个 token(大模型的基本)。如果想运行更大的模型,例:70B 的模型,就需要使用多 GPU 或者使用专业的 Nvidia A100 等。更多的硬件要求可以看这篇:Llama消费级硬件要求
** 注:硬件不行的机器也可以运行,但是效果太差了,又慢又不准 **

CodeGeex

CodeGeeX2 是基于 ChatGLM2 架构加入代码预训练实现,得益于 ChatGLM2 的更优性能,CodeGeeX2 在多项指标上取得性能提升(+107% > CodeGeeX;仅 60 亿参数即超过 150 亿参数的 StarCoder-15B 近10%)

消费级主机可以尝试使用,但是效果不能保证,下方链接有尝试。

CodeShell

CodeShell 是北京大学知识计算实验室联合四川天府银行AI团队研发的多语言代码大模型基座,使用 GPT-2 作为基础架构。7B 模型和 CodeLlama 相比略好。

GPU 方案 CUDA 11.8 及以上,4 bit 量化后,占用显存大小约 6G,用户可以在显存较小的 GPU 上使用 CodeShell。

没有 GPU 的可以使用 C/C++ 版本的推理支持,开发者可以根据本地环境进行编译与使用,详见 CodeShell C/C++ 本地化版

GitHub Copilot

GitHub 和 OpenAI 合作的产物,可以试用30天,后续个人购买 10 刀每月,需翻墙。

Codeium

个人开发者永久免费!需翻墙。

CodeWhisperer

亚马逊的,宣布对个人开发者永久免费!需翻墙。

DevPilot

一个支持 IntelliJ IDEA 的工具,能够集成各种大模型对接 api ,并不是本地训练的大模型,只是可以方便的集成本地部署的自建模型。

最新版本需要扫码关注公众号完成登录,登录后不需要配置本地或者云服务的大模型对接,可以直接使用 DevPilot 的服务。官方介绍说是可以自定义对接 AI 服务厂商(OpenAI 等),但是我试了一下在最新的 DevPolit 的插件中没有配置服务厂商地址的地方。

Plandex

基于终端的开源AI编程引擎,依赖 OpenAI API。支持云端和本地部署

可以通过终端指定需要解析的上下文代码,可以指多个文件,例如:将 template 目录下的所有代码都解析,然后可以通过 prompt 让其生成代码。

将大型任务分解为更小的子任务,然后逐个实现,直到完成整个工作。

如何使用看官网的视频应该就能够明白了。

1. decide what to build
2. load relevant context
3. send your prompt
4. Plandex makes a plan...
5. then implements it
6. Tentative updates are generated
7. The task continues until it's done
8. Time to review the changes

Codefuse

蚂蚁 Codefuse 团队开发的,可以下载模型本地部署(20G GPU Nvidia cuda),也可以直接使用蚂蚁的服务。

Comate

百度的,基于文心大模型。支持私有化部署,个人基础功能免费,高级功能限免。

比较适合的编程辅助场景

  1. 正则表达式编写
  2. 编写测试代码,包含各类边界条件验证
  3. 使用难以记忆关键字编写代码,比如:HTML/CSS编写
  4. 编写/不熟悉的复杂算法
  5. 使用/学习不熟悉的编程语言
  6. 按常识完善对象字段
  7. 示例/测试数据生成
  8. 复杂参数填写和上下文匹配
  9. 理解复杂代码并编写文档,评审代码,提出改进意见
  10. 自动编写单元测试,一次性提高代码测试覆盖率

提示词

想要用好 AI,要先会提问,以下几点可作为参考:

  1. 要具体、描述性和尽可能详细
  2. 减少模棱两可或不精确的描述
  3. 通过示例显示所需的格式
  4. 分配角色
  5. 将复杂的任务拆分为更简单的子任务

总结

目前的 AI 辅助编程工具还在飞速发展,本地部署训练的效果都不如 GitHub Copilot 等大厂的产品好用。短期内建议使用云服务产品来做代码辅助,长期考虑,可以先本地部署了解下其原理(硬件不行的就不要再考虑了),尝试自己生成模型。

个人使用方面来说,我们编写代码,基本上都会使用 IDE,例如:VSCode,JetBrains 系列的产品等,最好是能直接使用带这些 IDE 插件的工具,这样使用起来也会更加直接高效,目前市面上大多数辅助工具都是有插件的。

想要真正使用 AI 工具赋能,还是要自己多去尝试,多去用,例如提示词之类的都需要自己总结提炼。

打开视野,拥抱 AI

参考

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐