最近更新时间:2024.04.10 10:20:03
首次发布时间:2024.04.10 10:20:03
Qwen-VL-Chat 是一个官方模型组,它包含 3 个独立模型和 1 个 Ensemble 模型。Ensemble 模型将 3 个独立模型封装为一个工作流。本模型组允许您向一体机私有化部署 Qwen-VL-Chat 大模型,在边缘侧获取大模型服务。
Qwen-VL 是阿里云研发的大规模视觉语言模型(Large Vision Language Model,LVLM)。Qwen-VL 可以以图像、文本、检测框作为输入,并以文本和检测框作为输出。Qwen-VL-Chat 是 Qwen-VL 系列的 Chat 模型。
本模型组包含 4 个模型。其中,Ensemble 模型中封装了其他模型,定义了模型组的整体工作流。使用过程中,您只需部署 Ensemble 模型,无需关注中间的处理过程。
下表罗列了本模型组包含的所有模型。您可以在边缘智能控制台的 官方模型 列表访问这些模型。
模型名称 | 模型基本信息 |
---|---|
Qwen-VL-Chat PreProcess | |
Qwen-VL-Chat LLM | |
Qwen-VL-Chat PostProcess | |
Qwen-VL-Chat |
名称 | 类型 | 形状 | 说明 |
---|---|---|---|
QUERY | STRING | -1 | 提示词(prompt)文本。 |
REQUEST_OUTPUT_LEN | INT32 | -1 | 输出的最大长度。 |
IMAGE | STRING | -1 | 输入的图片。图片采用 base64 编码格式。 |
名称 | 类型 | 形状 | 说明 |
---|---|---|---|
text_output | STRING | -1 | LLM 响应的文本内容。 |
cum_log_probs | FP32 | -1 | 在生成每个新 token 时,模型计算出该 token 的对数概率(log probability)。 |
output_log_probs | FP32 | -1,-1 | 类似于 cum_log_probs,但特指输出 token(即生成的文本)的对数概率。 |
context_logits | FP32 | -1,-1 | 模型基于输入上下文计算出的这些原始分数。 |
generation_logits | FP32 | -1,-1,-1 | 与 context_logits 对应,指在生成新 token 的过程中计算出的 logits 分数。 |
本模型提供 2 个可部署版本。
版本名称 | 最大批处理大小 | 硬件架构要求 | 其他说明 |
---|---|---|---|
V1_3090_WithoutFile | 取值范围:1~100。 | 只能部署到具有 RTX 3090 显卡的一体机上。 | 此版本不包含 Qwen-VL-Chat 大模型文件。您必须先在一体机上挂载 Qwen-VL-Chat 大模型文件,然后才可以部署此版本。 |
V2_3090_WithFile | 取值范围:1~100。 | 只能部署到具有 RTX 3090 显卡的一体机上。 | 此版本包含 Qwen-VL-Chat 大模型文件。部署过程中涉及大模型文件的下载,部署用时较长。 |
部署不同版本的方法不同。根据要部署的版本,执行相应操作。
部署此版本前,您必须先在一体机的 /etc/vei_infer
目录手动挂载所需的大模型文件。
/etc/vei_infer
目录。/etc/vei_infer
目录挂载如下大模型文件:
qwen_engine
)vit_engine
)qwen_vl_tokenizer
)参考 部署模型服务进行模型服务的部署。在 部署模型服务 参数配置页面,修改以下配置:
说明
下表中未包含的配置项无需修改,统一使用默认值。
类型 | 配置项 | 说明 |
---|---|---|
基本信息 | 一体机 | 选择支持 GPU 的一体机。 |
服务名称 | 设置一个服务名称。服务名称在一台一体机上必须保持唯一。 | |
模型信息 | 模型 | 选择 Qwen-VL-Chat。 |
模型版本 | 选择 V1_3090_WithoutFile。 | |
服务配置 | HTTP端口 | 指定一个一体机上空闲的端口。 |
GRPC端口 | 指定一个一体机上空闲的端口。 | |
高级配置 | 参数配置 | 根据大模型文件的实际挂载路径修改以下示例代码,然后将修改后的代码粘贴到 参数配置 输入框。需要修改的字段包括:
|
参考 部署模型服务进行模型服务的部署。在 部署模型服务 参数配置页面,修改以下配置:
说明
下表中未包含的配置项无需修改,统一使用默认值。
类型 | 配置项 | 说明 |
---|---|---|
基本信息 | 一体机 | 选择支持 GPU 的一体机。 |
服务名称 | 设置一个服务名称。服务名称在一台一体机上必须保持唯一。 | |
模型信息 | 模型 | 选择 Qwen-VL-Chat。 |
模型版本 | 选择 V2_3090_WithFile。 | |
服务配置 | HTTP端口 | 指定一个一体机上空闲的端口。 |
GRPC端口 | 指定一个一体机上空闲的端口。 | |
高级配置 | 参数配置 | 设置为以下代码:
|
完成模型服务部署后,您可以使用客户端脚本进行模型的调用。以下是 Client 脚本的示例。
import requests import base64 server = "<server_ip:port>" # 修改为模型服务的服务地址(可从模型服务详情中获取) prompt = """描述一下图片的内容""" # 修改为要使用的提示词(prompt) img_path = "./cat.jpeg" # 修改为要读取的图片地址 max_ouput_len = 500 url = "http://%s/v2/models/m-official-32/generate" % server def request_qwen_vl(query, path): data = { "QUERY": query, "REQUEST_OUTPUT_LEN": max_ouput_len, "IMAGE": base64.b64encode(open(path, 'rb').read()).decode('utf-8') } response = requests.post(url, json=data) return response.json()['text_output'] print(request_qwen_vl(prompt, img_path))