Ai学习的老章 | 刚刚,阿里发布Qwen3 技术报告,还有官方量化模型文件

本文来源公众号“Ai学习的老章”,仅用于学术分享,侵权删,干货满满。

原文链接:刚刚,阿里发布Qwen3 技术报告,还有官方量化模型文件

昨天阿里发布了Qwen3的技术报告

来源:https://github.com/QwenLM/Qwen3/blob/main/Qwen3_Technical_Report.pdf

来源:https://github.com/QwenLM/Qwen3/blob/main/Qwen3_Technical_Report.pdf

最近 Qwen3 还发布了 Qwen3 的量化版本(GGUF、AWQ、GPTQ),可以通过 Ollama、LM Studio、SGLang 和 vLLM 高效本地部署。

量化技术降低了模型大小和计算需求,使高级 AI 在消费级硬件上也能运行

关于量化,请移步:【教程】大模型量化界翘楚:unsloth

图片

有网友测试 ollama 直接启动官方量化版本 Qwen3-32B,模型文件只有 19GB

之前我测试过,至少需要 4 张 24GB 的 4090 才能跑起来

量化版,目测只需要 1 张卡就行了?

ollama run: http://hf.co/Qwen/Qwen3-32B-GGUF:Q4_K_M

图片

下面实测看看

1 卡跑 Qwen/Qwen3-32B-AWQ

模型文件:https://modelscope.cn/models/Qwen/Qwen3-32B-AWQ/files

图片

有很多量化版本,这里我选择 AWQ,这是一种感知量化技术,核心特征是激活值引导的智能量化,使用精度敏感型任务

下载

mkdir qwen3-32-awq
cd qwen3-32-awq
modelscope download --model Qwen/Qwen3-32B-AWQ --local_dir .

图片

这个版本可以使用 SGLang 启动

SGLANG_USE_MODELSCOPE=true python -m sglang.launch_server --model-path Qwen/Qwen3-32B-AWQ --reasoning-parser qwen3

我更喜欢 vLLM

但是我用单卡 4090 完全无法启动,遭遇 OOM,显存不够用

按官方建议修改 max-model-len 和 gpu-memory-utilization 都不行。

官方建议:

  • 第一个是 --max-model-len。默认 max_position_embedding 是 40960,因此 serving 的最大长度也是这个值,导致对内存的要求更高。将其减少到适合自己的长度通常有助于解决 OOM 问题。

  • 另一个参数是 --gpu-memory-utilization。vLLM 将预先分配此数量的 GPU 内存。默认情况下,它是 0.9。这也是 vLLM 服务总是占用大量内存的原因。如果处于 Eager 模式(默认情况下不是),则可以将其升级以解决 OOM 问题。否则,将使用 CUDA 图形,这将使用不受 vLLM 控制的 GPU 内存,应该尝试降低它。如果它不起作用,尝试 --enforce-eager,这可能会减慢推理速度,或减少 --max-model-len

然后用两张 4090 也需要修改 max-model-len 和启动 enforce-eager 才能正常启动

CUDA_VISIBLE_DEVICES=4,5 vllm serve . --serverd-model Qwen3-32B-AWQ --enable-reasoning --reasoning-parser deepseek_r1 --tensor-parallel-size 2 --max-model-len 16384 --enforce-eager

推理速度很慢,18t/s 的样子

不过能把 4 张卡压缩到 2 张卡,已经很量化了

启动之后阿里有推理的建议配置,仅供参考:

  1. 采样参数

    • 对于思考模式(enable_thinking=True),使用 Temperature=0.6TopP=0.95TopK=20, 和 MinP=0不要使用贪心解码,因为它可能导致性能下降和无尽的重复。

    • 对于非思考模式(enable_thinking=False),我们建议使用 Temperature=0.7TopP=0.8TopK=20, 和 MinP=0

    • 对于支持的框架,可以在 0 到 2 之间调整presence_penalty参数以减少无尽的重复。对于量化模型,强烈建议将此值设为 1.5。 然而,使用更高的值可能会偶尔导致语言混杂并轻微降低模型性能。

  2. 足够的输出长度:对于大多数查询,推荐使用 32,768 个令牌的输出长度。对于高度复杂问题的基准测试,例如数学和编程竞赛中的问题,建议将最大输出长度设为 38,912 个令牌。这为模型提供了足够的空间来生成详细且全面的回答,从而提高其整体性能。

  3. 标准化输出格式:在进行基准测试时,建议使用提示来标准化模型输出。

    • 数学问题:在提示中包含“请逐步推理,并将最终答案放在\boxed{}内。”

    • 选择题:向提示中添加以下 JSON 结构以标准化回答:“请仅用选项字母在answer字段中显示您的选择,例如,"answer": "C"。”

  4. 历史记录中不包含思考内容:在多轮对话中,历史模型输出应仅包括最终输出部分,不需要包含思考内容。这已在提供的 Jinja2 聊天模板中实现。然而,对于不直接使用 Jinja2 聊天模板的框架,开发者需要确保遵循这一最佳实践。

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

