TurboPilot 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
TurboPilot 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
TurboPilot 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 BSD 3.0
开发语言 Python
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 罗奇奇
适用人群 未知
收录时间 2023-04-14

软件简介

Turbopilot 是一个开源的基于大型语言模型的代码完成引擎,在 CPU 上本地运行。

具体来说,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

仍然需要单独下载模型,然后您可以运行:

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

仍然需要单独下载模型,然后运行:

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 开始:

  • 这些模型可能非常慢——尤其是 6B 模型。跨 4 个 CPU 内核提出建议可能需要大约 30-40 秒。
  • 只在 Ubuntu 22.04 上测试过系统,但现在提供 ARM docker 图像,很快将提供 ARM 二进制版本。
  • 有时补全建议会在无意义的地方被截断——例如通过变量名或字符串名的一部分。这是由于上下文长度(提示 + 建议)的硬限制为 2048。
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(2) 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
2 评论
46 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部