桌面显卡RTX4070部署AnythingLLM调用vLLM搭建本地大模型知识库

我们前面在4070笔记本上完成了vLLM环境的部署(桌面显卡RTX4070安装Ubuntu系统部署vLLM环境),电脑型号为机械革命极光X,处理器为12th Gen Intel(R) Core(TM) i7-12800HX,24核心;搭配32 GB(DDR5@4800 MHz)运行内存,500 GB系统盘(NVMe);显卡型号RTX4070,8 GB显存(8188MiB)。

已经安装好了Ubuntu 22.04 LTS系统,vLLM的当前最高版本为0.7.4,自动安装的版本为0.7.3;对应的,我们安装了显卡驱动的550.144.03版本,PyTorch的2.5.1版本,CUDA的12.4版本,cuDNN的9.8版本。

按照之前的经验(目前来看,ollama量化过的DeepSeek模型应该就是最具性价比的选择),8 GB显存要以BF16或FP16方式运行模型,也就只能跑一下1.5B模型,本次我们就以DeepSeek-R1:1.5b来演示一下。

正常来讲,官方建议通过huggingface来下载镜像,但是在国内更推荐使用ModelScope。模型文件链接如下:

https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B/files

开始之前,确认我们已经进入了虚拟环境。

bash 复制代码
source /root/deepseek/vllm_env/bin/activate

在下载模型之前,需要先通过如下命令安装ModelScope。

nginx 复制代码
apt install python3-pip -ypip install modelscope

然后下载完整模型库。

apache 复制代码
modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local_dir /root/deepseek/

然后,我们使用vLLM启动模型服务:

css 复制代码
vllm serve /root/deepseek \    --trust-remote-code \    --tensor-parallel-size 1 \    --max-model-len 4096 \    --gpu-memory-utilization 0.9 \    --served-model-name deepseek-1.5b \    --port 8000 \    --host 0.0.0.0

此时,vLLM进程会独占一个终端。

如果需要在后台运行,可以使用nohup命令搭配&使程序在后台运行,防止进程因终端关闭而终止,适合长期稳定运行的场景。

css 复制代码
nohup vllm serve /root/deepseek \    --trust-remote-code \    --tensor-parallel-size 1 \    --max-model-len 4096 \    --gpu-memory-utilization 0.9 \    --served-model-name deepseek-1.5b \    --port 8000 \    --host 0.0.0.0 > vllm.log 2>&1 &

或者直接新开一个终端重新连接,方便观察运行情况。

根据模型的配置文件config.json中的torch_dtype字段,我们可以看到,DeepSeek模型明确指定模型精度为bfloat16(BF16)。

此时的显存占用为6248 MB,比ollama使用FP16精度运行的1.5B模型的3661 MB显存占用更高。

在启动时,我们通过--gpu-memory-utilization设置了显存占用比例,推荐范围为0.8-0.95;如果计算能力不足,还可以使用--dtype参数调整模型精度,如设置为half强制使用float16精度;而使用--trust-remote-code则允许加载自定义模型代码。还可以使用--max-num-batched-tokens参数设置单次请求的最大token处理量,通过--max-num-seqs参数设置并行请求数。

vLLM模型启动后,我们可以查看端口状态观察是否启动成功。

或者使用API接口发送测试请求:

swift 复制代码
curl http://localhost:8000/v1/completions \-H "Content-Type: application/json" \-d '{"model": "deepseek-1.5b", "prompt": "Hello!", "max_tokens": 200}'

确认模型可用之后,我们开始部署AnythingLLM。AnythingLLM支持运行在桌面环境或者服务器环境,我们前面介绍了在桌面环境的安装与运行(用Anything LLM来一场关于SD-WAN的开卷考试,DeepSeek-R1和QwQ谁更胜一筹?)。当在服务器环境中时,目前仅支持运行在Docker环境中。

首先,确认安装了Docker环境(Ubuntu 22.04.4安装Docker引擎)。

nginx 复制代码
apt install docker.io -y

然后,拉取AnythingLLM镜像。

