本文将使用基于Llama.cpp的插件Tabby构建个人Code Pilot助手。
首先我们看一下编码的大模型榜单,在抱抱脸上bigcode上可以参考。
给VSCode插上翅膀
榜单上排名第一的是OpenCodeInterpreter-DS-33B
,看起来很强大但是显然 MAC M1 是跑不了。虽然 MAC M1可以跑 7b 模型,但是在实际代码编写中使用7B模型非常慢,我猜测可能因为因为上下文较多,导致无法实时输出编写。所以考虑使用3B的StarCoder2, 然后我们在 hugging face上下载它的 GGUF 文件。使用我们在上篇文章中安装的 llama_cpp.server来启动这个模型python3 -m llama_cpp.server --model <model_path> --n_ctx 16192 --n_gpu_layer -1
。之后修改.vscode/settings.json
配置文件
{
// ...
"github.copilot.advanced": {
"debug.testOverrideProxyUrl": "http://<host>:<port>",
"debug.overrideProxyUrl": "http://<host>:<port>"
}
// ...
}
除了这种,还有较为简便的,可以集成到 GoLand,Pycharm和 CLion 等 Jetbrain 全家桶的 Tabby 插件。这个插件也是基于 Llama.cpp 做的。接下来,我们试着安装一下。
给Jetbrains插上翅膀
brew install tabbyml/tabby/tabby
# Start server with StarCoder-1B
tabby serve --device metal --model DeepseekCoder-1.3B
使用JetBrains的Tabby插件还需要安装 Node.js,访问官方下载Node.js ARM64最新版。
然后在 Clion 或者 PyCharm 中访问 Plugins 安装 Tabby 插件,安装好后默认配置即可。
安装好后,在 JetBrains 的 IDE 的右下角你可以看到一个 Tabby 的图标,有个对号就表示连接上了。
接下来就可以体验属于自己的Code Pilot 了。
总结
本文通过介绍使用Tabby插件或者Llama.cpp构建本地Code Pilot,实际测下来速度不算太慢,还能接受。但毕竟模型较小,本地算力也不足,准确率不高,写写Python还行,写CPP感觉就是一坨翔。最后,如果对速度和准确率不满,可以考虑接入云端模型DeepSeek之类的专为编码训练的模型。