Files
markbaseengine/E2B_vision_correction.md
T
MarkBase Admin f15730ddc3
CI / build-and-test (push) Has been cancelled
fix: Correct E2B model Vision capabilities (SECOND MAJOR FIX)
CRITICAL CORRECTION #2:
-  Previous reports incorrectly stated E2B as 'Audio only, no Vision'
-  E2B HAS complete Vision Tower (verified via config.json + safetensors)
- Vision Tower: 661 tensors (16 layers, 768 hidden, 12 heads)
- Audio Tower: 754 tensors (12 layers, 1024 hidden, 8 heads)
- Total multimodal: 1415 tensors (52% of model) ← LARGEST!

Key findings:
- E2B is LARGEST multimodal model (1415 tensors, 52%)
- E4B is second largest (949 tensors, 37%)
- 12B is lightweight (17 tensors, 1%)

Vision details:
- 16 layers, 768 hidden, 12 attention heads, 12 KV heads
- Patch size 16, output 280 soft tokens
- Position embedding 10240, pooling kernel 3

Audio details:
- 12 layers, 1024 hidden, 8 attention heads
- Subsampling conv [128, 32], chunk size 12
- Output proj dims 1536

Corrected classification:
- Complete towers: E2B (largest), E4B (medium)
- Lightweight projection: 12B (smallest)
- Pure text: 31B, 26B series

Testing status:
- E2B Audio:  Tested
- E2B Vision: ⚠️ NOT tested ← needs testing!
- 12B multimodal: ⚠️ NOT tested ← needs testing!

Impact: All 4 reports need updates (capabilities, complete, comparison, 12B correction)
2026-06-23 23:23:34 +08:00

12 KiB
Raw Blame History

E2B 模型 Vision 能力澄清報告

日期: 2026-06-23
第二次重大修正: E2B 也具備完整的 Vision Tower
影響: 所有關於 E2B 的多模態描述都需要修正


一、錯誤報告再次修正

之前的錯誤陳述

在之前的報告中(包括剛修正的 12B_multimodal_correction.md),我再次錯誤地陳述:

❌ "E2B: Audio only, no Vision"
❌ "E2B: Audio專用 (無Vision)"
❌ "Vision Tower: 0 layers (E2B)"
❌ "E2B只有Audio能力"

正確信息

經過檢查 E2B 的 config.json 和 safetensors 文件後確認:

✅ E2B model HAS complete Vision Tower!
✅ Vision Config: 16 layers, 768 hidden, 12 attention heads
✅ Vision Tensors: 661個 (完整塔,占比24%)
✅ Audio Tensors: 754個 (完整塔,占比28%)
✅ Total Multimodal: 1415 tensors (52% of model)

二、E2B Vision 配置詳情

Vision Config (from config.json)

"vision_config": {
    "hidden_size": 768,
    "num_hidden_layers": 16,
    "num_attention_heads": 12,
    "num_key_value_heads": 12,
    "patch_size": 16,
    "intermediate_size": 3072,
    "max_position_embeddings": 131072,
    "pooling_kernel_size": 3,
    "position_embedding_size": 10240,
    "default_output_length": 280,
    "model_type": "gemma4_vision"
}

Vision Token IDs

  • image_token_id: 258880
  • boi_token_id: 255999 (Begin of Image)
  • eoi_token_id: 258882 (End of Image)
  • video_token_id: 258884
  • vision_soft_tokens_per_image: 280

Vision Tensors (661個)

完整Vision Tower結構:

  • embed_vision.embedding_projection.* (3 tensors)
  • vision_tower.encoder.layers.0-15.* (16層完整處理)
    • input_layernorm
    • mlp (down_proj, gate_proj, up_proj)
    • self_attn (q_proj, k_proj, v_proj, o_proj)
    • post_attention_layernorm

與 E4B Vision Tower 對比:

  • E4B: 436 tensors (16層)
  • E2B: 661 tensors (16層) ← 多出225 tensors

