---
title: Shengoovlei-Vision-458M
canonical_url: "https://www.modelscope.cn/studios/yLDeveloper/Shengoovlei-Vision-458M"
md_url: "https://www.modelscope.cn/studios/yLDeveloper/Shengoovlei-Vision-458M.md"
repository: yLDeveloper/Shengoovlei-Vision-458M
last_updated: 2026-07-05
sdk_type: gradio
sdk_version: 6.17.3
downloads: 0
stars: 0
---

# Shengoovlei-Vision-458M

> Shengoovlei-Vision-458M - yLDeveloper 在 ModelScope 创建的在线 Demo。模型 Shengoovlei-Vision-458M 的在线体验

yLDeveloper/Shengoovlei-Vision-458M 是 ModelScope 魔搭社区上的在线可交互 Demo（创空间），基于 gradio 6.17.3 构建。

- **Repository**: yLDeveloper/Shengoovlei-Vision-458M
- **SDK**: gradio
- **SDK version**: 6.17.3
- **Downloads**: 0
- **Stars**: 0
- **Last updated**: 2026-07-05

Source: https://www.modelscope.cn/studios/yLDeveloper/Shengoovlei-Vision-458M

---

# Shengoovlei-Vision-458M 介绍

Shengoovlei-Vision-458M 是一个轻量级多模态理解 demo 模型，主要面向图片简短描述、简单图文交互、颜色识别和形状识别场景。模型由冻结的 CLIP ViT-B/16 视觉编码器、冻结的 TransformerLM 文本模型和训练得到的视觉投影层组成，总推理参数量约 458M。

项目博客：https://www.cnblogs.com/yldeveloper/p/20844773/m2mfull

## 模型描述

Shengoovlei-Vision-458M 采用 projector-only 多模态结构：

- 视觉编码器：`openai/clip-vit-base-patch16`
- 文本模型：自训练 TransformerLM，使用 dense Linear 版本 checkpoint
- 视觉连接层：两层 MLP projector，将 CLIP patch 表示映射到文本模型 embedding 空间
- 视觉 token 数量：`64`
- 输入图片尺寸：`224x224`
- 输出形式：短文本 caption 或简短回答

模型没有训练完整的视觉语言大模型基座，而是在冻结视觉编码器和冻结文本模型的基础上，只训练视觉 projector。因此它更适合作为教学、实验、个人 demo 和轻量在线展示模型，而不是强通用 VLM。

训练数据主要包含三类：

- 合成 color-shape 数据，用于保持颜色、形状和颜色+形状描述能力。
- Flickr30k captions，用于早期自然图像描述训练尝试。
- COCO 2017 captions，用于最终增强自然图像简短描述能力。

适用场景：

- 图片简短描述
- 简单 `describe / what is it / what do you see` 类型交互
- 简单颜色和形状识别
- 小模型多模态结构教学
- ModelScope/Gradio 在线 demo

不适用场景：

- 高风险应用
- 医疗、法律、金融等严肃判断
- OCR 和文档理解
- 复杂 VQA
- 精确计数
- 细粒度定位和 grounding
- 需要强事实推理的多模态任务

## 期望模型使用方式以及适用范围

推荐将本模型作为轻量级多模态 demo 使用。用户可以上传一张普通图片，然后输入简短 prompt，例如：

```text
describe
describe this image
what is it?
what do you see?
what color is it?
what shape is it?
```

模型期望输出一条简短、可读的英文描述，例如：

```text
A dog is playing in the snow.
A plate of food is on a table.
It is a blue rectangle.
```

模型可能会产生幻觉，尤其是在复杂场景、多人场景、细节丰富图片、抽象图片、动漫图片和 OCR 图片上。建议将输出视为 demo 级图像描述，而不是可靠事实结论。

## 如何使用

### 环境安装

```bash
pip install -r requirements.txt
```

如果是 CPU 环境，请先安装 CPU 版 PyTorch。如果是 GPU 环境，请先安装与 CUDA 驱动匹配的 PyTorch。

模型包含 tokenizer C++ 扩展源码，不要求仓库预置 `.so` 文件。首次运行时，`model.py` 会尝试从以下源码现场编译：

