參考:
https://github.com/TabbyML/tabby
Docker | Tabby
Linux Debian上快速安裝Docker并運行_Entropy-Go的博客-CSDN博客
Tabby - 本地化AI代碼自動補全 - Windows10_Entropy-Go的博客-CSDN博客
1.為什么選擇Tabby
已經(jīng)有好幾款類似強勁的代碼補全工具,如GitHub Copilot,Codeium等,為什么還要選擇Tabby?
Tabby除了和其他工具一樣支持聯(lián)網(wǎng)直接使用之外,還支持本地化部署。
即對內(nèi)部代碼安全性要求很高時,可以采取Tabby項目模型的本地化部署,不用擔(dān)心本地項目代碼隱私泄露,同時有很好的享受GitHub代碼庫的建議。
部署完成后,如簡單粗暴斷開外部網(wǎng)絡(luò),甚至拔掉網(wǎng)線,依然可以使用。
可以單機使用,也可以公司內(nèi)部網(wǎng)、局域網(wǎng)內(nèi)共同使用。
2.決定動手之前,試一試?
Playground | Tabby
3.Linux Debian 上直接部署Tabby
前面已經(jīng)在windows上部署成功,也可以直接在Linux上安裝部署
4.Linux Debian上快速安裝Docker
Linux Debian上快速安裝Docker并運行_Entropy-Go的博客-CSDN博客
5.Git Clone?tabby項目代碼到本地
git clone https://github.com/TabbyML/tabby.git
6.Docker Run下載鏡像
Docker | Tabby
本文選擇了CPU,打開終端,在clone下來的tabby根目錄下,執(zhí)行下面的命令
CPU
docker run \
-p 8080:8080 -v $HOME/.tabby:/data \
tabbyml/tabby serve --model TabbyML/SantaCoder-1B
7.部署成功
$ sudo docker run -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve --model TabbyML/SantaCoder-1B
2023-07-20T01:57:48.901861Z INFO tabby::serve: crates/tabby/src/serve/mod.rs:131: Listening at 0.0.0.0:8080
檢查是否部署成功
瀏覽器本地訪問?http://localhost:8080/
或者在局域網(wǎng)絡(luò)中使用???http://PC_IP:8080/
8.下載并安裝VS Code(Visual Studio Code)
Download Visual Studio Code - Mac, Linux, Windows
安裝完成后,打開VS Code,擴展中搜索Tabby并安裝
Tabby的管理里面設(shè)置上面本地部署的Tabby服務(wù)
?VS Code右下角顯示Tabby已經(jīng)可以提供服務(wù)
?
9.開始高效編碼吧
輸入注釋或者編碼時,會自動補全,即灰色斜體部分,如果接收就直接按Tab鍵,采納建議,否則正常進行編碼
?
按Tab鍵接收建議,灰色部分變亮
?編碼時調(diào)用默認(rèn)tabby并提示補全時,服務(wù)器資源消耗大,可以通過top命令查看,可以考慮高性能設(shè)備或者GPU加速
10.并行多核CPU處理,加快推理響應(yīng)
卡頓還有個原因,雖然服務(wù)器性能不錯,但是tabby默認(rèn)最多使用4個CPU進行并行模型推理,所以可以嘗試增加并行的核數(shù)
默認(rèn)調(diào)用4核CPU
?可以增加更多核并行處理,
如服務(wù)器有16核添加參數(shù),16/4=4,?--num-replicas-per-device 4
如服務(wù)器有32核添加參數(shù),32/4=8,?--num-replicas-per-device 8
$ sudo docker run -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve --model TabbyML/SantaCoder-1B --num-replicas-per-device 8
現(xiàn)在可以按照要求調(diào)用更多核CPU,VS Code中輸入過程中,提示的更快。
11.CentOS環(huán)境安裝并運行tabby
同樣的,可以在CentOS上安裝Docker,可參考
Linux CentOS上快速安裝Docker并運行服務(wù)_Entropy-Go的博客-CSDN博客
本地服務(wù)器有32核,所以添加參數(shù),32/4=8,?--num-replicas-per-device 8
$ sudo docker run -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve --model TabbyML/SantaCoder-1B --num-replicas-per-device 8
2023-07-27T06:56:19.280691Z INFO tabby::serve: crates/tabby/src/serve/mod.rs:131: Listening at 0.0.0.0:8080
運行截圖:
?在vscode中正常編碼或者寫代碼注釋時,觸發(fā)tabby進行多核并行模型推理
按Tab鍵接受自動補全的代碼
同時可以觀察到服務(wù)器上CPU內(nèi)存等資源使用情況,觸發(fā)模型推理時使用率特別高!
12.CentOS擴展Nvidia GPU運行tabby
CentOS擴展Nvidia GPU之后,推理速度超級快,邊寫邊推薦源碼,體驗非常的絲滑,可以大大提高編碼效率。
首先需要安裝GPU,驅(qū)動,CUDA工具包和Nvidia Docker工具包,也可參考之前寫的:
安裝GPU,驅(qū)動,CUDA工具包
在線安裝:
NVIDIA GPU驅(qū)動和CUDA工具包 Linux CentOS 7 在線安裝指南_Entropy-Go的博客-CSDN博客
下載安裝:
Linux CentOS安裝NVIDIA GPU驅(qū)動程序和NVIDIA CUDA工具包_centos 安裝nvcc_Entropy-Go的博客-CSDN博客
安裝Nvidia Docker工具包:
centOS 快速安裝和配置 NVIDIA docker Container Toolkit_Entropy-Go的博客-CSDN博客
GPU方式運行tabby:
[ xxx ]# docker run -it --gpus all -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve --model TabbyML/SantaCoder-1B --device cuda
2023-08-17T11:00:25.128496Z INFO tabby_download: crates/tabby-download/src/lib.rs:66: Start downloading model `TabbyML/SantaCoder-1B`
2023-08-17T11:00:31.338937Z INFO tabby::serve: crates/tabby/src/serve/mod.rs:134: Listening at 0.0.0.0:8080
查看GPU使用情況:
[ xxx ]# nvidia-smi
Thu Aug 17 07:43:33 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.86.10 Driver Version: 535.86.10 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 Tesla P100-PCIE-16GB Off | 00000000:31:00.0 Off | 0 |
| N/A 33C P0 30W / 250W | 4908MiB / 16384MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 60875 C /opt/tabby/bin/tabby 4906MiB |
+---------------------------------------------------------------------------------------+
舉個栗子:
可以使用中文輸入提示詞,如?
# 設(shè)計1個貪吃蛇游戲文章來源:http://www.zghlxwxcb.cn/news/detail-742730.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-742730.html
到了這里,關(guān)于基于GitHub代碼庫訓(xùn)練模型本地化AI代碼自動補全 - Tabby Linux Debian/CentOS的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!