InternVL

开源接近GPT-4o的多模态对话模型,图像理解与对话一步到位。

InternVL 是一个开源的多模态对话模型家族,旨在成为 GPT-4o 的开源替代方案,在 CVPR 2024 上获得 Oral 论文。它解决了开源社区缺乏高性能视觉-语言模型的问题,通过将视觉编码器与语言模型深度融合,实现了接近 GPT-4o 的图像理解、对话和推理能力。核心能力包括:支持高分辨率图像输入、多轮对话、视觉问答、图像描述等。其技术栈基于 Python,采用大规模视觉-语言预训练策略,并提供了不同规模的模型版本(如 InternVL-Chat),以适应不同算力需求。项目在 GitHub 上拥有超过 10k 星标,是当前开源多模态领域最具影响力的项目之一。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 10162
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类开源模型
开发团队OpenGVLab
所属国家
官网地址
定价模式free
价格说明开源模型,MIT许可证,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议MIT
主要语言Python
技术栈/模型gpt,gpt-4o,gpt-4v,image-classification,image-text-retrieval,llm,multi-modal,semantic-segmentation,video-classification,vision-language-model,vit-22b,vit-6b
GitHub 星标★ 10162
30天Star增速
HF 下载量
上线时间2023-11-22 00:00:00
最近更新2026-09-22 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:进阶 约 20 分钟 部署方式:模型权重 5 步

环境要求

  • Python 环境(README 示例为 Python 代码)
  • 已安装 PyTorch(torch)与 transformers(PyTorch 版)
  • 已安装 Pillow(PIL)用于读取图片
  • NVIDIA GPU + CUDA 环境(示例代码使用 .cuda() 与 bfloat16)
  • 可访问 HuggingFace 下载 OpenGVLab 系列权重

安装与启动步骤

  1. 1准备运行环境

    README 未给出安装命令,需自备 Python 与 NVIDIA GPU/CUDA;示例全程使用 .cuda() 和 bfloat16,纯 CPU 或显卡不支持 bf16 时无法直接跑通。

  2. 2安装依赖库

    示例依赖 torch、transformers 与 Pillow,请按其官方文档自行安装对应 CUDA 版本;README 未提供 pip 安装命令,此处不代填。

  3. 3准备示例图片

    在代码所在目录创建 examples/ 目录并放入 image1.jpg;跨模态检索示例还需要 image2.jpg、image3.jpg,缺文件会直接报错。

  4. 4提取视觉特征

    用 InternViT-6B 对单张图片提取视觉特征。注意 README 中 image_processor 用的是 V1-5,模型用的是 V2_5,请照原文填写。

    import torch
    from PIL import Image
    from transformers import AutoModel, CLIPImageProcessor
    
    model = AutoModel.from_pretrained(
        'OpenGVLab/InternViT-6B-448px-V2_5',
        torch_dtype=torch.bfloat16,
        low_cpu_mem_usage=True,
        trust_remote_code=True).cuda().eval()
    
    image = Image.open('./examples/image1.jpg').convert('RGB')
    
    image_processor = CLIPImageProcessor.from_pretrained('OpenGVLab/InternViT-6B-448px-V1-5')
    
    pixel_values = image_processor(images=image, return_tensors='pt').pixel_values
    pixel_values = pixel_values.to(torch.bfloat16).cuda()
    
    outputs = model(pixel_values)
  5. 5跨模态检索编码

    用 InternVL-14B 分别编码三张图片与中英日三条文本,做图文检索。README 节选在此处被截断,后续计算相似度的代码请对照原文补全。

    import torch
    from PIL import Image
    from transformers import AutoModel, CLIPImageProcessor
    from transformers import AutoTokenizer
    
    model = AutoModel.from_pretrained(
        'OpenGVLab/InternVL-14B-224px',
        torch_dtype=torch.bfloat16,
        low_cpu_mem_usage=True,
        trust_remote_code=True).cuda().eval()
    
    image_processor = CLIPImageProcessor.from_pretrained('OpenGVLab/InternVL-14B-224px')
    
    tokenizer = AutoTokenizer.from_pretrained(
        'OpenGVLab/InternVL-14B-224px', use_fast=False, add_eos_token=True)
    tokenizer.pad_token_id = 0
    
    images = [
        Image.open('./examples/image1.jpg').convert('RGB'),
        Image.open('./examples/image2.jpg').convert('RGB'),
        Image.open('./examples/image3.jpg').convert('RGB')
    ]
    prefix = 'summarize:'
    texts = [
        prefix + 'a photo of a red panda',
        prefix + '一张熊猫的照片',
        prefix + '二匹の猫の写真'
    ]
    
    pixel_values = image_processor(images=images, return_tensors='pt').pixel_values
    pixel_values = pixel_values.to(torch.bfloat16).cuda()
    input_ids = tokenizer(texts, return_tensors='pt', max_length=80,
                          truncation=True, padding='max_length').input_ids.cuda()

