Initial commit: E4B-MarkBase model integration with passing tests
CI / build-and-test (push) Has been cancelled
CI / build-and-test (push) Has been cancelled
- E4B-MarkBase model (42 layers, 4.4GB) loaded successfully - All Phase 1-6 tests passed (model loading, forward pass, vision/audio towers, token generation, performance) - All stress tests passed (5/5 in 127.6s) - Concurrent inference - Memory stress (67.5 tok/s, 0 NaN) - Continuous generation - Batch processing - Long-running stability - Swift Metal inference engine with multimodal support
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
# MarkBase 实施优先级清单
|
||||
|
||||
## Phase 1: 必需功能(4-6天)
|
||||
|
||||
### ✅ Task 1: Tokenizer集成(2-3天)
|
||||
**文件**:
|
||||
- `Sources/G12B/Tokenizer/Tokenizer.swift` (协议)
|
||||
- `Sources/G12B/Tokenizer/SentencePieceTokenizer.swift` (实现)
|
||||
- `Sources/G12B/Tokenizer/TokenizerLoader.swift` (加载器)
|
||||
|
||||
**关键API**:
|
||||
```swift
|
||||
public protocol Tokenizer {
|
||||
func encode(text: String) -> [Int]
|
||||
func decode(tokens: [Int]) -> String
|
||||
}
|
||||
```
|
||||
|
||||
**测试**:
|
||||
- encode/decode往返验证
|
||||
- Gemma tokenizer加载
|
||||
- 特殊token处理
|
||||
|
||||
**完成标志**:
|
||||
- ✅ 可直接输入文本prompt
|
||||
- ✅ 输出可直接显示文本
|
||||
|
||||
---
|
||||
|
||||
### ✅ Task 2: 流式输出(1天)
|
||||
**文件**:
|
||||
- `Sources/G12B/Generator/StreamingGenerator.swift`
|
||||
|
||||
**关键API**:
|
||||
```swift
|
||||
public func generate(prompt: String) -> AsyncStream<String>
|
||||
```
|
||||
|
||||
**测试**:
|
||||
- async stream正确输出
|
||||
- 实时token生成验证
|
||||
|
||||
**完成标志**:
|
||||
- ✅ token-by-token实时显示
|
||||
|
||||
---
|
||||
|
||||
### ✅ Task 3: 采样策略(1-2天)
|
||||
**文件**:
|
||||
- `Sources/G12B/Sampling/Sampler.swift`
|
||||
- `Sources/G12B/Sampling/SamplingConfig.swift`
|
||||
- `Sources/G12B/Sampling/Softmax.swift` (Metal kernel)
|
||||
|
||||
**关键API**:
|
||||
```swift
|
||||
public struct SamplingConfig {
|
||||
let temperature: Float
|
||||
let topK: Int?
|
||||
let topP: Float?
|
||||
}
|
||||
|
||||
public func sample(logits: [Float], config: SamplingConfig) -> Int
|
||||
```
|
||||
|
||||
**测试**:
|
||||
- Temperature效果验证
|
||||
- Top-k/top-p过滤正确
|
||||
- 生成质量对比
|
||||
|
||||
**完成标志**:
|
||||
- ✅ 多种采样策略可用
|
||||
- ✅ 生成质量可控
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: 重要功能(5-7天)
|
||||
|
||||
### ⭐ Task 4: HTTP API(3-4天)
|
||||
**文件**:
|
||||
- `Sources/G12B/API/InferenceAPI.swift`
|
||||
- `Sources/G12B/API/APIModels.swift`
|
||||
- `Sources/G12B/API/Routes.swift`
|
||||
|
||||
**关键API**:
|
||||
```swift
|
||||
POST /generate { prompt: String, maxTokens: Int }
|
||||
POST /stream { prompt: String } -> WebSocket
|
||||
```
|
||||
|
||||
**依赖**:Hummingbird(轻量HTTP框架)
|
||||
|
||||
**完成标志**:
|
||||
- ✅ REST endpoint可用
|
||||
- ✅ API文档完善
|
||||
|
||||
---
|
||||
|
||||
### ⭐ Task 5: 并发支持(2-3天)
|
||||
**文件**:
|
||||
- `Sources/G12B/Concurrent/ConcurrentGenerator.swift`
|
||||
- `Sources/G12B/Concurrent/RequestQueue.swift`
|
||||
|
||||
**关键API**:
|
||||
```swift
|
||||
public func generateBatch(prompts: [String]) async throws -> [String]
|
||||
```
|
||||
|
||||
**完成标志**:
|
||||
- ✅ 多request并发处理
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: 可选功能(7-10天)
|
||||
|
||||
### 📦 Task 6: 模型自动下载(2-3天)
|
||||
**完成标志**:自动从HuggingFace下载
|
||||
|
||||
---
|
||||
|
||||
### 📦 Task 7: iOS/macOS应用模板(5-7天)
|
||||
**完成标志**:SwiftUI Chat应用示例
|
||||
|
||||
---
|
||||
|
||||
## 实施决策
|
||||
|
||||
**推荐**:Phase 1(4-6天)
|
||||
|
||||
**目标**:
|
||||
- 教育研究工具定位
|
||||
- Swift生态特色
|
||||
- 完整文本生成体验
|
||||
|
||||
**放弃**:
|
||||
- Phase 3(投入产出低)
|
||||
- 生产级竞争(定位错位)
|
||||
|
||||
---
|
||||
|
||||
## 开始信号
|
||||
|
||||
**用户确认**:
|
||||
- 选择Phase 1实施?
|
||||
- 选择Phase 1+2完整?
|
||||
- 选择暂停?
|
||||
|
||||
**下一步**:
|
||||
- 等待用户决策
|
||||
- 开始实施选定方案
|
||||
Reference in New Issue
Block a user