三、E2B Audio 配置詳情

Audio Config (from config.json)

"audio_config": {
    "hidden_size": 1024,
    "num_hidden_layers": 12,
    "num_attention_heads": 8,
    "attention_chunk_size": 12,
    "conv_kernel_size": 5,
    "subsampling_conv_channels": [128, 32],
    "output_proj_dims": 1536,
    "model_type": "gemma4_audio"
}

Audio Tensors (754個)

完整Audio Tower結構:

  • audio_tower.layers.0-11.* (12層完整處理)
    • feed_forward1, feed_forward2
    • attention layers
    • subsampling convolutions

與 E4B Audio Tower 對比:

  • E4B: 513 tensors (12層)
  • E2B: 754 tensors (12層) ← 多出241 tensors

四、E2B vs E4B vs 12B 完整對比

多模態 Tensor 分布

模型 Audio Tensors Vision Tensors Audio+Vision總計 占比 實現方式
E2B 754 (28%) 661 (24%) 1415 52% 完整塔
E4B 513 (28%) 436 (23%) 949 37% 完整塔
12B 3 (0%) 14 (1%) 17 1% 輕量投影

關鍵發現:

  • 🥇 E2B 是多模態部分最大的模型 (1415 tensors, 52%)
  • 🥈 E4B 第二大 (949 tensors, 37%)
  • 🥉 12B 最輕量 (17 tensors, 1%)

Vision Tower 對比

特徵 E2B E4B 12B
層數 16層 16層 無塔
Hidden Size 768 768 3840 (projection)
Attention Heads 12 ?
KV Heads 12 (full) ?
Patch Size 16 ? 16
Tensors 661 436 14
實現方式 完整塔 完整塔 投影

E2B Vision 比 E4B 更大:

  • E2B: 661 tensors
  • E4B: 436 tensors
  • 差異: 225 tensors (+52%)

Audio Tower 對比

特徵 E2B E4B 12B
層數 12層 12層 無塔
Hidden Size 1024 1024 640 (projection)
Attention Heads 8 ?
Tensors 754 513 3
實現方式 完整塔 完整塔 投影

E2B Audio 比 E4B 更大:

  • E2B: 754 tensors
  • E4B: 513 tensors
  • 差異: 241 tensors (+47%)

五、E2B 獨特之處

Per-Layer Input Architecture

E2B 獨有的 per-layer input 架構:

Config:

"text_config": {
    "hidden_size_per_layer_input": 256,
    "vocab_size_per_layer_input": 262144,
    "num_kv_shared_layers": 20
}

Tensors:

  • language_model.model.embed_tokens_per_layer.*
  • 獨特的per-layer embedding
  • 與Audio/Vision的整合可能更深

Double-Wide MLP

E2B 使用 "double-wide" MLP

"use_double_wide_mlp": true

這可能解釋了為何E2B的Audio/Vision tensors比E4B多。

Sliding Window + Full Attention

E2B 混合使用 sliding window 和 full attention

"sliding_window": 512,
"layer_types": [
    "sliding_attention", // layers 0-3
    "full_attention",    // layer 4
    "sliding_attention", // layers 5-8
    "full_attention",    // layer 9
    ...
]

六、完全修正的多模態分類

正確的多模態模型分類

模型 Audio Vision Audio Tower Vision Tower 多模態占比
E2B 754 tensors (完整) 661 tensors (完整) 52%
E4B 513 tensors (完整) 436 tensors (完整) 37%
12B 3 tensors (projection) 14 tensors (projection) 1%
31B 0 0 0%
26B-Standard 0 0 0%
26B-A4B 0 0 0%

三種實現方式

  1. 完整塔架構 (E2B, E4B):

    • Audio Tower: 獨立的12層處理塔
    • Vision Tower: 獨立的16層處理塔
    • 特點: 深度特征提取,複雜處理
    • 測試: E2B Audio已測試,Vision未測試
  2. 輕量投影架構 (12B):

    • Audio/Vision: Embedding projection
    • 特點: 輕量級,快速映射
    • 測試: 未測試多模態
  3. 純文本架構 (31B, 26B):

    • 無Audio/Vision components
    • 純粹的文本處理

