vllm加载qwen
时间: 2025-02-19 22:54:19 浏览: 72
### 使用 vLLM 加载 Qwen 模型
为了使用 vLLM 框架加载 Qwen 模型,可以遵循如下方法:
在 Python 中实现这一过程涉及调用特定于框架的方法来初始化模型实例并指定必要的参数。对于 `trust_remote_code` 参数,默认设置为 `True`,这意味着当通过 `from_pretrained()` 函数获取模型配置时,将会自动从 Hugging Face 或者其他的网络资源下载最新的配置文件[^1]。
下面是一个具体的例子展示如何利用 vLLM 来加载 Qwen 模型:
```python
import vllm
model_name = "Qwen"
# 初始化模型对象,并设定信任远程代码选项为真以便能够执行自定义操作
model = vllm.LLM(model_name, trust_remote_code=True)
# 创建推理器用于后续处理输入数据
inference_params = {"max_tokens": 50}
inferencer = model.create_inferencer(**inference_params)
```
这段代码展示了创建 LLM 对象的过程以及如何传递模型名称和是否信任远程代码作为参数给构造函数。之后还说明了怎样建立一个推断器来进行实际的数据预测工作,在这里设置了最大输出 token 数量为 50。
需要注意的是,如果希望禁用对来自互联网的未经验证脚本的支持,则应将 `trust_remote_code` 设定为 False;然而这样做可能会阻止某些特性正常运作。
相关问题
vllm部署qwen
### 使用VLLM部署Qwen模型
为了成功使用VLLM部署Qwen模型,需遵循特定的设置流程来确保环境配置正确并能高效运行。
#### 设置ModelScope环境变量
在启动服务前,应先设定`VLLM_USE_MODELSCOPE=True`这一环境变量以便利用ModelScope平台的功能。这一步骤对于后续操作至关重要,因为其决定了是否启用来自ModelScope的服务支持[^1]。
```bash
export VLLM_USE_MODELSCOPE=True
```
#### 启动API服务器命令示例
针对不同需求场景下的具体参数调整如下:
- **基本模式**:适用于快速测试,默认加载较小版本的Qwen2-7B-Instruct模型,并监听于本地8080端口。
```bash
python -m vllm.entrypoints.openai.api_server \
--model qwen/Qwen2-7B-Instruct \
--host 0.0.0.0 \
--port 8080
```
- **高级配置**:当追求更高性能时可考虑增加硬件资源分配以及优化网络通信效率;此案例中指定了GPU设备编号、自定义服务名称(`my_model`)、更大的最大输入长度(8096 tokens),并且启用了张量并行处理以加速计算过程。
```bash
CUDA_VISIBLE_DEVICES=0,1 /root/vendor/Python3.10.12/bin/python3.10 -m vllm.entrypoints.openai.api_server \
--host 0.0.0.0 \
--port 25010 \
--served-model-name my_model \
--model //root/qwen2.5/qwen2.5-coder-7b-instruct/ \
--tensor-parallel-size 2 \
--max-model-len 8096
```
#### 文件路径说明
如果预先已通过其他方式获取到了所需的预训练权重文件,则可以直接指定这些文件所在的绝对路径作为`--model`参数值的一部分。例如,在某些情况下可能会将下载好的模型放置在一个固定的目录结构内(如/home/user/gpt/qwen/models),此时只需相应修改上述命令中的路径部分即可完成挂载工作[^2]。
vllm部署qwen 图文
### 使用 VLLM 框架部署 Qwen 模型以支持图文生成功能
#### 准备工作
为了能够顺利地使用 VLLM 框架来部署 Qwen 模型并实现其图文生成功能,需先安装必要的依赖项以及下载所需的预训练模型。
```bash
pip install vllm transformers torch
```
#### 加载模型与配置环境
加载 Qwen 多模态模型,并设置好相应的参数以便后续调用。这里假设已经获取到了 Qwen-VL 版本的权重文件路径 `model_path`[^1]。
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Qwen-VL", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Qwen-VL", device_map="auto", trust_remote_code=True).eval()
```
#### 构建 API 接口
利用 FastAPI 创建 RESTful 风格的服务端点,允许客户端发送请求来进行图像描述或其他形式的内容创作任务。此部分代码展示了如何定义一个简单的 POST 请求处理函数用于接收输入数据并返回由 Qwen 生成的结果[^2]。
```python
from fastapi import FastAPI, Request
import uvicorn
app = FastAPI()
@app.post("/generate/")
async def generate(request: Request):
data = await request.json()
prompt = data.get('prompt', '')
inputs = tokenizer(prompt, return_tensors='pt').to(model.device)
outputs = model.generate(**inputs, max_length=50)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
return {"generated_text": result}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
```
上述代码片段实现了基本的功能需求——即接受一段文本作为提示词(Prompt),经过编码后传递给 Qwen 模型完成推理过程,最后解码输出得到最终结果。对于更复杂的场景比如涉及图片上传等情况,则可能还需要额外增加对多媒体类型的解析逻辑。
阅读全文
相关推荐
















