Turbopilot 是一个开源的基于大型语言模型的代码完成引擎,在 C++PU 上本地运行。
具体来说,TurboPilot 是一个自托管的 GitHub copilot 克隆,它使用 llama.cpp 背后的库在 4GiB 的 RAM 中运行 60 亿参数的 Salesforce Codegen 模型。它很大程度上基于 fauxpilot 项目并受到其启发。
注意:项目处于概念验证阶段,而不是稳定的工具。在这个版本的项目中,自动补全功能非常慢。
开始
尝试该项目的最简单方法是获取预处理模型,然后在 docker 中运行服务器。
获取模型
有 2 个选项来获取模型
选项 A:直接下载 – 简单、快速入门
可以从 Google Drive 下载预转换、预量化的模型。项目组制作了具有 350M、2B 和 6B 参数的 multi
风味模型 – 这些模型在 C
、 C++
、 Go
、 Java
、 JavaScript
和 Python
上进行了预训练
选项 B:自己转换模型 – 困难,更灵活
如果想自己尝试量化模型,请遵循本指南。
运行 TurboPilot 服务器
下载最新的二进制文件并将其解压缩到根项目文件夹。
运行
./codegen-serve -m ./models/codegen-6B-multi-ggml-4bit-quant.bin
应用程序应在端口 18080
上启动服务器
如果你有一个多核系统,可以通过 -t 选项控制使用多少个 CPU
./codegen-serve -t 6 -m ./models/codegen-6B-multi-ggml-4bit-quant.bin
从 Docker 运行
可以从此处提供的预构建 docker 镜像运行 Turbopilot
仍然需要单独下载模型,然后您可以运行:
-v ./models:/models
-e THREADS=6
-e MODEL=“/models/codegen-2B-multi-ggml-4bit-quant.bin“
-p 18080:18080
ghcr.io/ravenscroftj/turbopilot:latest
仍然需要单独下载模型,然后运行:
docker run --rm -it
-v ./models:/models
-e THREADS=6
-e MODEL="/models/codegen-2B-multi-ggml-4bit-quant.bin"
-p 18080:18080
ghcr.io/ravenscroftj/turbopilot:latest
使用 API
将 API 与 FauxPilot 插件一起使用
要从 VSCode 使用 API,推荐 vscode-fauxpilot 插件。安装后,您需要更改 settings.json 文件中的一些设置。
- 打开设置(CTRL/CMD + SHIFT + P)并选择 Preferences: Open User Settings (JSON)
- 添加以下值:
{
... // other settings
“fauxpilot.enabled”: true,
“fauxpilot.server”: “http://localhost:18080/v1/engines”,
}
可以使用 CTRL + SHIFT + P 启用fauxpilot 并选择 Enable Fauxpilot
进行补全时,该插件会将 API 调用发送到正在运行的 codegen-serve 进程。然后它将等待每个请求完成,然后再发送进一步的请求。
直接调用API
可以向 http://localhost:18080/v1/engines/codegen/completions
发出请求,它的行为就像同一个 Copilot 端点一样。
例如:
curl --request POST
--url http://localhost:18080/v1/engines/codegen/completions
--header 'Content-Type: application/json'
--data '{
"model": "codegen",
"prompt": "def main():",
"max_tokens": 100
}'
已知的限制
从 v0.0.2 开始: