语言模型部署

诉求:应用要理解用户的表达诉求,并根据系统生产数据开展各种类型的分析与总结性表述。

限制条件:

  • 需要根据用户权限进行可见数据范围的控制
  • 语言模型需要本地离线部署,避免信息泄漏

其他特点:

  • 不考虑上下文问题,每次回复都是独立的

标题的【有限联动】代表利用语言模型的理解能力获取用户表述中的关键词,搭配后端应用逻辑进行权限控制并获取数据,最后将数据与 prompt 模板整合,再交由语言模型进行分析与归纳。

阿里云部署语言模型

# hf 稳定下载模型
sudo apt install aria2

wget https://hf-mirror.com/hfd/hfd.sh

chmod a+x hfd.sh

./hfd.sh deepseek-ai/DeepSeek-R1-Distill-Qwen-7B

# Qwen 7B
./hfd.sh Qwen/Qwen2.5-7B-Instruct

使用 VLLM 部署

# 首先服务器使用阿里云,操作系统 Ubuntu 22.04,CUDA 版本 12.1,GPU 是一张 T4,显存 16G

# 更新 apt
apt update

# 获取并安装 Anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
chmod +x Anaconda3-2024.02-1-Linux-x86_64.sh
./Anaconda3-2024.02-1-Linux-x86_64.sh

# 启用 Anaconda
export PATH=/root/anaconda3/bin:$PATH
conda init
source ~/.bashrc

# 创建 python3.12 的虚拟环境
conda activate base
conda create -n model python=3.12

# 安装 huggingface_hub
pip install huggingface_hub

# 配置HF镜像地址
export HF_ENDPOINT=https://hf-mirror.com

# 安装 vllm (安装 cuda 对应版本)
pip install vllm==0.6.0


# 下载模型(以 1.5B 的 Qwen 模型举例)以及文件夹内其他文件
# huggingface-cli download Qwen/Qwen2.5-1.5B model.safetensors --local-dir . --local-dir-use-symlinks False

# Ubuntu GPU 驱动安装(备用命令)
sudo ubuntu-drivers autoinstall

# 本地执行(qwen2.5是文件夹名称),使用 cpu
vllm serve qwen2.5 --host 0.0.0.0 --port 8000 --device cpu --max-model-len 32768 --disable-async-output-proc --enforce-eager

# Qwen/Qwen2.5-1.5B-Instruct 这里 T4 可以半精度运行
vllm serve Qwen/Qwen2.5-1.5B-Instruct --host 0.0.0.0 --port 8000 --max-model-len 32768 --enforce-eager --dtype=float16

# deepseek-ai/DeepSeek-R1-Distill-Llama-8B 这里 T4 半精度也无法运行,因为显存不够
vllm serve deepseek-ai/DeepSeek-R1-Distill-Llama-8B --tensor-parallel-size 1 --max-model-len 32768 --enforce-eager --dtype=float16

# deepseek-ai/DeepSeek-R1-Distill-Qwen-7B 这里 T4 需要半精度运行(强烈建议先下好模型再用命令执行,下面的命令直接执行下载速度可能很慢)
vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --tensor-parallel-size 1 --max-model-len 32768 --enforce-eager --dtype=float16

nvcc -V 和 nvidia-smi 命令查看 GPU

Qwen 1.5B 模型启动:

使用 Ollama 部署

Ollama 使用部署量化模型(默认 Q4_K_M),部署难度低,对显存要求也更低

14B 的量化运行可能效果会比 7B 的半精度运行更好

curl -fsSL https://ollama.com/install.sh | sh

ollama run deepseek-r1:14b