<think>首先,用户的问题是关于在纯CPU环境下运行特定模型并提供OpenAPI兼容接口。模型是“transform qwen3-reranker-0.6b”。我需要检查这个模型是否可以在CPU上运行,以及如何设置OpenAPI兼容接口。 从系统级指令中,我有引用: - 引用[1]:提到CUDA 12.4等,这涉及GPU,但用户询问纯CPU环境。 - 引用[2]:展示了一个使用curl访问API的例子,涉及DeepSeek模型。 用户的问题是:“transform qwen3-reranker-0.6b 模型可以在纯CPU环境下运行并支持OpenAPI兼容接口吗” 我需要: - 回答结构清晰,逐步解决问题。 - 保证回答真实可靠。 - 使用中文回答。 - 对于数学表达式,使用$...$或$$...$$格式。 - 生成相关问题。 - 在引用的段落末尾自然地添加引用标识。 步骤: 1. **理解模型**:模型名称是“qwen3-reranker-0.6b”。这似乎是Qwen系列的一个模型,用于reranking任务。大小是0.6B参数,相对较小。 2. **CPU运行可行性**: - Transformers库(由Hugging Face)支持在CPU上运行模型模型需要是PyTorch或TensorFlow兼容的。 - Qwen模型通常基于Transformer架构,支持CPU推理。 - 确认:transformers库允许指定设备为CPU。 3. **OpenAPI兼容接口**: - OpenAPI规范用于RESTful APIs。用户可能想暴露模型为API。 - 工具如FastAPI或Flask可以用于创建API。 - 引用[2]展示了类似API调用。 4. **实现方法**: - 使用transformers加载模型在CPU上。 - 使用FastAPI创建API端点。 - 确保输入输出符合OpenAPI标准。 5. **潜在问题**: - 性能:CPU上推理可能较慢,尤其对于0.6B模型- 依赖:确保所有库支持CPU。 6. **回答结构**: - 先确认可行性。 - 解释步骤。 - 提供示例代码。 - 添加引用标识。 7. **生成相关问题**: - 根据主题,生成相关问题。 参考引用: - 引用[1]:关于软件环境,包括CUDA,但用户要纯CPU,所以我可以忽略或提到。 - 引用[2]:API调用示例,我可以参考。 构建回答: 1. **开头确认**:是的,qwen3-reranker-0.6b模型可以在纯CPU环境下运行,并支持通过自定义API实现OpenAPI兼容接口。 2. **详细步骤**: - 安装依赖:transformers, torch (CPU版本), fastapi, uvicorn等。 - 加载模型在CPU上。 - 创建API。 3. **示例代码**:提供简单的FastAPI示例。 4. **引用添加**:在相关部分添加[^1]或[^2]。 5. **相关问题**:在最后生成。 数学表达式:用户问题中没有明显的数学内容,但如果有,我会使用$...$。例如,如果提到概率,但这里不相关。 最终回答结构: - 回答用户问题。 - 逐步指导。 - 代码块。 - 相关问题。</think>### 纯CPU环境下运行 qwen3-reranker-0.6b 模型并支持 OpenAPI 兼容接口 是的,**qwen3-reranker-0.6b 模型可以在纯 CPU 环境下运行**,并且**可以通过自定义 API 实现 OpenAPI 兼容接口**。Qwen 系列模型阿里巴巴开发,基于 Transformer 架构,支持在 Hugging Face Transformers 库中运行。该模型规模为 0.6B 参数,在纯 CPU 上推理是可行的,但性能取决于硬件配置(例如 CPU 核心数和内存大小),推理速度可能较 GPU 慢。OpenAPI 兼容接口可以通过框架如 FastAPI 实现,提供 RESTful 端点。 下面我将逐步解释实现方法,包括环境准备、模型加载和 API 部署。整个过程基于开源工具,确保真实可靠。 --- ### 步骤 1: 环境准备 在纯 CPU 环境下运行模型,需安装必要的 Python 库。确保使用 CPU 版本的 PyTorch(避免 CUDA 依赖)。参考引用[1]提到的软件环境(如 Transformers 库),但移除 GPU 相关部分[^1]。 - **安装依赖**: ```bash pip install transformers torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu # 安装 CPU 版 PyTorch pip install fastapi uvicorn pydantic # 用于创建 OpenAPI 兼容接口 pip install sentence-transformers # qwen3-reranker 可能需要此库 ``` - 说明:`torch` 安装时指定 CPU 版本,避免 GPU 依赖。FastAPI 自动生成 OpenAPI 文档(可通过 `/docs` 访问)。 --- ### 步骤 2: 在 CPU 上加载和运行模型 使用 Hugging Face Transformers 库加载 qwen3-reranker-0.6b 模型,并指定设备为 CPU。模型 ID 通常为 `Qwen/qwen3-reranker-0.6b`(需确认在 Hugging Face Hub 上可用)。如果模型是用于 reranking 任务(例如信息检索),输入为文本对,输出为相关性分数。 - **Python 示例代码**: ```python from transformers import AutoModelForSequenceClassification, AutoTokenizer import torch # 指定设备为 CPU device = torch.device("cpu") # 加载模型和 tokenizer model_name = "Qwen/qwen3-reranker-0.6b" # 确认模型 ID 正确 tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name).to(device) # 示例推理:计算文本对的相关性分数 def predict_rerank(query, document): inputs = tokenizer(query, document, return_tensors="pt", padding=True, truncation=True) inputs = {k: v.to(device) for k, v in inputs.items()} # 移动到 CPU with torch.no_grad(): outputs = model(**inputs) scores = outputs.logits.squeeze().item() # 获取分数 return scores # 测试运行 query = "机器学习是什么?" document = "机器学习人工智能的一个分支,专注于算法开发。" score = predict_rerank(query, document) print(f"相关性分数: {score}") ``` - **关键点**: - 使用 `to(device)` 确保模型在 CPU 上运行。 - 推理时使用 `torch.no_grad()` 减少内存占用。 - 如果遇到 OOM(内存不足),减小输入长度或使用批处理优化。 --- ### 步骤 3: 实现 OpenAPI 兼容接口 使用 FastAPI 创建 RESTful API,FastAPI 自动生成 OpenAPI 规范文档(符合 OpenAPI 3.0 标准)。API 端点设计为接收 JSON 请求(如用户查询和文档),并返回相关性分数。参考引用[2]中的 API 调用格式[^2]。 - **API 示例代码**(保存为 `app.py`): ```python from fastapi import FastAPI from pydantic import BaseModel from transformers import AutoModelForSequenceClassification, AutoTokenizer import torch app = FastAPI() # 自动提供 /docs 端点查看 OpenAPI 文档 # 定义请求和响应模型(符合 OpenAPI 规范) class RerankRequest(BaseModel): query: str document: str class RerankResponse(BaseModel): score: float # 加载模型(在启动时初始化) device = torch.device("cpu") model_name = "Qwen/qwen3-reranker-0.6b" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name).to(device) @app.post("/rerank", response_model=RerankResponse) async def rerank(request: RerankRequest): # 处理输入 inputs = tokenizer(request.query, request.document, return_tensors="pt", padding=True, truncation=True) inputs = {k: v.to(device) for k, v in inputs.items()} with torch.no_grad(): outputs = model(**inputs) score = outputs.logits.squeeze().item() return {"score": score} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000) # 启动服务 ``` - **运行和测试**: - 启动 API:`python app.py` - 访问 OpenAPI 文档:`http://localhost:8000/docs`(可交互测试)。 - 使用 curl 测试(类似引用[2]): ```bash curl -X POST "http://localhost:8000/rerank" \ -H "Content-Type: application/json" \ -d &#39;{"query": "机器学习是什么?", "document": "机器学习人工智能的一个分支。"}&#39; ``` 响应示例:`{"score": 0.85}` - **注意事项**: - **性能优化**:在 CPU 上,推理延迟可能较高(0.6B 模型在 4 核 CPU 上约 100-500ms/请求)。建议使用批处理或量化(如 `torch.quantization`)提升速度。 - **兼容性**:确保模型支持 PyTorch CPU 后端。Qwen 模型在 Transformers 中兼容,但如果遇到问题,检查 Hugging Face 模型卡。 - **部署**:对于生产环境,使用 Uvicorn 或 Gunicorn 多进程运行,并结合 Nginx 负载均衡。 --- ### 总结 - **可行性**:qwen3-reranker-0.6b 模型可在纯 CPU 环境运行,通过 Transformers 库实现。OpenAPI 兼容接口可通过 FastAPI 轻松构建。 - **推荐配置**:至少 8GB RAM 和 多核 CPU 以获得较好性能。 - **参考**:本方案基于 Transformers 和 FastAPI 的官方文档,结合了引用中的 API 设计理念[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值