Files
XingfenD c57a9bf9e6 添加KV Cache支持:实现prefill/decode阶段分离
- MultiHeadAttention类添加KV cache机制
- TransformerBlock支持use_cache参数
- SimpleTransformer新增prefill和decode方法
- 添加InferenceEngine推理引擎类
- 更新example.py演示推理过程
- 更新README.md文档
2026-07-16 15:07:47 +08:00

55 lines
1.4 KiB
Markdown

# Simple Transformer
A minimal Transformer implementation using NumPy with **KV Cache** support for efficient inference.
## Files
- `transformer.py` - Core Transformer model implementation with KV Cache
- `example.py` - Usage examples (training & inference)
## Usage
```bash
python3 example.py
```
## Model Architecture
The implementation includes:
- **Multi-Head Attention**: Scaled dot-product attention with multiple heads
- **Feed-Forward Network**: Two-layer fully connected network with ReLU activation
- **Layer Normalization**: Applied after each sub-layer
- **Positional Encoding**: Sinusoidal position embeddings
- **KV Cache**: Efficient inference with prefill/decode separation
## Inference: Prefill vs Decode
### Prefill Stage
- Process the complete input prompt in parallel
- Initialize KV cache for all layers
- Generate the first token
- Computation: O(n²)
### Decode Stage
- Process one token at a time
- Reuse cached Key and Value tensors
- Only compute new Query
- Computation: O(n) per step
## Model Parameters
Default configuration:
- Vocabulary size: 1000
- Model dimension: 512
- Number of heads: 8
- Number of layers: 6
- Feed-forward dimension: 2048
- Max sequence length: 100
Total parameters: ~19.4M
## Classes
- `SimpleTransformer` - Transformer model with prefill/decode methods
- `InferenceEngine` - Manages inference process with KV cache