Tabby —— AI 自动补全工具 的私有化部署
- AIGC
- 2024-10-14
- 22热度
- 0评论
Tabby 简介
Tabby是一个自托管的AI编码助手,提供了一个开源的、可本地部署的GitHub Copilot替代品。Tabby拥有以下几个特点:
1. 自托管:Tabby是一个自托管的解决方案,不需要依赖于第三方云服务或DBMS,用户可以完全掌控和管理自己的数据和代码。
2. 开源:Tabby是一个开源项目,用户可以自由访问和修改源代码,以满足自己的需求。
3. 本地部署:Tabby可以在本地部署,可以在没有互联网连接的情况下使用,同时也可以保护用户的代码和数据不被第三方访问。
4. 易于集成:Tabby提供了OpenAPI接口,可以轻松地与现有的基础设施集成,例如Cloud IDE。
5. 支持消费级GPU:Tabby支持消费级GPU,可以提供更快的计算速度和更好的性能。
基于上述特点,Tabby能够很有效的部署在内网环境中,再提升效率的同时,保护了代码和数据的安全。本文介绍使用Docker进行本地部署,方法参照了Tabby的官方文档、Github文档。
Tabby 本地化部署
方法一、Docker部署
Tabby最简单的部署方法便是使用Docker进行部署,并且官方提供了CPU版本和GPU版本。Docker的安装和使用可以戳这里。
CPU版本:
docker run \
--gpus all -p 8080:8080 -v $HOME/.tabby:/data \
tabbyml/tabby \
serve --model TabbyML/SantaCoder-1B --device cuda
GPU版本:
version: '3.5'
services:
tabby:
restart: always
image: tabbyml/tabby
command: serve --model TabbyML/SantaCoder-1B --device cuda
volumes:
- "$HOME/.tabby:/data"
ports:
- 8080:8080
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
如果Docker能够正常运行,则容器自动下载指定的模型并启动tabby的服务。因为下载的模型比较大,所以一般此过程时间比较久且终端反馈基本没有,请耐心等待。Tabby正常启动后,控制台会输出对应的启动信息,访问本地的localhost:8080可看到后台界面,说明启动成功。
如果遇到因为无法访问huggingface导致模型下载失败,则启动容器时添加-e TABBY_REGISTRY=modelscope参数指定模型仓库即可。Tabby为大陆用户提供了国内模型仓库(Tabby的团队太贴心了),添加参数以后的指令如下所示:
docker run -e TABBY_REGISTRY=modelscope \
-it --gpus all \
-p 8080:8080 \
-v $HOME/.tabby:/data \
tabbyml/tabby serve \
--model TabbyML/StarCoder-1B \
--device cuda
出现以下画面,就表示成功了
方法二、Liunx部署
- 下载 Tabby
- CPU版:tabby_x86_64-manylinux2014.zip
- GPU版:tabby_x86_64-manylinux2014-cuda117.zip,注意CUDA版本,我的是CUDA12.2
- 非Nvidia GPU版:tabby_x86_64-manylinux2014-vulkan.zip
- 切换到tabby目录,执行如下命令
# 修改权限
chmod +x tabby llama-server
# CPU版
./tabby serve --model StarCoder-1B --chat-model Qwen2-1.5B-Instruct
# GPU版
./tabby serve --model StarCoder-1B --chat-model Qwen2-1.5B-Instruct --device $DEVICE
可以参考下述模型,进行修改,我使用3060显卡,命令修改如下:
./tabby serve --model Codestral-22B --chat-model Codestral-22B --device cuda
./tabby serve --model StarCoder2-7B --chat-model Qwen2-1.5B-Instruct --device cuda
# 修改端口
./tabby serve --model StarCoder2-7B --chat-model Qwen2-1.5B-Instruct --device cuda --port=8999
出现如下截图,即安装成功:
可用模型
考虑到不同的用户所有用的计算资源都不一样,Tabby的模型仓库中提供了多种大小的模型,包括CPU版本和GPU版本,以及不同大小的模型,用户可以根据自己的部署环境选择合适的模型。
官方的推荐如下:
- 适用于CPU设备的小模型(小于400M)
- 1B到7B的模型,建议至少使用NVIDIA T4、10系或20系列GPU
- 7B到13B的模型,推荐使用NVIDIA V100、A100、30系或40系列GPU 、
Chat模型:
VScode插件
设置插件,状态是这样就表示成功了