目前基于大模型有各种各样的应用,比如自然语言对话(写文案、解答问题),画图(midjunery、sd),制作视频等等,其中编程能力是大模型各项能力的天花板
原因有三点:
- 训练数据质量高
- 结果可衡量
- 编程语言无二义性
AI编程的工作原理
模型层:底层还是基于大模型的能力,最初使用OpenAI Codex模型,它也是GTP-3.5、GTP-4的一部分
应用层:prompt engineering(提示词工程)
1. 组织上下文:光标前和光标后的代码片段
2. 获取代码片段:其他相关代码片段。当前文件和其他打开的tab里的代码被切成每个60行的片段,用Jaccard相似度评分,取高分的
3. 修饰相关上下文:被取用的代码片段的路径
4. 优先级:根据一些代码常识判断补全输入内容的优先级
补全格式:在函数定义、类定义、if-else等之后,会补全整段代码,其他时候只补当前行
当前市面上的编程工具:
- GitHub Copilot --最强
- Bito --比Copilot多些创新
- Amazon CodeWhisperer --免费,AWS相关编程能力卓越
- Cursor
- Tabnine
- Tongyi Lingma --阿里,免费,效果不错
- CodeGeeX --智谱AI,模型开源,免费
- Tabby --全开源,可以独立本地部署
- Code Llama --Meta,开源中最强
下面介绍下如何使用tabby部署本地工具
一张图说明架构
本地IDE安装tabby的客户端插件,在本地(或自己搭建的服务器)下载编程模型(这里使用StarCoder-1B),然后启动tabby服务,使用IDE补全代码时会实时调用服务
服务器搭建
tabby官网(https://tabby.tabbyml.com)下载符合的主机程序
这里本地使用windows的版本(NVIDIA用cuda)
执行指令,自动下载模型,并启动服务
.\tabby_x86_64-windows-msvc.exe serve --model StarCoder-1B --webserver
tabby支持的编程模型:
如果遇到这个报错那就需要用梯子了
服务启动成功,监听8080
打开 http://localhost:8080 (注册登录一下)
拷贝token
Ide安装客户端,输入token
服务端连接成功
测试代码补全功能吧