TurboPilot —— AI 代码补全引擎
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。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 图数据库驱动的基础设施运维实操
本文系图技术在大型、复杂基础设施之中 SRE/DevOps 的实践参考,并以 OpenStack 系统之上的图数据库增强的运维案例为例,揭示图数据库、图算法在智能运维上的应用。本文所有示例代码开源。 最近,有些尚未使用过图技术、DevOps/Infra 领域的工程师在 NebulaGraph 社区询问是否有「图技术在运维的应用」相关案例参考。于是,我又可以“借题发挥”来实践下如何利用图的能力与优势去帮助运维工程师们基于复杂基础设施上构建辅助运维系统。如果你对本文有任何看法,欢迎评论区或者来论坛和我交流下,非常感谢。 通常,我们说的复杂的基础设施运维环境指的是资源(manifest)繁多且分布在不同层面的系统。为了让实践更加真实、贴近实际的运维情况,让运维问题复杂又可控,这里我选择了用一个基础设施平台:OpenStack。在 OpenStack 系统上,我分别利用 Push 和 Pull 两种模式将资源在图模型中对应点、边信息加载到 NebulaGraph 的 Graph ETL 管道的路径中。 在我们基于运维资源构建的图谱,会做如下用例图探索: 告警、状态的推理与传导; 网络直连与互联...
- 下一篇
Canonical 为 HWE 内核带来 Livepatch 支持
Canonical 宣布对硬件启用 (HWE) 内核提供 Livepatch 支持,第一个支持的 HWE 内核是 Linux 6.2,它将从 Ubuntu 23.04 版本向后移植并推送给 Ubuntu 22.04 LTS 的用户。 这意味着无论用户选择在 Ubuntu LTS 版本中运行哪个内核,都可以使用 Livepatch 功能保持内核更新和安全。 Livepatch 是一项为 Ubuntu Pro 订阅用户提供的功能,仅在 LTS 版本的 Ubuntu 上有效。启用后,Livepatch 允许用户安装各种实时补丁和更新,但之后无需重新启动,更新即可生效。 该服务对于不想重启或者由于运行/托管关键工作流程而无法重启的Ubuntu 用户来说比较有用,通常是企业、服务器和商业客户。 关于HWE 内核 HWE 内核专为 Ubuntu GA 内核发布时暂不支持的新硬件提供支持。对于那些想要使用最新硬件,但仍需要 LTS 版本的稳定性和支持的用户来说特别有用。 HWE 内核仅发布到 Ubuntu LTS 版本,但会从发行版的临时版本向后移植。例如,目前的 HWE 内核基于去年 10 月的 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境