关键配置

配置项必填说明示例
model(from_pretrained 的模型 ID)是指定从 HuggingFace 加载的权重仓库OpenGVLab/InternViT-6B-448px-V2_5
image_processor 模型 ID是图像预处理器的来源仓库,需与模型匹配OpenGVLab/InternViT-6B-448px-V1-5
torch_dtype否权重加载精度,示例统一使用 bfloat16torch.bfloat16
trust_remote_code是允许执行模型仓库自带的自定义代码True
tokenizer.pad_token_id否检索示例中把填充 token 设为 00
max_length否文本 tokenize 时的最大长度,示例为 8080

如何确认成功

脚本无报错跑完,拿到 outputs/pixel_values/input_ids 等张量,即说明模型加载与推理正常;本质检只在代码层面验证,README 未给出服务端口或界面。

常见问题

Q:需要多大显存才能跑?

A:README 未给出显存要求。示例用 InternViT-6B 和 InternVL-14B 级别的权重并以 bfloat16 加载,参数量较大,建议使用大显存 NVIDIA 显卡,显存不足可改用更小的模型版本。

Q:提示 examples/image1.jpg 不存在怎么办?

A:说明缺少示例图片。README 未提供图片下载方式,请自备图片并放到运行目录下的 examples/ 目录,文件名为 image1.jpg(检索示例还需 image2.jpg、image3.jpg)。

Q:为什么 image_processor 和模型 ID 版本号不一致?

A:这是 README 原文写法(模型为 InternViT-6B-448px-V2_5,处理器为 V1-5)。请先照原文填写,若加载报错可再对照项目文档确认匹配关系。

Q:没有 GPU 能运行吗?

A:示例代码显式调用了 .cuda() 并转成 bfloat16,需要 CUDA 环境;README 未提供 CPU 运行示例,纯 CPU 环境需自行改造代码,未见官方说明。

注意事项

  • README 节选中只给出了 HuggingFace 上的 Python 调用示例,没有 pip 安装命令、也没给 git clone 步骤,相关命令请以项目官方文档为准。
  • 代码依赖 CUDA 与 bfloat16 支持,纯 CPU 或老显卡可能无法直接运行。
  • 首次运行会从 HuggingFace 下载数 GB 级权重,注意网络与磁盘空间;README 未说明是否需要登录或配置镜像。
  • README 中的跨模态检索示例在节选里被截断,缺少后续相似度计算部分,请对照原文补全后再运行。

核心亮点

  • 性能接近 GPT-4o,在多项视觉-语言基准上领先开源同类模型
  • 提供多种模型规模,从 1B 到 40B+,适配不同硬件场景
  • 支持高分辨率图像输入,细节理解能力强,适合文档、图表等场景

不足之处

  • 模型参数量大,推理资源需求高,普通开发者难以本地部署
  • 文档和社区支持尚在完善,中文资料相对较少

适用场景

  • 企业级多模态内容审核与理解
  • 智能客服中的图像与文档问答
  • 学术研究中的视觉-语言模型对比与二次开发

替代项目

LLaVA、Qwen-VL、CogVLM

项目介绍

InternVL 是开源模型领域的开源项目,由 OpenGVLab 开发,2023 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(10,162)位列前 5%,在开源模型分类的 424 个项目里位列前 8%。

近 41 天,它的 GitHub 星标从 10,125 增加到 10,162,净增 37。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-22。MIT许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:企业级多模态内容审核与理解。同类可对比的替代方案包括 LLaVA、Qwen-VL、CogVLM。

上一篇:LLMSurvey

下一篇:ERNIE

同类项目推荐

Machine-Learning 开源

跟着博客笔记,边看边跑机器学习代码

All content related to machine learning from my blog

★ 115 2026-08-09
awesome-ltx2 开源

找齐 LTX-2 模型、工作流和 LoRA,一键上手视频生成。

All available LTX-2 models, encoders, workflows, LoRAs for ComfyUI

★ 593 2026-08-10