AI开发平台MODELARTS-启动推理服务(多模态模型):启动离线推理

时间:2025-12-15 17:54:45

启动离线推理

使用如下脚本AscendCloud-LLM/llm_inference/ascend_vllm/vllm-gpu-0.9.0/examples/offline_inference/vision_language.py进行多模态离线推理

  1. 找到对应系列模型的入口函数,修改模型权重位置,例如qwen2.5-vl,将下图红框修改为模型权重位置:
    图1 修改模型权重位置
  2. 修改模型参数,在对应系列模型的入口函数中的LLM中设置参数。

    参数说明:

    • model:模型地址,模型格式是huggingface的目录格式
    • max_num_seqs:最大同时处理的请求数
    • max_model_len:推理时最大输入+最大输出tokens数量,输入超过该数量会直接返回
    • max_num_batched_tokens:prefill阶段,最多会使用多少token,必须大于或等于--max-model-len,推荐使用4096或8192
    • dtype:模型推理的数据类型
    • tensor_parallel_size:模型并行数(即使用几卡)
    • block_size:PagedAttention的block大小,推荐设置为128
    • gpu_memory_utilization:NPU使用的显存比例,复用原vLLM的入参名称,默认为0.9
    • trust_remote_code:是否相信远程代码
    • distributed_executor_backend="ray":使用ray通信
  3. 修改模型参数,在SamplingParams中设置参数。
    图2 在SamplingParams中设置参数

    表1 参数说明

    参数

    是否必选

    默认值

    参数类型

    描述

    max_tokens

    16

    Int

    每个输出序列要生成的最大tokens数量。

    top_k

    -1

    Int

    控制要考虑的前几个tokens的数量的整数。设置为-1表示考虑所有tokens。适当降低该值可以减少采样时间。

    top_p

    1.0

    Float

    控制要考虑的前几个tokens的累积概率的浮点数。必须在 (0, 1] 范围内。设置为1表示考虑所有tokens。

    temperature

    1.0

    Float

    控制采样的随机性的浮点数。较低的值使模型更加确定性,较高的值使模型更加随机。0表示贪婪采样。

    stream

    False

    Bool

    是否开启流式推理。默认为False,表示不开启流式推理。

    ignore_eos

    False

    Bool

    ignore_eos表示是否忽略EOS并且继续生成token。

    repetition_penalty

    1.0

    Float

    减少重复生成文本的概率。

    stop_token_ids

    None

    Int

    停止tokens列表。Internvl2.5需要传入,参考离线推理脚本AscendCloud-LLM/llm_inference/ascend_vllm/vllm-gpu-0.9.0/examples/offline_inference/vision_language.py的stop_token_ids。

  4. 指定图片路径。指定本地图片路径需在文件开头增加代码from PIL import Image,在get_multi_modal_input函数中新增如下代码image = Image.open("{图片路径}").convert('RGB')。
    图3 指定图片路径
  5. 指定输入文本。
    图4 指定输入文本
  6. 启动推理脚本

    qwen2.5-vl系列模型启动命令

    python vision_language.py --model-type qwen2_5_vl

    脚本运行参数说明:

    --model-type:模型类型,目前可选参数为internvl_chat、qwen2_5_vl。

    --num-prompts:单次运行输入的prompt的数量,默认为4。

    --modality:输入类型,目前可选参数为image、video,默认为image。

    --num-frames:从视频中提取的帧数,默认为16。

support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_infer_5906025.html