DeepLn | 智慧算力触手可及是一个挺便宜的算力租用平台,里面有大量的显卡可以租用。唯一美中不足的是,提供的pytorch版本低,只支持到2.01,为了匹配vllm,需要手动安装指定版本的pytorch。
vllm介绍
总体而言,vllm的优势有
- vLLM通过PagedAttention机制,可以高效地管理大语言模型的keys和values,显著提高吞吐量。
- memory sharing机制可以实现不同样本间的显存共享,进一步提升吞吐量。
- 使用pip安装vLLM后,可以通过几行代码进行离线推理。
- 也可以启动在线服务,然后通过API调用vLLM。
- vLLM兼容主流的预训练模型,可以不修改模型结构就获得显著的加速效果。
整体来说,vLLM是目前加速大模型推理的最先进解决方案之一,可以达到其他框架的24倍吞吐量提升。
手动安装vllm
vllm版本使用的是cuda12.1,而vllm自带的pytorch版本低,因此需要先卸载旧版本。
pip uninstall torch torchvision torchaudio
安装vllm 0.33,先安装pytorch,然后安装vllm。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
这里需要设置为清华源,否则安装不成功。
pip3 install torch==2.1.2 --index-url https://download.pytorch.org/whl/cu121
pip3 install vllm
需要注意的是,每次创建环境时,环境都需要重新安装。
可选:qwen量化为vllm支持的awq量化
首先安装autoawq包
pip install autoawq transformers_stream_generator einops tiktoken flash-attn
编写量化脚本
from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer
# 自己定义的本地模型路径
model_path = 'chatglm3-6b/'
quant_path = 'chatglm3-6b-awq'
quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" }
# Load model
model = AutoAWQForCausalLM.from_pretrained(model_path, **{"low_cpu_mem_usage": True})
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
# Quantize
model.quantize(tokenizer, quant_config=quant_config)
# Save quantized model
model.save_quantized(quant_path)
tokenizer.save_pretrained(quant_path)
整个平台下载速度很快,几分钟就能下载好一个7b的模型。
awq量化是最新的量化技术,解决由于大模型精度降低而导致的智力下降问题。
用3060的话,差不多20分钟。
部署openapi服务器
部署openapi server服务,这里最好设置一个你自己的专属api-key方便调用。
下面是执行的命令
python -m vllm.entrypoints.openai.api_server --model THUDM/chatglm3-6b
需要注意的是,这里只有实名后,才能开放端口。
开放端口后,尽情享受吧。