---
title: LaKun-0.7B
canonical_url: "https://www.modelscope.cn/models/hh108801/LaKun-0.7B"
md_url: "https://www.modelscope.cn/models/hh108801/LaKun-0.7B.md"
repository: hh108801/LaKun-0.7B
chinese_name: LaKun-0.7B
last_updated: 2026-09-24
pipeline_tag: image-text-to-text
tasks:
  - image-text-to-text
base_model:
  - jhu-clsp/mmBERT-base
  - google/siglip-so400m-patch14-384
base_model_relation: finetune
parameters: 751.0M
tensor_type:
  - F32
library_name:
  - safetensors
downloads: 9
stars: 0
tags:
  - multimodal
  - typed-decisions
  - safetensors
---

# LaKun-0.7B

> LaKun-0.7B - hh108801 在 ModelScope 开源的模型。LaKun是一个对文本或单张图片的候选答案进行选择、评分和二元判别的多模态模型，不是生成式聊天模型，基于laya损失计算额外扩展视觉编码。

hh108801/LaKun-0.7B 是 ModelScope 魔搭社区上的 751.0M 参数image-text-to-text模型，基于 jhu-clsp/mmBERT-base、google/siglip-so400m-patch14-384 构建。

- **Repository**: hh108801/LaKun-0.7B
- **Tasks**: image-text-to-text
- **Parameters**: 751.0M
- **Base model**: jhu-clsp/mmBERT-base, google/siglip-so400m-patch14-384
- **Tags**: multimodal, typed-decisions, safetensors
- **Downloads**: 9
- **Stars**: 0
- **Last updated**: 2026-09-24

Source: https://www.modelscope.cn/models/hh108801/LaKun-0.7B

---

# LaKun-0.7B：JEV 决策类型模型的多模态版本

