-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
175 lines (166 loc) · 13.5 KB
/
Copy pathindex.html
File metadata and controls
175 lines (166 loc) · 13.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Codec px (block_size) 消融 — lvbench & videomme-long</title>
<style>
:root{
--bg:#0f1420; --card:#171e2e; --line:#2a3550; --txt:#e6ebf5; --mut:#93a0bd;
--accent:#5b9dff; --good:#3ecf8e; --bad:#ff6b6b; --warn:#ffcc66;
}
*{box-sizing:border-box}
body{margin:0;padding:32px;background:var(--bg);color:var(--txt);
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;}
h1{font-size:22px;margin:0 0 4px}
.sub{color:var(--mut);font-size:13px;margin-bottom:24px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;
padding:20px 22px;margin-bottom:26px;box-shadow:0 4px 18px rgba(0,0,0,.25)}
h2{font-size:16px;margin:0 0 4px;color:var(--accent)}
.meta{color:var(--mut);font-size:12px;margin-bottom:14px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:10px 14px;text-align:center;border-bottom:1px solid var(--line)}
th{color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
td.px{text-align:left;font-weight:600}
td.px span{color:var(--mut);font-weight:400;font-size:12px;margin-left:6px}
tbody tr:hover{background:rgba(91,157,255,.06)}
.val{font-variant-numeric:tabular-nums;font-weight:600}
.best{color:var(--good)}
.run{color:var(--warn);font-style:italic;font-weight:400;font-size:12px}
.legend{font-size:12px;color:var(--mut);margin-top:8px;line-height:1.7}
.pill{display:inline-block;padding:1px 8px;border-radius:20px;font-size:11px;
border:1px solid var(--line);margin-right:6px}
.delta{font-size:11px;color:var(--mut);margin-left:6px}
.up{color:var(--good)} .down{color:var(--bad)}
footer{color:var(--mut);font-size:11px;margin-top:10px}
</style>
</head>
<body>
<h1>Codec px(block_size)消融实验</h1>
<div class="sub">LLaVA-OneVision-2 8B · 离线 codec canvas · orig codec 权重 · 数据集:lvbench / videomme-long | 更新于 2026-05-25</div>
<!-- ① tc128 -->
<div class="card">
<h2>① tc128(128 帧,max_pixels = 313k)</h2>
<div class="meta">px = block_size × 14px patch。每格为准确率(%);<span class="best">绿色</span>=该列最高。</div>
<table>
<thead><tr><th style="text-align:left">分辨率 (block_size)</th><th>lvbench</th><th>videomme-long<br>(有字幕)</th><th>videomme-long<br>(无字幕)</th></tr></thead>
<tbody>
<tr><td class="px">28 px <span>bs2 · 2×2</span></td><td class="val best">49.06</td><td class="val">69.67</td><td class="val">57.33</td></tr>
<tr><td class="px">56 px <span>bs4 · 4×4</span></td><td class="val">48.22</td><td class="val">70.33</td><td class="val">57.22</td></tr>
<tr><td class="px">112 px <span>bs8 · 8×8</span></td><td class="val">47.19</td><td class="val best">70.56</td><td class="val best">57.89</td></tr>
</tbody>
</table>
<div class="legend"><span class="pill">趋势</span>lvbench:px 越大单调<span class="down">下降</span>(49.06→48.22→47.19,−1.87)。videomme-long:px 越大略<span class="up">升</span>(误差带内)。字幕是主导因素(去字幕掉 ~12 分)。</div>
</div>
<!-- ② tc768 full-res @ctx131k (moved to 2nd) -->
<div class="card">
<h2>② tc768(768 帧,lvbench 290×290px / videomme 310×310px,原生 131k 窗口)</h2>
<div class="meta">canvas 分辨率:lvbench max_pixels=84,100(≈290px)、videomme max_pixels=96,100(≈310px)。模型真实训练窗口 = 131072(config 里 40960 为保守值,rope_theta=8e6 支持长上下文);改回 131072 后 768 帧 @290/310px(72-80k token)<b>原生有效、不降级</b>(实测 exceeded=0)。orig codec 权重 + max_num_frames=768。</div>
<table>
<thead><tr><th style="text-align:left">分辨率 (block_size)</th><th>lvbench</th><th>videomme-long<br>(有字幕)</th><th>videomme-long<br>(无字幕)</th></tr></thead>
<tbody>
<tr><td class="px">28 px <span>bs2 · 2×2</span></td><td class="val">48.42</td><td class="val">64.67</td><td class="val">54.22</td></tr>
<tr><td class="px">56 px <span>bs4 · 4×4</span></td><td class="val best">48.81</td><td class="val">66.78</td><td class="val">55.78</td></tr>
<tr><td class="px">112 px <span>bs8 · 8×8</span></td><td class="val">48.35</td><td class="val best">70.11</td><td class="val best">57.44</td></tr>
</tbody>
</table>
<div class="legend">290/310px、768 帧:lvbench bs4(48.81) 最高,整体比更低分辨率版(表⑤ 204/200px)高 ~3 分。videomme-long:px 越大越好(bs8 有字幕 70.11、无字幕 57.44)。</div>
</div>
<!-- ③ tc256 mp120k native -->
<div class="card">
<h2>③ tc256(256 帧,max_pixels = 120k,原生)</h2>
<div class="meta">256 帧在 mp313k 下超 40960 上限,降到 mp120k 使其原生装下(~33k token)。orig codec 权重。</div>
<table>
<thead><tr><th style="text-align:left">分辨率 (block_size)</th><th>lvbench</th><th>videomme-long<br>(有字幕)</th><th>videomme-long<br>(无字幕)</th></tr></thead>
<tbody>
<tr><td class="px">28 px <span>bs2 · 2×2</span></td><td class="val">47.64</td><td class="val">69.67</td><td class="val">56.11</td></tr>
<tr><td class="px">56 px <span>bs4 · 4×4</span></td><td class="val best">49.19</td><td class="val best">70.70</td><td class="val">55.00</td></tr>
<tr><td class="px">112 px <span>bs8 · 8×8</span></td><td class="val">48.93</td><td class="val">70.33</td><td class="val best">57.33</td></tr>
</tbody>
</table>
<div class="legend">lvbench:bs4(49.19) > bs8(48.93) > bs2(47.64),256 帧下 56px 最优。videomme-long:px 影响 <1.5 分(噪声带内)。</div>
</div>
<!-- ④ tc256 YaRN -->
<div class="card">
<h2>④ tc256(256 帧,max_pixels = 313k + YaRN 外推)— 对照</h2>
<div class="meta">canvas 分辨率 max_pixels=313,600(560×560px,本项目最高档)。用 YaRN(factor 2.5) 外推窗口到 102400 装下 ~99k token。256 帧。慢(~45s/样本),代表性跑 bs4 一行。</div>
<table>
<thead><tr><th style="text-align:left">分辨率 (block_size)</th><th>lvbench</th><th>videomme-long<br>(有字幕)</th><th>videomme-long<br>(无字幕)</th></tr></thead>
<tbody>
<tr><td class="px">56 px <span>bs4 · 4×4</span></td><td class="val best">50.74</td><td class="val">70.00</td><td class="val">56.44</td></tr>
</tbody>
</table>
<div class="legend">YaRN 560px(mp313k) bs4 lvbench=50.74,高于同 block 的更低分辨率版与所有 tc128/tc256——高分辨率(560px)+更多帧对 lvbench 最有利。</div>
</div>
<!-- ⑤ tc768 downscaled max-context -->
<div class="card">
<h2>⑤ tc768(768 帧,降分辨率顶满 40960 窗口)— 对照</h2>
<div class="meta">早期在 40960 窗口下的次优解:把分辨率降到能原生装下 768 帧的最大值——lvbench 204px / videomme 200px(~35-39k token)。对比表②满分辨率版可见分辨率影响。</div>
<table>
<thead><tr><th style="text-align:left">分辨率 (block_size)</th><th>lvbench</th><th>videomme-long<br>(有字幕)</th><th>videomme-long<br>(无字幕)</th></tr></thead>
<tbody>
<tr><td class="px">28 px <span>bs2 · 2×2</span></td><td class="val best">49.19</td><td class="val">68.44</td><td class="val">54.56</td></tr>
<tr><td class="px">56 px <span>bs4 · 4×4</span></td><td class="val">46.16</td><td class="val best">71.00</td><td class="val">54.56</td></tr>
<tr><td class="px">112 px <span>bs8 · 8×8</span></td><td class="val">45.06</td><td class="val">69.83</td><td class="val best">55.67</td></tr>
</tbody>
</table>
<div class="legend">降分辨率(204px)下 lvbench 的 px 效应最强且单调下降(bs2 49.19 ≫ bs8 45.06)——低分辨率放大了大 block 的信息损失。与表②(290px满分辨率)对比,满分辨率明显更优。</div>
</div>
<!-- ⑥ timelens temporal localization -->
<div class="card">
<h2>⑥ timelens 时序定位(tc=64,max_pixels = 150k)</h2>
<div class="meta">时序定位任务(给定 query 定位视频时间段)。数值 = <b>mIOU</b>(mean IOU,越高越好)。orig codec 权重,tc64(512 采样帧→~64 canvas),离线 codec 按 stem 匹配。<span class="run">running</span>=仍在跑。</div>
<table>
<thead><tr><th style="text-align:left">分辨率 (block_size)</th><th>activitynet</th><th>charades</th><th>qvhighlights</th></tr></thead>
<tbody>
<tr><td class="px">28 px <span>bs2 · 2×2</span></td><td class="val best">48.08</td><td class="val best">45.95</td><td class="val best">61.77</td></tr>
<tr><td class="px">56 px <span>bs4 · 4×4</span></td><td class="val best">45.16</td><td class="val">43.79</td><td class="val">58.54</td></tr>
<tr><td class="px">112 px <span>bs8 · 8×8</span></td><td class="val">37.96</td><td class="val">36.93</td><td class="run">running</td></tr>
</tbody>
</table>
<div class="legend">趋势:block 越大 mIOU 越<span class="down">低</span>(如 charades 45.95→43.79→36.93、qvhighlights 61.77→58.54)——时序定位需要更多空间细节,小 block(28px) 最优。charades bs2 明细:IOU@3=65.51/IOU@5=52.19/IOU@7=27.77/mIOU=45.95。activitynet bs2、qvhighlights bs8 跑完回填。</div>
</div>
<!-- ⑦ nocodec uniform sampling vs codec -->
<div class="card">
<h2>⑦ nocodec 均匀采样 768 帧(chat 模式)vs codec canvas — 对照</h2>
<div class="meta">朴素均匀采样 768 帧(运行时解码,<b>不用 codec canvas</b>),chat 模式,nocodec 权重(ctx131k, 131072 窗口)。lvbench 290px / videomme-long 310px(有字幕)。对比表②的 codec canvas 同配置。慢(~65s/样本,768帧满帧解码)。</div>
<table>
<thead><tr><th style="text-align:left">模式</th><th>lvbench</th><th>videomme-long(有字幕)</th></tr></thead>
<tbody>
<tr><td class="px">codec canvas 768帧 <span>表②最佳, 290/310px</span></td><td class="val">48.81</td><td class="val">70.11</td></tr>
<tr><td class="px">nocodec 均匀 768帧 · <b>chat</b> <span>290/310px</span></td><td class="val best">53.71</td><td class="val best">70.89</td></tr>
<tr><td class="px">nocodec 均匀 768帧 · <b>simple</b> <span>290/310px</span></td><td class="val">43.71</td><td class="val">67.78</td></tr>
</tbody>
</table>
<div class="legend">
<b>nocodec 均匀满帧 vs codec canvas</b>:lvbench chat 53.71 > codec 48.81(+4.9),videomme 持平。codec 块打包在长视频检索上有信息损失。<br>
<b>simple vs chat(重要)</b>:chat 一致更优——lvbench chat 53.71 ≫ simple 43.71(<b>+10 分</b>)、videomme chat 70.89 > simple 67.78(+3.1)。chat 模板对该模型明显更合适;但 simple 更快(lvbench 26s vs chat 65s/样本)。
</div>
</div>
<!-- ⑧ codec/nocodec × chat/simple 2×2 -->
<div class="card">
<h2>⑧ codec vs nocodec × chat vs simple(2×2 完整对照,bs2/28px·768帧)</h2>
<div class="meta">同一套权重(codec 与 nocodec 的 safetensors 字节级相同,仅 modeling 的 RoPE/位置处理与推理数据通路不同)。codec=bs2/28px 离线 canvas(≈700 canvas/样本,~64k 视觉 token);nocodec=均匀采样 768 帧 290/310px。<b>codec+chat 此前因 chat 包装器把 canvas 重新切片(453888≠存储 286832 patch)而崩溃,已修复</b>:chat 的 codec 分支改用恒等切片(min_pixels=0),与 simple 对齐;均匀采样分支不变。</div>
<table>
<thead><tr><th style="text-align:left">视觉输入 × 模式</th><th>lvbench</th><th>videomme-long(有字幕)</th></tr></thead>
<tbody>
<tr><td class="px">codec canvas · <b>simple</b> <span>bs2 · 28px</span></td><td class="val">48.42</td><td class="val">64.67</td></tr>
<tr><td class="px">codec canvas · <b>chat</b> <span>bs2 · 28px</span></td><td class="val">41.64</td><td class="val">65.00</td></tr>
<tr><td class="px">nocodec 均匀 · <b>simple</b> <span>290/310px</span></td><td class="val">43.71</td><td class="val">67.78</td></tr>
<tr><td class="px">nocodec 均匀 · <b>chat</b> <span>290/310px</span></td><td class="val best">53.71</td><td class="val best">70.89</td></tr>
</tbody>
</table>
<div class="legend">
<b>chat 对两种视觉输入的作用相反(核心发现)</b>:<br>
• nocodec 均匀帧:chat <span class="up">大幅提升</span>(lvbench 43.71→53.71,<b>+10.0</b>;videomme 67.78→70.89,+3.1)。<br>
• codec canvas:chat <span class="down">反而拖累</span>(lvbench 48.42→<b>41.64,−6.8</b>;videomme 64.67→65.00,持平)。<br>
<b>机理</b>:chat 的逐帧时间戳/字幕重写(_rewrite_codec_vision_blocks)默认"一帧一时间戳",与 codec 把多源帧打包进单张 canvas 的结构错位,损害检索;simple 的整体拼接对 codec 更稳。故 <b>codec 应配 simple、nocodec 应配 chat</b>。
</div>
</div>
<footer>
注:px = block_size × 14px(patch)。bs2=28px、bs4=56px、bs8=112px。<br>
指标:lvbench = lvbench_score;videomme-long = videomme_perception_score(overall)。均为百分数。<br>
上下文窗口:模型真实训练窗口 131072(config 默认 40960 为保守声明)。768 帧满分辨率(表②)在 131k 窗口内原生有效。
</footer>
</body>
</html>