七、測試狀態澄清

E2B 測試範圍

已測試 :

  • Audio Tower加載 (12層, 1024 hidden)
  • Audio forward pass (NaN=0)
  • Audio tensors count (751個)
  • 文本模型基本功能

未測試 ⚠️:

  • Vision Tower (16層, 768 hidden) ← 完全未測試!
  • Vision forward pass
  • Audio+Vision整合
  • 多模態輸入處理

為何之前錯誤判斷

原因:

  1. 測試代碼主要檢查 Audio Tower
  2. 測試報告中計數為 "Audio Tower: 751 tensors"
  3. 沒有檢查 Vision Tensors (應為661個)
  4. config.json 已有 vision_config,但被忽略
  5. 主觀假設 "E2B 是 Audio專用"

八、應用推薦重新評估

多模態應用選擇

之前錯誤推薦:

❌ "Audio專用 → E2B"
❌ "Vision → E4B"
❌ "Audio+Vision → E4B (唯一選擇)"

正確推薦 :

✅ Audio+Vision → E2B 或 E4B (兩者都支持)
✅ 最大多模態 → E2B (1415 tensors, 52%占比)
✅ 高效多模態 → E4B (949 tensors, 37%占比)
✅ 輕量多模態 → 12B (17 tensors, 1%占比)

模型大小與能力對比

模型 Text Hidden Audio+Vision占比 多模態能力 推理速度 最佳場景
E2B 1536 52% Audio+Vision (最大) ~26 tok/s 深度多模態處理
E4B 2560 37% Audio+Vision (中等) 42.8 tok/s 快速多模態推理
12B 3840 1% Audio+Vision (輕量) ~26 tok/s 長文本 + 輕量多模態
31B 5376 0% 純文本 未測 大規模文本處理
26B 2816 0% 純文本 未測 MoE文本處理

九、數據分析

Tensor分布詳細對比

E2B (2649 tensors total):

  • Audio: 754 (28%)
  • Vision: 661 (24%)
  • Text: 1234 (46%)
  • 其他: 0

E4B (~2500 tensors estimated):

  • Audio: 513 (28%)
  • Vision: 436 (23%)
  • Text: ~1130 (46%)
  • 其他: 0

12B (1341 tensors total):

  • Audio: 3 (0%)
  • Vision: 14 (1%)
  • Text: 1324 (98%)
  • 其他: 0

Vision Tower詳細結構

E2B Vision Tower (16層):

每層包含:
- input_layernorm
- self_attn (q_proj, k_proj, v_proj, o_proj)
- mlp (down_proj, gate_proj, up_proj)
- post_attention_layernorm

加上:
- embed_vision.embedding_projection
- position_embedding (10240)
- pooling (kernel=3)

E4B Vision Tower (16層):

類似結構,但:
- tensors數量較少 (436 vs 661)
- 可能缺少某些projection或embedding

12B Vision:

僅有:
- embed_vision.embedding_projection (3 tensors)
- vision_embedder.patch_dense等 (11 tensors)
無完整Tower結構

十、修正影響總結

需要修正的報告

  1. 12B_multimodal_correction.md (已創建)
  2. model_capabilities_comparison.md (需要再次更新)
  3. complete_model_testing_report.md (需要再次更新)
  4. E4B_vs_12B_comparison_report.md (需要再次更新)
  5. 此報告 E2B_vision_correction.md (已創建)

錯誤陳述修正表

錯誤陳述 正確陳述 影響模型
"12B純文本" "12B具備Audio+Vision (輕量)" 12B
"E2B Audio only" "E2B具備Audio+Vision (最大)" E2B
"E4B唯一多模態" "E4B、E2B、12B都具備多模態" 所有

