总结

目标模型选型

根据https://lmarena.ai/的排行榜数据,选择了在中文领域表现较好的开源LLM模型 Qwen2 部署。
对于模型参数应该是越大越好,所以选择了72B的大模型。想在88G显存的运行的话,则需要对模型进行量化,初步选择了Int4的AWQ量化模型,有时间再和GPTQ量化模型做对比。

硬件选型

配置 型号 采购平台 单价 数量 金额(元)
CPU 2670v3 闲鱼 0 2 0
主板 超微 X10DRG-Q 闲鱼 0 1 0
内存 D4 2400 16g recc 闲鱼 100 4 400
硬盘 西数 SN550 1T 闲鱼 200 1 200
硬盘转接卡 佳翼 M.2转PCIE 闲鱼 20 1 20
CPU散热 超微2011风冷 闲鱼 0 2 0
机箱 7048GR-TR整机 闲鱼 1040 1 1040
机箱风扇 7048GR-TR自带 闲鱼 4 0 0
显卡 2080ti 300A 22g 闲鱼 2250 4 9000
显卡供电线 6p转8p 闲鱼 10 4 40
电源 2000W服务器电源 闲鱼 100 1 100
总计 / / / / 10800

环境配置和部署

显卡配置

限制功耗、限制频率、开启持久模型。

sudo nvidia-smi -pl 180
sudo nvidia-smi -lgc 300,1400
sudo nvidia-smi -pm 1

模型配置

python -m vllm.entrypoints.openai.api_server     --model=/home/limo/AI/Qwen2-72B-Instruct-AWQ     --quantization=awq     --served-model=qwen2-72B     --dtype=float16     --tensor-parallel-size=4      --trust-remote-code     --gpu-memory-utilization=0.95           --host=0.0.0.0          --port=1234     --max-model-len=16000            --max-num-seqs=2048            --kv-cache-dtype=fp8_e5m2

--dtype
在 awq 下面 应该设置为 float16 或者 half

--tensor-parallel-size
取决于 gpu 的数量,4卡时设置为4

--trust-remote-code
信任来自 huggingface 的远程代码。

--gpu-memory-utilization
用于模型执行程序的 GPU 内存比例,范围为 0 到 1。例如,值 0.5 表示 GPU 内存利用率为 50%。如果未指定,则将使用默认值 0.9。

--max-model-len
模型上下文长度。如果未指定,将自动从模型配置中派生。这个取决于vram大小

--max-num-seqs
一次推理最多能处理的sequences数量。默认值是256。

max_num_seqs越大,能处理的请求数量就会越大,但提升也会有上限,不一定是越大越好:
在2卡上,max_num_seqs设置为1024,相较于256,速度提升19%。
在4卡上,max_num_seqs设置为2048,相较于256,速度提升35%;max_num_seqs设置为4096,相较于256,速度提升33%。