```text
bpe_fast.cpp
bpe_merge.cpp
```

因此环境需要 C++ 编译器和 `pybind11`：

```bash
g++ --version
python build_cpp.py
```

如果 C++ 扩展编译失败，tokenizer 可能退回 Python 实现，速度会明显变慢。

### 文件说明

- `pytorch_model.bin`：发布权重，只包含 `model` 和 `projector`，不包含 optimizer。
- `config.json`：模型结构和运行配置。
- `model.py`：模型定义、加载逻辑、CLI 循环和 Python API。
- `inference.py`：轻量推理入口。
- `app.py`：Gradio 在线测试入口。
- `modules.py`：本地 TransformerLM 和 tokenizer 实现。
- `tokenizer_vocab.pickle`：tokenizer vocab。
- `tokenizer_merges.pickle`：tokenizer merges。
- `openai_clip_vit_base_patch16/`：本地 CLIP ViT-B/16 视觉编码器。
- `bpe_fast.cpp`、`bpe_merge.cpp`：tokenizer C++ 扩展源码。
- `build_cpp.py`：C++ 扩展构建脚本。
- `requirements.txt`：运行依赖。

### 命令行推理

交互模式：

```bash
python model.py --device cpu
```

单张图片推理：

```bash
python inference.py --device cpu --image demo.jpg --question "describe"
```

文本-only 测试：

```bash
python inference.py --device cpu --question "hello"
```

使用 GPU：

```bash
python inference.py --device cuda:0 --image demo.jpg --question "describe"
```

控制采样温度：

```bash
python inference.py --device cpu --image demo.jpg --question "describe" --temperature 0.2
python inference.py --device cpu --image demo.jpg --question "describe" --temperature 0
```

默认 `temperature=0.2`。如果希望输出完全确定，可以使用 `temperature=0`。

### ModelScope 在线测试

仓库已经提供两种在线测试方式。

第一种是模型页 Demo。仓库中的 `configuration.json` 已经配置为 `visual-question-answering`，输入为一张图片和一段文本提示词，输出字段为 `text`。其中图片输入名是 `image`，文本输入名是 `text`，推荐默认提示词为 `describe`。

第二种是 ModelScope 创空间/Studio。创建 Gradio 应用后，可以直接使用仓库中的 `app.py` 作为入口。

本地测试 Gradio：

```bash
python app.py
```

在线 demo 推荐配置：

- 默认 prompt：`describe`
- 默认 temperature：`0.2`
- CPU 可以运行，但响应较慢
- GPU 更适合在线交互
- `configuration.json` 中的在线推理资源配置为 `cpu=4`、`gpu=1`、`gpu_memory=16000`、`memory=12000`

### ModelScope 上传方式

创建 ModelScope 模型仓库后，可使用 Git LFS 上传：

```bash
git lfs install
git clone https://www.modelscope.cn/<namespace>/<repo-name>.git
cd <repo-name>
cp -r /path/to/Shengoovlei-Vision-458M/* .
git lfs track "*.bin"
git lfs track "*.safetensors"
git add .
git commit -m "release Shengoovlei-Vision-458M"
git push
```

## 代码范例

Python API：

```python
from model import ShengoovleiVQA

model = ShengoovleiVQA(device="cpu")

print(model.predict("demo.jpg", "describe"))
print(model.predict("demo.jpg", "what is it?"))
print(model.predict("demo.jpg", "what color is it?"))
print(model.predict(None, "hello"))
```

Gradio app 入口：

```python
import gradio as gr

from model import ShengoovleiVQA

model = ShengoovleiVQA()

def predict(image_path, question):
    return model.predict(image_path, question)
```

本仓库已经提供完整 `app.py`，通常不需要手写 Gradio 代码。

## 模型局限性以及可能的偏差

本模型存在明显局限：

- 输出容易受 caption 数据中的高频模板影响，例如人物、狗、球场、街道、桌子等。
- 在复杂图片中可能只识别到大类主体，无法准确描述关系和细节。
- 可能产生不被图片支持的细节，例如错误的动作、位置、颜色和数量。
- 对 OCR、文字识别、图表理解、精确计数能力较弱。
- 基座文本模型本身较弱，因此文本-only 常识问答能力有限。
- 模型主要输出英文，中文图像描述能力没有系统训练。

