本地大模型部署(以Qwen2-72B为例)
总结
目标模型选型
根据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%。