提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
随着大模型不断发展,各家推出的模型,指标越来越接近,推理成本也大幅降低(阿里Qwen,文心一言,智普 ChatGLM都在降价),个人玩家只需要找到一个最适合自己的开源模型部署即可,写了这么多篇大模型笔记了,今天写一Qwen32B-AWQ收个尾。
- 先说结论Qwen1.5-32B-Chat-AWQ跑在3090上完全满足我的需求
一、模型下载
#使用魔搭下载,首先安装依赖
pip install modelscope
#新建download.py 填入下面内容,注意!! 替换cache_dir 为你的工作目录,模型文件将下载至这个位置
from modelscope import snapshot_download
model_dir = snapshot_download('qwen/Qwen1.5-32B-Chat-AWQ',cache_dir='/root/workspace')
二、使用vLLM推理
#1.此安装默认使用CUDA 12.1
pip install vllm
#2.您也可以使用环境变量指定安装版本。下面摘自vllm官方文档
# Install vLLM with CUDA 11.8.
export VLLM_VERSION=0.4.0
export PYTHON_VERSION=39
pip install https://github.com/vllm-project/vllm/releases/download/v${VLLM_VERSION}/vllm-${VLLM_VERSION}+cu118-cp${PYTHON_VERSION}-cp${PYTHON_VERSION}-manylinux1_x86_64.whl --extra-index-url https://download.pytorch.org/whl/cu118
#3.您还可以下载适合的安装包离线安装,
#地址https://github.com/vllm-project/vllm/releases
#下面这个安装包使用python3.10 和 cuda11.8
pip install vllm-0.4.1+cu118-cp310-cp310-manylinux1_x86_64.whl
三、运行模型
python -m vllm.entrypoints.openai.api_server \
--model /root/workspace/qwen/Qwen1.5-32B-Chat-AWQ \
--quantization=awq \
--enforce-eager \
--host 0.0.0.0 \
--port 8000 \
--served-model-name Qwen1.5-32B-Chat \
--max-model-len 5000 \
--gpu-memory-utilization 0.99
显存占用
请求测试
curl --location --request POST 'http://0.0.0.0:8000/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "Qwen1.5-32B-Chat",
"messages": [
{ "role": "system", "content": "你的角色定位是双重的,首先你是一个高效的文本处理引擎,你的核心任务是依据用户的指令生成精确的输出。其次,你是一名专业的文案策划与编辑,你的职责是根据用户提供的文字主题,创作出一份详尽的文案大纲。这份大纲应包含以下结构:主要的\"heading\"(主标题),明确的\"sub\"(副标题),以及由六个部分组成的\"items\"(章节)。每个章节须有一个独特的\"title\"(章节标题),并 underneath 这个章节标题下,有四个详细的\"projects\"(项目)。请注意,这份大纲必须且只能以JSON格式提供,且务必符合预设的JSON schema,以保证信息的准确性和一致性。"},
{ "role": "user", "content": "制作咖啡<" }
]
}'
预期响应
{
"id": "cmpl-5c0cd052a25e4b97a347760d31f0f8e4",
"object": "chat.completion",
"created": 1716282077,
"model": "Qwen1.5-32B-Chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "```json\n{\n \"heading\": \"咖啡制作艺术\",\n \"sub\": \"从豆到杯的完美旅程\",\n \"items\": [\n {\n \"title\": \"选择咖啡豆\",\n \"projects\": [\n {\n \"name\": \"咖啡种类\",\n \"description\": \"了解阿拉比卡、罗布斯塔和利比里卡咖啡豆的特性\",\n \"steps\": [\n \"研究不同种类咖啡豆的味道\",\n \"购买高质量的咖啡豆\"\n ],\n \"resources\": [\n \"咖啡豆品种指南\"\n ]\n },\n {\n \"name\": \"新鲜度\",\n \"description\": \"确保咖啡豆的新鲜度,影响口感的关键\",\n \"steps\": [\n \"购买小包装,避免长期存储\",\n \"购买后两周内使用完\"\n ],\n \"resources\": [\n \"咖啡豆储存方法\"\n ]\n }\n ]\n },\n {\n \"title\": \"咖啡研磨\",\n \"projects\": [\n {\n \"name\": \"研磨程度\",\n \"description\": \"根据冲泡方式调整研磨粗细\",\n \"steps\": [\n \"了解法压壶、意式浓缩咖啡机等设备对应的研磨度\",\n \"购买可调研磨机,调整研磨粒度\"\n ],\n \"resources\": [\n \"咖啡研磨程度指南\"\n ]\n },\n {\n \"name\": \"研磨时机\",\n \"description\": \"现磨咖啡豆,保留最大风味\",\n \"steps\": [\n \"冲泡前才研磨咖啡豆\",\n \"避免长时间暴露在空气中\"\n ],\n \"resources\": [\n \"研磨咖啡的最佳实践\"\n ]\n }\n ]\n },\n {\n \"title\": \"冲泡技巧\",\n \"projects\": [\n {\n \"name\": \"水温控制\",\n \"description\": \"理想的水温对提取咖啡风味至关重要\",\n \"steps\": [\n \"了解不同冲泡方式的适宜水温\",\n \"使用温度计精准控制水温\"\n ],\n \"resources\": [\n \"水温对咖啡冲泡的影响\"\n ]\n },\n {\n \"name\": \"水量与粉量\",\n \"description\": \"找到最佳比例,展现咖啡最佳风味\",\n \"steps\": [\n \"实验不同比例,记录口感变化\",\n \"找到个人偏好比例\"\n ],\n \"resources\": [\n \"咖啡粉水比例指南\"\n ]\n }\n ]\n },\n {\n \"title\": \"设备维护\",\n \"projects\": [\n {\n \"name\": \"咖啡机清洁\",\n \"description\": \"保持设备清洁,保证咖啡口感\",\n \"steps\": [\n \"定期清洗咖啡机\",\n \"使用专用清洁剂\"\n ],\n \"resources\": [\n \"咖啡机清洁方法\"\n ]\n },\n {\n \"name\": \"设备保养\",\n \"description\": \"延长设备寿命,保持最佳状态\",\n \"steps\": [\n \"参考设备说明进行定期维护\",\n \"适时更换磨损零件\"\n ],\n \"resources\": [\n \"咖啡设备保养指南\"\n ]\n }\n ]\n },\n {\n \"title\": \"品尝与调整\",\n \"projects\": [\n {\n \"name\": \"咖啡品鉴\",\n \"description\": \"学习如何品尝和评价咖啡\",\n \"steps\": [\n \"注意观察咖啡的色泽、香气和口感\",\n \"记录咖啡的风味特征\"\n ],\n \"resources\": [\n \"咖啡品鉴基础知识\"\n ]\n },\n {\n \"name\": \"个性化调整\",\n \"description\": \"根据个人口味调整冲泡参数\",\n \"steps\": [\n \"根据品鉴结果微调水温、粉量等参数\",\n \"尝试不同的冲泡方法\"\n ],\n \"resources\": [\n \"个性化咖啡冲泡指南\"\n ]\n }\n ]\n },\n {\n \"title\": \"咖啡文化\",\n \"projects\": [\n {\n \"name\": \"咖啡历史\",\n \"description\": \"了解咖啡的起源和发展\",\n \"steps\": [\n \"阅读咖啡历史书籍\",\n \"参观咖啡博物馆\"\n ],\n \"resources\": [\n \"世界咖啡历史\"\n ]\n },\n {\n \"name\": \"咖啡社区\",\n \"description\": \"加入咖啡爱好者社区,分享交流\",\n \"steps\": [\n \"参与线上咖啡论坛\",\n \"参加线下咖啡聚会\"\n ],\n \"resources\": [\n \"全球咖啡爱好者社区列表\"\n ]\n }\n ]\n }\n ]\n}\n```"
},
"logprobs": null,
"finish_reason": "stop",
"stop_reason": null
}
],
"usage": {
"prompt_tokens": 165,
"total_tokens": 1129,
"completion_tokens": 964
}
}
总结
以上就是今天要讲的内容,本文详细记录了如何用一张3090 使用vLLM框架推理起Qwen1.5-32B-Chat-AWQ。本篇为大模型笔记的最后一篇!
彩蛋
- Qwen2 就快要发布了
- 大模型笔记10篇,完结撒花!
- 文心一言免费开放两个模型
- 使用ernie-4.0作为替代kimi API不能联网
欢迎移步我的Github仓库,https://github.com/Jun-Howie/erniebot-openai-api
本仓库使用飞桨星河社区接入ernie-4.0联网功能,如果你需要可以Fork我的仓库,还请给个Star让我知道
写在最后
感谢一年多以来,开源社区各路大佬对我的帮助,让我从一个Java民工转方向成为大模型资深小白,由于工作变动,后续还是会以Java应用方向为主。