bash 复制代码
docker pull mintplexlabs/anythingllm

接下来,我们创建一个AnythingLLM的存储目录并赋予权限,再手工创建一个配置文件。

bash 复制代码
mkdir anythingllmcd anythingllmtouch .envchmod 777 /root/deepseek/anythingllm -R

接下来,我们就可以启动AnythingLLM的Docker容器了。

swift 复制代码
docker run -d \  --network host \  --name anythingllm \  --cap-add SYS_ADMIN \  -p 3001:3001 \  -v /root/deepseek/anythingllm:/app/server/storage \  -v /root/deepseek/anythingllm/.env:/app/server/.env \  -e STORAGE_DIR="/app/server/storage" \  mintplexlabs/anythingllm:latest

AnythingLLM的Docker容器启动后,我们可以查看端口状态观察是否启动成功。

启动成功之后,我们就可以通过浏览器访问AnythingLLM的WEB管理页面了(http://192.168.1.222:3001)。

点击【开始】之后,我们开始配置LLM偏好,本次,我们选择【Local AI】,并在Local AI Base URL处填入http://192.168.1.222:8000/v1,这样系统就能自动识别到存在的模型,再从Chat Model Selection选择对应的模型就可以了。

对于企业用户而言,用户设置界面可以选择【我的团队】使用此实例。此时,我们将创建一个管理员账号,配置完成后,我们就可以创建和邀请其他人成为用户或管理员了。

数据处理与隐私页面。

跳过AnythingLLM调查。

创建我们的第一个工作区并开始使用AnythingLLM。

进入到工作区中,我们先简单提问一个问题。

确实快,输出速率达到了69.57 tok/s。

然后我们尝试使用FP16精度重新运行一下DeepSeek-R1模型。

css 复制代码
nohup vllm serve /root/deepseek \--trust-remote-code \--dtype half \    --tensor-parallel-size 1 \    --max-model-len 4096 \    --gpu-memory-utilization 0.9 \    --served-model-name deepseek-1.5b \    --port 8000 \--host 0.0.0.0 > vllm.log 2>&1 &

此时的显存占用仍为6248 MB。

重新提问一下。

可以看到,相同的问题,DeepSeek认为再次提问是输出不够详细,需要更详细的回答。

从结果来看,输出速率变化不大,但是输出时长多了一倍多。

对应的,我们切换到Windows系统,还是使用AnythingLLM调用通过ollama运行的FP16量化的DeepSeek-R1:1.5b模型,用相同的问题再测试一下。

从长度和速率而言,跟第一次效果差不多,但是回答变成了英文回答。

要求用中文重新回答,可以看到回答的内容跟使用BF16精度时存在较大偏差。现在看来,后面可以使用AnythingLLM着手打造个人知识库了!

***推荐阅读***

桌面显卡RTX4070安装Ubuntu系统部署vLLM环境

DeepSeek-R1内卷把自己卷死了,QwQ模型的优势凸显出来了

简单测试一下DeepSeek和QwQ检索知识库的能力

用Anything LLM来一场关于SD-WAN的开卷考试,DeepSeek-R1和QwQ谁更胜一筹?

围观一下,QwQ真的能和DeepSeek-R1一较高下吗?

目前来看,ollama量化过的DeepSeek模型应该就是最具性价比的选择

哪怕用笔记本的4070显卡运行DeepSeek,都要比128核的CPU快得多!

帮你省20块!仅需2条命令即可通过Ollama本地部署DeepSeek-R1模型

离线文件分享了,快来抄作业,本地部署一个DeepSeek个人小助理

Ubuntu使用Tesla P4配置Anaconda+CUDA+PyTorch

Ubuntu磁盘空间不足或配置错误时,如何操作扩容?

没有图形界面,如何快速部署一个Ubuntu 24.10的Server虚拟机

openVPN不同加密算法性能对比

Debian系统配置网络的花样还是太多了

使用openVPN对比AES和SM4加密算法性能,国密好像也没那么差

安装Debian时千万不要使用网络镜像站点

OpenWrt如何配置WireGuard互联?