ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

10分钟上手InternVL2-4B:免费开源多模态大模型从下载到跑通的完整新手指南

10分钟上手InternVL2-4B:免费开源多模态大模型从下载到跑通的完整新手指南 10分钟上手InternVL2-4B免费开源多模态大模型从下载到跑通的完整新手指南【免费下载链接】InternVL2-4B项目地址: https://ai.gitcode.com/hf_mirrors/OpenGVLab/InternVL2-4BInternVL2-4B是 OpenGVLab 开源的一款免费开源多模态大模型视觉-语言模型VLM总参数约 42 亿能看懂图片、视频并输出文字回答。它在文档理解、图表问答、OCR、数学题、场景文字识别等任务上表现接近闭源商用模型且采用 MIT 协议可自由商用。本文带你 10 分钟内完成环境准备 → 下载模型 → 第一次看图对话 → 常见问题排查。 30 秒认识 InternVL2-4B它由什么组成InternVL2-4B 并不是单一网络而是三件套拼接而成组成模块作用通俗理解InternViT-300M-448px视觉编码器ViT模型的眼睛把图片变成特征MLP 投影层对齐图像与语言特征翻译官让眼睛看到的东西能被语言模型读懂Phi-3-mini-128k-instruct语言模型模型的大脑负责生成回答几个关键信息可在 config.json 中直接查看上下文窗口 8k支持长文本、多图、视频输入动态分辨率图片按 448×448 切片最多切 12 块max_dynamic_patch: 12细节图不会丢信息对话模板phi3-chat许可证MIT含 Phi-3-mini 组件免费商用无压力。官方在仓库的examples/目录放了一张测试用的小熊猫图片后面我们就是用它来做第一次看图说话 这张图就是仓库自带的测试素材路径为examples/image1.jpg同一目录下还有image2.jpg和红熊猫视频red-panda.mp4可直接用于多轮对话与视频理解实验。 环境准备安装 3 个依赖就能跑InternVL2-4B 基于 HuggingFacetransformers加载唯一硬性版本要求transformers4.37.2版本过低会加载失败。硬件参考16-bitbf16/fp16精度建议 16GB 显存左右的单卡8-bit 量化显存压力减半约 8GB 显存可尝试下节详述。一键安装依赖pip install torch torchvision transformers4.37.2 Pillow decord其中decord用于视频理解纯图像场景可省略。⬇️ 获取模型自动下载 vs 手动克隆方式一自动下载推荐最简单下面跑通环节使用的AutoModel.from_pretrained(OpenGVLab/InternVL2-4B)会自动从 HuggingFace 拉取模型文件到本地缓存无需任何额外操作第一次运行稍慢属正常现象。方式二手动克隆模型仓库适合离线部署 / 需要自定义代码逻辑时git clone https://gitcode.com/hf_mirrors/OpenGVLab/InternVL2-4B克隆后的核心文件速查文件作用config.json模型总配置视觉/语言结构、448px 动态切片参数、对话模板modeling_internvl_chat.py主模型实现model.chat()接口就在这里conversation.py对话模板定义modeling_intern_vit.py视觉编码器 InternViT 的实现tokenizer.model分词器模型model-00001-of-00002.safetensors模型权重分两片存放体积较大README.md官方完整文档推理、量化、多卡、LMDeploy 部署全部示例 最小可运行代码第一次看图对话新建demo.py贴上以下代码图像预处理为简化版动态切片完整版见 README.md 的 Quick Start 一节import torch import torchvision.transforms as T from PIL import Image from transformers import AutoTokenizer, AutoModel path OpenGVLab/InternVL2-4B # 1️⃣ 加载模型必须 trust_remote_codeTrue模型自带自定义代码 model AutoModel.from_pretrained( path, torch_dtypetorch.bfloat16, low_cpu_mem_usageTrue, use_flash_attnTrue, trust_remote_codeTrue, ).eval().cuda() tokenizer AutoTokenizer.from_pretrained(path, trust_remote_codeTrue, use_fastFalse) # 2️⃣ 图像预处理缩放 448x448 并归一化 MEAN, STD (0.485, 0.456, 0.406), (0.229, 0.224, 0.225) transform T.Compose([ T.Resize((448, 448)), T.ToTensor(), T.Normalize(meanMEAN, stdSTD), ]) pixel_values transform( Image.open(./examples/image1.jpg).convert(RGB) ).unsqueeze(0).to(torch.bfloat16).cuda() # 3️⃣ 第一轮给图片提问问题里必须带 image 标签 generation_config dict(max_new_tokens1024, do_sampleTrue) question image\n请简短描述这张图片。 response model.chat(tokenizer, pixel_values, question, generation_config) print(fUser: {question}\nAssistant: {response}) # 4️⃣ 第二轮多轮对话带上 history 即可保持上下文 response, history model.chat( tokenizer, None, 图中的小熊猫为什么趴在木头上, generation_config, historyNone, return_historyTrue, )运行命令python demo.py看到模型输出对图片的描述恭喜——你的多模态大模型已经跑通了 纯文本对话同样支持model.chat(tokenizer, None, 你好你是谁, generation_config)传None图像即可。 显存不够一键切换 8-bit 量化把模型加载部分改成下面这样显存占用大约减半model AutoModel.from_pretrained( path, torch_dtypetorch.bfloat16, load_in_8bitTrue, # 关键启用 8-bit 量化 low_cpu_mem_usageTrue, use_flash_attnTrue, trust_remote_codeTrue, ).eval()⚠️ 多卡部署稍复杂需手动切分层分布避免张量设备错误官方在 README.md 的 Multiple GPUs 一节给出了完整的split_model函数可直接复用。 进阶方向部署成服务与微调LMDeploy 部署pip install lmdeploy0.5.3后一条命令把模型打包成兼容 OpenAI 接口的服务lmdeploy serve api_server OpenGVLab/InternVL2-4B --server-port 23333之后任何支持 OpenAI 协议的客户端都能直接调用微调InternVL 系列已被 InternVL 官方仓库、SWIFT、XTuner 等主流框架支持微调用自己的数据进一步适配业务场景很方便详见 README.md 的 Finetune 一节。❓ 新手常见问题排查FAQ问题原因与解决加载时提示找不到模型类 / 报自定义代码错误未加trust_remote_codeTrue或transformers版本低于 4.37.2CUDA out of memory显存溢出换 8-bit 量化或减小输入图片切片数max_num回答内容截断调大generation_config中的max_new_tokens没有 NVIDIA GPU 能跑吗官方示例面向 CUDA 环境CPU 推理速度极慢不建议想让模型看视频用decord抽 8~32 帧后按帧喂入官方示例见 README.md 的load_video函数✅ 小结10 分钟回顾一下你完成了什么装好transformers4.37.2环境 → 自动下载InternVL2-4B 免费开源多模态大模型→ 用examples/image1.jpg跑通第一次看图对话 → 掌握 8-bit 量化省显存的技巧。接下来可以探索多图对比、视频理解或用 LMDeploy 把它部署成 API 服务。这个 MIT 协议的小而强的 VLM足以支撑你从原型验证到轻量级生产落地的多模态需求。【免费下载链接】InternVL2-4B项目地址: https://ai.gitcode.com/hf_mirrors/OpenGVLab/InternVL2-4B创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表