ac75faa0cc
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
149 lines
2.9 KiB
Markdown
149 lines
2.9 KiB
Markdown
# 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完整?
|
||
- 选择暂停?
|
||
|
||
**下一步**:
|
||
- 等待用户决策
|
||
- 开始实施选定方案 |