MarkBase Admin 2a889faf4b
CI / build-and-test (push) Has been cancelled
CRITICAL: 26B-A4B NaN真相 - 真实BUG而非设计特性
重大发现:
 26B-A4B的NaN位置依赖输入token ID
 Token 2和98的NaN位置完全相同(对称bug)
 大部分tokens的NaN就在输入位置(Token 4-9)
 这是forward pass的索引bug,不是设计特性

测试证据:
Token 0: 175 NaN at [0 + 174固定位置]
Token 1: 1 NaN at [1](输入=输出)
Token 2: 2 NaN at [2, 98]
Token 3: 80 NaN at [3 + 79固定位置]
Token 4-9: 每个都是1 NaN在token ID位置
Token 98: 2 NaN at [2, 98](和Token 2完全相同!)
Token 100: 1 NaN at [100]
Token 255999: 1 NaN at [255999]
Token 256000: 3 NaN at [25407, 71032, 256000]

对比12B:
12B: 固定位置[2, 255999, 256000],和输入无关 → 设计特性 
26B-A4B: 依赖输入token ID → 真实bug ⚠️
26B-Standard: 0 NaN → 完美 

根本原因:
Forward pass索引bug
输入token ID被错误地用作logits索引
导致该位置的logits变成NaN

建议:
⚠️ 停止使用26B-A4B
 使用26B-Standard代替(0 NaN)
 或修复forward pass的索引逻辑

文件:
- TwentySixBA4BNaNLocationTest.swift
- TwentySixBA4BDeepDebugTest.swift
- 26B_A4B_NaN_Truth.md
- 26B_A4B_NaN_Analysis_Plan.md

定性:真实bug,严重程度(不可预测)
2026-06-24 01:44:39 +08:00

MarkBase

高性能 Swift Metal 多模態推理引擎,專為 Apple Silicon 優化。

功能特性

  • 純 Swift Metal - 無外部依賴
  • 4-bit 量化 - 高效內存使用
  • OpenAI 兼容 API - REST + SSE
  • 多模態支持 - 文本、圖片、音訊
  • 流式輸出 - 實時 token 生成
  • SIMD 優化 - 17x attention, 3x matmul 提升

快速開始

安裝

git clone <repository-url>
cd MarkBase12B
swift build

啟動服務器

# 基本啟動
swift run G12BServer ./model

# 指定端口和模型 ID
swift run G12BServer ./model 8080 markbase-12b

# 運行性能基準測試
swift run G12BServer ./model markbase --benchmark

API 使用

健康檢查

curl http://localhost:8080/health

文本生成

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "user", "content": "Hello, how are you?"}
    ],
    "max_tokens": 100,
    "temperature": 0.7
  }'

流式輸出

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "user", "content": "Tell me a story"}
    ],
    "stream": true
  }'

多模態(圖片)

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "描述這張圖片"},
          {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}
        ]
      }
    ]
  }'

Swift SDK 使用

import G12B

// 初始化引擎
let engine = try MarkBaseEngine(autoCompile: true)

// 加載模型
let model = try E4BModel(modelDir: "./model", engine: engine)

// 生成文本
let logits = try model.forward(tokenId: 0, position: 0)

性能

模型 速度 內存
E4B (4B) 19.7 tok/s ~3GB
12B 18.8 tok/s ~9GB

架構

MarkBase12B/
├── Sources/G12B/
│   ├── Engine.swift           # Metal 引擎
│   ├── Model.swift            # 模型實現
│   ├── Tokenizer/             # Tokenizer
│   ├── Generator/             # 文本生成
│   ├── Sampling/              # 採樣策略
│   ├── Audio/                 # 音訊塔
│   ├── Vision/                # 視覺塔
│   ├── Metal/                 # Metal Kernels
│   └── BufferPool.swift       # Buffer 池
├── Sources/G12BServer/
│   ├── APIServer.swift        # API 服務器
│   ├── MarkBaseServer.swift   # 服務器實現
│   ├── SSE.swift              # SSE 支持
│   ├── Errors.swift           # 錯誤處理
│   ├── MultimodalAPI.swift    # 多模態 API
│   └── PerformanceBenchmark.swift
└── Tests/G12BTests/

文檔

授權

MIT License

S
Description
MarkBaseEngine - Swift Metal multimodal inference engine for Apple Silicon
Readme 1.4 MiB
Languages
Swift 79%
Metal 20.7%
Shell 0.3%