偏差来源：

- Flickr30k 和 COCO captions 中人物、动物、运动、街景、餐桌等场景占比较高。
- color-shape 合成数据非常简单，和真实图片分布差异较大。
- projector-only 训练方式限制了模型对复杂视觉语义的表达能力。
- 使用 DeepSeek 作为自动评委的 bench 只能作为参考，不能替代人工全面评估。

## 训练数据介绍

### color-shape 合成数据

color-shape 数据由本地生成器合成，图片中包含简单几何图形。训练目标包括：

- 颜色识别
- 形状识别
- 颜色+形状描述

典型样本：

```json
{
  "image": "blue triangle image",
  "instruction": "what is it?",
  "output": "Blue triangle"
}
```

该数据用于保证 demo 中最基础的颜色和形状能力。

### Flickr30k captions

Flickr30k 用于早期自然图像描述训练。该阶段帮助模型学习 caption 风格输出，但也带来了人物和活动场景偏置。

### COCO 2017 captions

最终版本使用 COCO 2017 captions 与 color-shape 混合训练。COCO caption 数据用于增强常见自然图片的短描述能力。

训练样本统一整理成图文格式：

```json
{
  "image": "image path",
  "instruction": "describe this image",
  "output": "A dog is playing in the snow."
}
```

## 模型训练流程

### 预处理

图片预处理：

- 使用 CLIP image processor
- 输入图片转换为 RGB
- resize 到 `224x224`
- 输出 CLIP pixel values

文本预处理：

- 使用本地 BPE tokenizer
- 使用 chat-style prompt：

```text
<|user|>
describe
<|assistant|>
```

多模态拼接：

- CLIP ViT-B/16 输出 patch embeddings
- 选取 `64` 个视觉 tokens
- 通过两层 MLP projector 映射到文本 embedding 空间
- 将视觉 prefix 与文本 token embeddings 拼接
- 送入冻结 TransformerLM

### 训练

训练采用 projector-only 方式：

- 冻结 CLIP 视觉编码器
- 冻结 TransformerLM 文本模型
- 只训练视觉 projector

最终阶段训练混合：

- COCO captions
- color-shape synthetic data

训练目标是让视觉 prefix 引导冻结语言模型生成简短 caption 或简单颜色/形状回答。

### 数据评估及结果

内部 caption bench 使用 `50` 张图片，每张图片有 `5` 条人工 caption 作为参考。三个模型在同一批样本上生成短 caption，并交给 DeepSeek 作为自动评委进行比较。

评分维度：

- Overall
- Main object
- Action/scene
- Attributes
- Low hallucination
- Fluency

评测结果：

| Model | Wins | Overall | Main object | Action/scene | Attributes | Low hallucination | Fluency |
|---|---:|---:|---:|---:|---:|---:|---:|
| Shengoovlei-Vision-458M | 14/50 | 1.98 | 2.20 | 1.66 | 1.76 | 1.92 | 3.74 |
| MiniMind-3o-213M | 3/50 | 1.62 | 1.78 | 1.56 | 1.42 | 1.32 | 2.32 |
| SmolVLM-256M-Instruct | 33/50 | 2.94 | 3.16 | 2.70 | 2.66 | 2.90 | 3.16 |

该评测是 demo-oriented caption 评测，不是标准学术 leaderboard。结果主要用于观察模型在简单图片描述场景中的可用性。

## 相关论文以及引用信息

本模型结构受到 CLIP、LLaVA-style projector 结构和小型多模态模型训练路线启发。

```bibtex
@inproceedings{radford2021learning,
  title={Learning Transferable Visual Models From Natural Language Supervision},
  author={Radford, Alec and Kim, Jong Wook and Hallacy, Chris and others},
  booktitle={International Conference on Machine Learning},
  year={2021}
}
```

```bibtex
@misc{liu2023visual,
  title={Visual Instruction Tuning},
  author={Liu, Haotian and Li, Chunyuan and Wu, Qingyang and Lee, Yong Jae},
  year={2023},
  eprint={2304.08485},
  archivePrefix={arXiv},
  primaryClass={cs.CV}
}
```
