当前位置: 首页 > news >正文

vLLM代码推理Qwen2-VL多模态

由于近期代码微调以及测试都是在远程服务器上,因此LLamafactory-cli webui 以及vLLM的ui均无法使用,因此不断寻求解决方案,我提供一个解决方案,LLamafactory微调完成的模型需要合并为一个完整模型后再使用vLLM进行代码推理测试微调模型的结果。

由于chat启动的终端互动模式均无法上传图像进行交互,因此需要代码或者参数来上传图像进行理解。

Vision Language — vLLM

 这个链接里有vLLM支持的多模态大模型不同的函数对prompt的处理

我在这里提供一个使用vLLM对Qwen2-VL的多模态图像理解的python代码

from vllm import LLM, SamplingParams
from PIL import Image

def run_qwen2_vl(questions: str, image_path: str):
    # 模型初始化配置
    llm = LLM(
        model="Qwen/Qwen2-VL-Lora_Sft",
        max_model_len=4096,
        max_num_seqs=5,
        dtype="half"
    )

    # 多模态数据加载
    image = Image.open(image_path)
    question = "What is the content of this image?"
    # 提示词构造
    prompt_template = [(
        "<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n"
        "<|im_start|>user\n<|vision_start|><|image_pad|><|vision_end|>"
        f"{question}<|im_end|>\n"
        "<|im_start|>assistant\n") for question in questions]
    print(prompt_template[0])
    sampling_params = SamplingParams(
        max_tokens=1024,
        temperature=0.8,
        top_p=0.95,
        frequency_penalty=0.2,
        presence_penalty=0.3,
        stop=["<|im_end|>"]
    )
    # 生成请求
    outputs = llm.generate({
    "prompt": prompt_template[0],
    "multi_modal_data": {"image": image},
    }, sampling_params=sampling_params)

    # 结果解析
    return [output.outputs[0].text for output in outputs]

# 使用示例
if __name__ == "__main__":
    response = run_qwen2_vl(
        questions=["请使用中文描述下这个图像并给出中文诊断结果"],
        image_path="aaaa.jpg"
    )
    print("模型输出:", response[0])

相关文章:

  • 华为配置篇-OSPF基础实验
  • 【RabbitMQ】Producer之TTL过期时间 - 基于AMQP 0-9-1
  • 【智能体架构:Agent】LangChain智能体类型ReAct、Self-ASK的区别
  • Sentinel-2哨兵2号数据提取指定区域NDVI值,映射冬小麦苗情分级,并且通过前端直接加载tif文件渲染效果
  • TMS320F28P550SJ9学习笔记3:SCI通信的特性与Sysconfig配置发送功能
  • 001.words and phrases
  • Golang实践录:go发布版本信息收集
  • llm + rag
  • VsCode 快捷键备忘
  • <03.05>Leetcode2
  • 如何为亚马逊季节性产品搭建高效的推广流程?
  • 解决新建小程序页面文字顶在顶部问题
  • CyberDefenders----DanaBot Lab
  • 【Java学习】String类变量
  • 电力设备基础概念解析
  • threejs:用着色器给模型添加光带扫描效果
  • 如何下载安装 PyCharm?
  • Libgdx游戏开发系列教程(5)——碰撞反弹的简单实践
  • 本地部署pangolin获取谱系,从而达到预测新冠的流行趋势
  • NetBeans 8.2 开发 CIFLog3.5 - 创建WelcomeDemo
  • 四个“从未如此”使巴以加沙战火绵延时间创下历史之最
  • 著名词作家陈哲逝世,代表作《让世界充满爱》《同一首歌》等
  • 经济日报评外卖平台被约谈:行业竞争不能背离服务本质
  • 文化润疆|为新疆青少年提供科普大餐,“小小博物家(喀什版)”启动
  • 当代科技拟召开债券持有人会议 ,对“H20科技2”进行四展
  • 泽连斯基:将带领乌代表团前往土耳其,已准备好与普京会谈