我从 JEV 得到灵感，也借鉴了 [Laya](https://github.com/mizorewww/laya-mlx) 的优化方式（RLCD）。最初我把它叫作 LaJ（谐音“垃圾”），后来为了致敬前辈，定名为 LaKun。LaKun 是我做的 JEV 决策类型模型的多模态版本：面对一段文本状态或一张图片，直接回答我指定的选择、档位评分和二元判断问题，输出每个候选项的 softmax 分数与最高分选项，不生成自由文本。一次调用可以同时提交三类问题，最多 20 题；目前每次最多处理一张图片。

[English](README.en.md) · 简体中文 · [源码与数据集统计](https://github.com/AI-Discussion-Room/LaKun) · [Apache-2.0 源码许可](https://github.com/AI-Discussion-Room/LaKun/blob/main/LICENSE)

## 模型档案

| 项目 | 本检查点 |
|---|---|
| 输入 | 文本状态，或单张图片；每组 1–20 道问题 |
| 类型 | `choice`（2–20 项）、`score`（3–20 档）、`noul`（`false/true`） |
| 输出 | 每题的 `criteria`、`probabilities` 和从 0 开始的 `predicted_index` |
| 文本/视觉主干 | [mmBERT-base](https://huggingface.co/jhu-clsp/mmBERT-base) / [SigLIP SO400M](https://huggingface.co/google/siglip-so400m-patch14-384) |
| 融合 | 64 个视觉查询 token + 类型化决策头，文本与视觉主干联合微调 |
| 参数量 | **756,409,158（约 0.756B）**；`0.7B` 是近似命名 |
| 上下文 | 最多 512 token，图像预留 64 个视觉 token；超限自动截断，优先保留问题/候选项和状态开头 |
| 选择的训练步 | 16,882（按验证损失选出） |

我没有采用 Laya 已训练好的权重；只是复用了其部分决策头实现，并保留衍生代码的许可声明。这个检查点包含完整的文本编码器、视觉编码器、融合层与决策头；**不要只下载权重文件**，还需要同目录的 `model_config.json`、`tokenizer/`、`image_processor/`、`text_encoder/`、`vision_encoder/`。当前是 LaKun 自定义架构，不能直接用 Transformers 的 `AutoModel.from_pretrained()` 读取。

## 如何使用

先安装与本机驱动匹配的 PyTorch，再安装我的 PyPI 代码包。模型权重单独存放在本仓库；传入 `hh108801/LaKun-0.7B` 时，加载器会下载并缓存完整检查点：

```bash
python -m pip install lakun
lakun --checkpoint hh108801/LaKun-0.7B
```

如果仓库设置了访问限制，先使用 `ms-hub login` 登录。在 Python 中也可以直接使用仓库 ID；首次运行的下载耗时不计入下面的推理测速：

```python
from lakun import LaKunPredictor

model = LaKunPredictor.from_pretrained("hh108801/LaKun-0.7B")
result = model.predict(
    [
        {"type": "choice", "question": "这是什么类型的请求？", "criteria": ["咨询", "投诉", "退款"]},
        {"type": "score", "question": "这件事有多紧急？", "criteria": ["不紧急", "一般", "紧急"]},
        {"type": "noul", "question": "用户是否要求退款？", "criteria": ["false", "true"]},
    ],
    state="用户说：我被重复扣费了，请尽快退款。",
)
for answer in result["answers"]:
    print(answer["type"], answer["predicted_index"], answer["probabilities"])
```

### 传入自己的图片

把 `image_path` 改为本地**真实存在**的图片路径。下面只传一张图，同时问选择、档位评分和二元判断；这段代码只演示调用方式，不预设图片的答案：

```python
import json
from lakun import LaKunPredictor

model = LaKunPredictor.from_pretrained("hh108801/LaKun-0.7B")
image_path = "path/to/your_image.jpg"  # 改成自己的图片路径
result = model.predict(
    [
        {"type": "choice", "question": "图中主要是什么？", "criteria": ["猫", "狗", "汽车"]},
        {"type": "score", "question": "画面有多清晰？", "criteria": ["模糊", "一般", "清晰"]},
        {"type": "noul", "question": "图中是否有动物？", "criteria": ["false", "true"]},
    ],
    image=image_path,
)
print(json.dumps(result, ensure_ascii=False, indent=2))
```

目前**一组只支持一张图片**。`score` 返回的是分档索引，而不是连续回归数值。所有 `probabilities` 是 softmax 输出；我尚未验证校准程度，**不把它们宣传为真实正确概率**。

对于过长的输入，我优先保留问题及候选项（过长候选项会缩短），再放入状态文本的**开头**；截掉的尾部不参与推理。如果答案线索在长文末尾，请先摘要或分段处理。

## 我做过的评测

我按组切分训练、验证、测试集；模型选择只使用验证损失。最佳验证损失为 `0.014464`。在 **12,703 组、38,141 题**的留出测试集上，最高分选项与 `qwen3.8-flash` 教师伪标签的逐题一致率是：

| 问题类型 | 留出集一致率 |
|---|---:|
| Choice | 86.14% |
| Score | 85.21% |
| Noul | 98.13% |

这**不是人工标注真值的准确率**，更不是通用能力或概率校准结论。第二轮训练损失继续下降时，验证损失反而升高，因此我最终保留了第一轮末的检查点，而没有用训练末尾的权重。

### 推理测速

我在**本机 Windows 11、RTX 3060 12GB、PyTorch 2.7.1+cu126、FP32**上对同一个完整检查点测速。每个场景预热 5 次、串行计时 30 次，CUDA 在每次计时前后同步；下表是整个 `predict()` 调用的墙钟时间，包含分词、图片读取与预处理、前向传播和输出整理，**不含加载权重、下载或网络请求**。这是固定输入上的延迟测试，不是准确率评估；不同机器、输入长度或并发下结果会变。

| 场景 | 平均耗时 | p95 耗时 |
|---|---:|---:|
| 纯文本·单题 | 17.33 ms | 19.23 ms |
| 纯文本·三题 | 18.19 ms | 18.65 ms |
| 单图·单题 | 163.06 ms | 168.69 ms |
| 单图·三题 | 168.88 ms | 171.59 ms |

## 我的数据集

我把图像与文本都整理为“一组状态 + 多道类型化问题”。全部问题标签由 `qwen3.8-flash` 生成，是**伪标签**而不是人工核验答案。当前数据共有 **126,663 组 / 380,424 题**：图像 59,996 组 / 180,424 题，文本 66,667 组 / 200,000 题；按组约 8:1:1 划分，避免同组问题跨集合。

| 类型 | 图像题 | 文本题 | 总题数 |
|---|---:|---:|---:|
| Choice | 60,401 | 66,667 | 127,068 |
| Score | 60,015 | 66,667 | 126,682 |
| Noul | 60,008 | 66,666 | 126,674 |

![数据规模、题型与切分](assets/01-overview.png)

我还统计了候选项个数与答案位置。四选一题中，图像题的 B 项占 53.15%、D 项占 1.74%；文本题的 B 项占 46.48%、D 项占 2.98%。

![候选项数、评分档位和伪标签分布](assets/02-options-and-labels.png)

图像来自 7 个来源子集，合成文本涵盖 50 个方向。下面两张图记录来源、中文字符覆盖、长度预算和文本方向频数。

![图像来源、文本主题与覆盖](assets/03-coverage.png)

![50 个文本方向与四选一答案位置](assets/04-domains-and-choice-labels.png)

## 我目前看到的局限

LaKun 在**接近我训练数据分布**的选择、分档和二元题上已有可用表现。我在试用中感觉：带有明确数值线索、需要在给定选项之间做简单推理的题目，它往往更容易答好；**这是观察，不是已完成的独立分项基准测试**。

但我也观察到明显的外推边界：一次外部垃圾评论分类测试显示跨领域迁移较弱；第二轮训练损失继续下降而验证损失变差，让我担心过度专用化，甚至某种“微调坍塌”。目前**不能据此证明底座能力本身发生坍塌**；还需要与原始底座、不同训练检查点、人工标注域外集做严格对照。候选项位置偏斜、教师伪标签错误和未校准的 softmax 分数也都会放大误判风险。

因此我不会把本模型宣传成通用分类器、已验证的数值推理模型或强泛化视觉模型。它当前仅支持单图；在你自己的数据上完成评测、人工复核和概率校准之前，请勿把输出当作高风险决策依据。