完全正確的多模態分類

具備完整Audio+Vision Tower (深度處理):

  • 🥇 E2B: 1415 tensors (52%) ← 最大
  • 🥈 E4B: 949 tensors (37%)

具備輕量Audio+Vision Projection (快速映射):

  • 🥉 12B: 17 tensors (1%)

純文本模型 (無多模態):

  • 31B, 26B系列: 0 tensors

十一、技術細節補充

E2B Vision處理流程

Image Input (224×224)
  ↓
Patch Extraction (patch_size=16)
  ↓
Vision Tower (16 layers, 768 hidden)
  - 12 attention heads
  - Full attention (12 KV heads)
  - Position embedding (10240)
  ↓
Pooling (kernel_size=3)
  ↓
Soft Tokens Output (280 tokens)
  ↓
Embedding Projection
  ↓
Text Space (1536 hidden)

E2B Audio處理流程

Audio Input (16000 Hz)
  ↓
Subsampling Conv ([128, 32] channels)
  - Conv kernel size: 5
  ↓
Audio Tower (12 layers, 1024 hidden)
  - 8 attention heads
  - Chunk size: 12
  ↓
Feed Forward Layers
  ↓
Output Projection (1536 dims)
  ↓
Text Space (1536 hidden)

Per-Layer Integration

E2B 獨特的 per-layer input 可能用於:

  • Audio/Vision tokens按層整合
  • 不同層接收不同的多模態輸入
  • 更細粒度的多模態特征注入

十二、下一步建議

需要補充的測試

E2B Vision測試:

// 測試Vision Tower
let visionModel = loadVisionTower(model)
let imageInput = loadImageFile("test.jpg")
let visionTokens = visionModel.process(imageInput)
print("Vision output tokens: \(visionTokens.count)")
print("Vision forward NaN: \(checkNaN(visionTokens))")

E2B Audio+Vision整合測試:

// 測試Audio+Vision整合
let audioTokens = audioTower.process(audioInput)
let visionTokens = visionTower.process(imageInput)
let textTokens = tokenize("Describe this")
let combined = audioTokens + visionTokens + textTokens
let logits = model.forward(combined)

需要更新的文件

  1. E2B Vision測試代碼
  2. Vision Tower加載邏輯
  3. 多模態整合測試
  4. 所有報告修正

十三、最終結論

最終結論

E2B 和 E4B 都具備完整的 Audio + Vision 能力

不是"Audio專用"
也不是"E4B唯一多模態"

三個模型都支持多模態

  • 🥇 E2B: 最大多模態 (1415 tensors, 52%)
  • 🥈 E4B: 中等多模態 (949 tensors, 37%)
  • 🥉 12B: 輕量多模態 (17 tensors, 1%)

正確的應用推薦

深度多模態處理:

  • 🥇 E2B (最大Audio+Vision Tower)
  • 🥈 E4B (中等Audio+Vision Tower)

輕量多模態 + 長文本:

  • 🥉 12B (輕量projection + 262K context)

純文本處理:

  • 31B, 26B系列

修正摘要

第一個錯誤: "12B純文本" → "12B輕量多模態"
第二個錯誤: "E2B Audio only" → "E2B最大多模態"
根本錯誤: "E4B唯一多模態" → "三個模型都支持多模態"

正確分類:

  • 完整塔: E2B (最大), E4B (中等)
  • 輕量投影: 12B (最小)
  • 純文本: 31B, 26B

測試狀態:

  • E4B Audio: 已測試
  • E2B Audio: 已測試
  • E2B Vision: ⚠️ 未測試 ← 需要補充
  • 12B 多模態: ⚠️ 未測試 ← 需要補充

報告生成: 2026-06-23
修正原因: E2B config.json + safetensors 重新檢查
影響範圍: 4份報告需要更新
新發現: E2B是最大多模態模型 (1415 tensors)
下一步: 測試E2B Vision Tower,修正所有報告