WinUbuntu双系统vLLM+anythingLLM本地知识库企业级张量运行DeepSeek教程

zxbandzby
1
2025-05-13

一、环境是python去直接拉模型运行

https://www.anaconda.com/download/success chmod +x Anaconda3-2024.10-1-Linux-x86_64.sh

./Downloads/Anaconda3-2024.10-1-Linux-x86_64.sh

conda create -n DeepseekR1 python=3.12 -y --override-channels -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free

conda activate DeepseekR1

#初始化su的密码

sudu passwd

#安装vim编辑器

sudo apt install vim

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

pip install upgrade pip

pip install modelscope==1.22.3

pip install openai==1.61.0

pip install tqdm==4.67.1

pip install transformers==4.48.2

pip install vllm==0.7.1

pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121

#测试是否安装完成

python -c “import torch; print(torch.cuda.is_available())”

二、代码示例

vim model_download.py

编辑下载文件,从魔塔社区找到文件路径

from modelscope import snapshot_download model_dir = snapshot_download(‘OPEA/DeepSeek-R1-distill-Qwen-32B-int4-sym-inc’, local_dir = ‘DeepSeekR1/DeepSeek-R1-distill-Qwen-32B’, revision = ‘master’)

python model_download.py

相关命令参数含义

--host 和 --port 参数指定地址。

--model 参数指定模型名称。

--dtype 模型权重和激活的数据类型,常用的为bfloat16,不指定为auto,这里为float16 --chat-template 参数指定聊天模板。

--served-model-name 指定服务模型的名称。

--max-model-len 指定模型的最大长度。

--tensor_parallel_size 张量并行数(用几张卡跑)

--gpu-memory-utilization 模型GPU利用率,未指定为0.9,长期稳定0.9,不会以为你的模型参数大或小而变化

--enable-prefix-caching 启用自动前缀缓存,可以避免在多次推理时重复计算相同的前缀

CUDA_VIDIBLE_DEVICES=0,1 \

python -m vllm.entrypoints.openai.api_server \

--model /home/lyq/DeepSeekr1/DeepSeekR1-32B \

--served-model-name DeepSeek-R1-32B \

--api-key 8888888-8888888-8888888-8888888 \

--max-model-len=4096 , \

--host 0.0.0.0 \

--port 8686

三、介绍anythingLLM

AnythingLLM并不是单纯的向量数据库,而是一个集成向量数据库的LLM(大型语言模型)应用框架

一、核心定位与技术架构​

  1. 框架性质
    AnythingLLM是一个端到端的私有化AI应用开发平台,支持文档管理、模型微调、对话系统构建等功能

    。其核心能力在于将LLM与知识库结合,实现基于RAG(检索增强生成)的智能问答。

  2. 向量数据库的角色
    AnythingLLM依赖向量数据库存储和处理数据,但自身并非数据库引擎。用户可灵活选择底层向量数据库(如LanceDB、Chroma、Milvus等),默认使用内置的LanceDB

    • 数据流程​:上传文档 → 分块 → 向量化 → ​存入向量数据库​ → 检索增强生成


​二、与纯向量数据库的关键差异​

维度

向量数据库(如ChromaDB)

AnythingLLM

核心功能

专注向量存储与相似性搜索

整合LLM、知识库、UI交互的全流程框架

数据关联性

无上下文理解能力

支持语义关联与上下文推理

扩展性

需配合其他工具构建应用

提供开箱即用的对话系统和API接口

典型使用场景

推荐系统、语义搜索

企业知识库、智能客服、文档分析


​三、技术实现细节​

  1. 向量化流程

    • 嵌入模型​:将文本转换为向量(如使用OpenAI或本地模型)

    • 分块策略​:通过算法将长文档分割为可管理的片段

    • 存储优化​:利用向量数据库索引加速检索(如HNSW算法)

典型部署场景

graph LR
A[用户文档] --> B(AnythingLLM分块/向量化)
B --> C{向量数据库}
C --> D[LLM推理]
D --> E[用户交互界面]

​四、常见误解澄清​

  • 网页1的表述问题​:网页1将AnythingLLM称为“向量数据库解决方案”可能引起歧义

    ,但根据更全面的技术文档(如网页3、网页5),其本质是以向量数据库为组件的应用框架

  • 功能边界​:AnythingLLM的价值在于将LLM与向量检索无缝集成,而非替代专用向量数据库。


​五、实际应用建议​

  1. 数据库选型

    • 轻量级需求:默认LanceDB(内置,无需额外配置)

    • 企业级扩展:选用ChromaDB或Milvus(支持分布式部署)

  2. 性能优化

    • 调整分块大小(建议512-1024 tokens)

    • 启用GPU加速嵌入模型推理

动物装饰