anning-2026/InternVL2-1B
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

InternVL2-1B on vLLM-Ascend 0.18.0rc1

1. 简介

本文档记录 InternVL2-1B 在 vLLM-Ascend 0.18.0rc1 环境的快速部署与验证结果。InternVL2-1B 是 OpenGVLab 发布的多模态大语言模型,由 InternViT-300M-448px(视觉编码器)、MLP 投影层和 Qwen2-0.5B-Instruct(语言模型)组成,总参数约 0.9B,支持图片和视频输入。

vLLM 的模型注册表中已内置 InternVLChatModel 架构支持,结合 vLLM-Ascend 插件可直接在昇腾 NPU 上部署推理,无需额外代码适配。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/OpenGVLab/InternVL2-1B
  • 权重下载地址(HuggingFace):https://huggingface.co/OpenGVLab/InternVL2-1B
  • Docker Image(vLLM-Ascend 0.18.0rc1):quay.io/ascend/vllm-ascend:v0.18.0rc1

参考文档:

  • https://docs.vllm.ai/projects/ascend/zh-cn/v0.18.0/tutorials/models/InternVL2-1B.html

2. 验证环境

组件版本
vllm-ascend0.18.0rc1
vllm0.18.0+empty
transformers4.57.6
torch-npu2.9.0.post1+gitee7ba04
  • NPU:Ascend910,1 逻辑卡,HBM 65536 MB
  • 模型权重:OpenGVLab/InternVL2-1B(ModelScope 下载)
  • 服务端口:8000

3. 环境准备

3.1 模型下载

pip install modelscope
modelscope download --model OpenGVLab/InternVL2-1B

模型将下载至 ~/.cache/modelscope/hub/models/OpenGVLab/InternVL2-1B/。

3.2 环境变量

export VLLM_USE_MODELSCOPE=True
export PYTORCH_NPU_ALLOC_CONF=max_split_size_mb:256

4. 部署

4.1 离线推理

import os
os.environ["VLLM_USE_MODELSCOPE"] = "True"
os.environ["PYTORCH_NPU_ALLOC_CONF"] = "max_split_size_mb:256"

from vllm import LLM, SamplingParams

MODEL_PATH = "OpenGVLab/InternVL2-1B"

llm = LLM(
    model=MODEL_PATH,
    max_model_len=4096,
    trust_remote_code=True,
    dtype="bfloat16",
    limit_mm_per_prompt={"image": 10},
)

sampling_params = SamplingParams(max_tokens=512)

image_url = "https://modelscope.oss-cn-beijing.aliyuncs.com/resource/qwen.png"

outputs = llm.chat(
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": image_url}},
                {"type": "text", "text": "Please provide a detailed description of this image"},
            ],
        },
    ],
    sampling_params=sampling_params,
)

print(outputs[0].outputs[0].text)

4.2 在线服务

vllm serve OpenGVLab/InternVL2-1B \
  --trust-remote-code \
  --dtype bfloat16 \
  --max-model-len 32768 \
  --enforce-eager

服务启动后,可通过 curl 测试:

curl http://localhost:8000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
    "model": "OpenGVLab/InternVL2-1B",
    "messages": [
    {"role": "user", "content": [
        {"type": "image_url", "image_url": {"url": "https://modelscope.oss-cn-beijing.aliyuncs.com/resource/qwen.png"}},
        {"type": "text", "text": "What is the text in the illustration?"}
    ]}
    ]
    }'

5. Smoke 验证

基础检查结果:

  • /v1/models 返回 200
  • /v1/chat/completions 返回 200
  • 模型加载耗时:0.70s(权重加载)
  • 模型权重占用:1.77 GB

验证输出示例:

{
    "model": "OpenGVLab/InternVL2-1B",
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "The text in the illustration reads \"TONGYI Qwen\"."
            },
            "finish_reason": "stop"
        }
    ]
}

6. 精度评测

6.1 NPU 多模态推理验证

在 NPU 上使用 5 组多模态测试用例对模型进行精度验证,涵盖 OCR 文字识别、图像描述、视觉推理和中文理解等能力维度,全部通过。

测试用例类别输出 Token耗时状态
OCR Text RecognitionTextVQA141.66sPASS
Image Detailed Description (image1)DocVQA1491.96sPASS
Image Understanding (image2)ChartQA1702.35sPASS
Visual Reasoning (image1)Reasoning520.69sPASS
Chinese Multimodal UnderstandingGeneral1291.85sPASS

6.2 NPU 基准评测结果(MMMU_val)

在 Ascend910 NPU 上使用 MMMU_val 数据集(30 个学科,900 个样本)进行完整精度评测:

指标NPU 结果GPU 参考值
MMMU_val Overall37.0% (333/900)36.7%

完整评测数据详见 npu_accuracy_mmmu_val.json。

6.3 GPU vs NPU 基准对比

以下为 InternVL2-1B 在 GPU 上的官方基准数据,供 NPU 部署参考对比:

基准测试GPU 参考值说明
MMMU_val36.7多学科多模态理解(官方模型卡片)
DocVQAtest81.7文档视觉问答
ChartQAtest72.9图表理解
InfoVQAtest50.9信息提取视觉问答
TextVQAval70.5自然场景文字识别

7. 注意事项

  1. Flash Attention:模型原始 ViT 代码依赖 flash_attn(CUDA),在 NPU 上不可用时自动回退到 naive attention,不影响推理正确性。vLLM 内部使用 SDPA 作为 ViT 编码器的注意力后端。

  2. ACL Graph:默认启用 PIECEWISE 模式,模型共 35 个图桶尺寸。如遇内存不足可添加 --enforce-eager 跳过图编译。

  3. 模型权重格式:权重文件为 model.safetensors(约 1.8GB),bfloat16 精度,单卡 Ascend910 可完整加载。

  4. Tokenizer 警告:运行时可能出现 incorrect regex pattern 的 tokenizer 警告,不影响推理结果。

8. 文件说明

文件说明
inference.py离线推理脚本
accuracy_test.py5 组多模态精度验证脚本
run_mmmu_eval.pyMMMU_val 完整基准评测脚本
npu_accuracy_mmmu_val.jsonMMMU_val NPU 评测结果
verification_log.txt完整验证日志