shift/FerrisRes
GitHub: shift/FerrisRes
一个使用 Rust 和 wgpu 构建的 AI 推理与训练引擎,通过 Block AttnRes 线性注意力与多层安全机制解决长上下文高成本与安全风险问题。
Stars: 0 | Forks: 0
# FerrisRes
FerrisRes 是一个围绕 **Block AttnRes** 构建的 Rust 原生 AI 推理与训练引擎——这是一种新型线性时间 Transformer 架构,能够消除标准 Transformer 中的二次注意力瓶颈。它可通过 [wgpu](https://github.com/gfx-rs/wgpu)(Vulkan、Metal、DX12、WebGPU)在任意 GPU 或 iGPU 上运行,自动适配所发现的硬件,并且完全使用安全 Rust 编写,不依赖 Python。
## 为什么要用 FerrisRes?
| 问题 | FerrisRes 方案 |
|---|---|
| 长上下文下的二次注意力开销 | Block AttnRes:线性时间,带块内与块间注意力 |
| 仅 Python 的机器学习生态 | 纯 Rust —— 无 Python 运行时、无 C 扩展链 |
| 固定的硬件假设 | `DeviceProfile` 自动为集成 GPU 到数据中心调优 |
| 仅高端 GPU 可训练 | 梯度检查点 + CPU 卸载,支持 8 GB 及以下 iGPU |
| KV 缓存内存爆炸 | TurboQuant 2 位压缩:16× 内存减少 |
| 僵化的推理管线 | 可组合:支持 LoRA 热插拔、YaRN 上下文扩展、RAG、工具调用 |
| 仅单模态 | 视觉、音频、视频,支持流式 I/O 与跨模态注意力 |
| 单 GPU 瓶颈 | 张量并行、流水线并行、RDMA/NVLink、云编排 |
## 架构:Block AttnRes
标准 Transformer 在每个 token 上应用完整的自注意力,导致序列长度的 O(n²) 开销。Block AttnRes 通过两级注意力层次结构将复杂度降至 **O(n)**:
### 块内注意力
将 token 序列划分为固定大小的**块**(默认:每块 8 个 token)。在每个块内运行标准的多头自注意力并使用 RoPE 位置编码,生成每个块的*部分和*——即该块内容的压缩表示。
### 块间注意力
收集所有块表示后,进行第二次注意力传递,跨*块*进行关注。当前查询关注块表示序列,选择相关块。因为块数仅为 k = n / block_size,第二次传递是 O(k) = O(n / block_size) —— 与原始序列长度呈线性关系。
### 两阶段推理
1. **Prefill** —— 并行处理整个提示,填充每层 KV 缓存,生成首个输出 token 的 logits。
2. **Decode** —— 自回归每步生成一个 token。每步向每层缓存追加新的 K/V,并通过专用的 WGSL 核运行 Flash-Decode 注意力。
`TokenGenerator` 协调两个阶段并提供 `generate_stream` 用于流式输出。
## 功能概览
### 推理管线
- **TokenGenerator** —— 包含 `generate()`、`generate_stream()`、`generate_with_rag()`、`generate_with_tools()` 的完整预填+解码管线
- **UnifiedTokenGenerator** —— 通过 `AnyModel` 枚举同时支持 BlockAttnRes 与标准 Transformer(LLaMA/Mistral/Gemma)
- **Logit 处理器** —— 可组合链:重复惩罚 → 频率/存在惩罚 → 温度 → Top-K → Top-P → 采样
- **提示模板** —— ChatML、Llama 2、Mistral、Alpaca、Raw(CLI `--template` 标志)
- **上下文扩展** —— YaRN(NTK 感知的 RoPE 缩放)与 StreamingLLM(注意力池),每解码步计算有效位置
- **RAG 管线** —— 稠密(余弦相似度)、稀疏(TF-IDF)、混合检索结合上下文学习
- **工具搜索** —— 关键词/嵌入/混合工具发现、`[tool_call]` 检测、结果注入、继续生成
- **DECS** —— 推理令牌优化器,带平台检测与质量保留的早期停止
- **Matryoshka 弹性 RAG** —— 根据设备配置自适应嵌入维度(32/64/128/256/768)
- **Token 合并(ToMe)** —— CPU 二分软匹配,用于训练免费的视觉 Token 减少
- **HullKVCache** —— 二维凸包注意力,O(log n) 查询
- **LLM-Computer** —— CALM 虚拟机:LookUp → Compute → BranchIf 指令集
- **推测解码** —— n-gram 草案模型 + 拒绝采样验证
- **推测块解码** —— 小型 BlockDraftModel 预测块摘要,吞吐量提升 8 倍
- **主机工具** —— 网络抓取、数学评估、文件读写、Shell 执行、搜索、代码解释器
- **WASM 沙箱** —— wasmi 运行时,零信任工具执行,带燃料限制
- **LSP 工具** —— 语言服务器协议客户端,用于确定性代码验证
- **镜像测试** —— 递归自验证:代码 → 测试 → 执行 → 损失
- **概念记忆** —— 持久化学习模式,支持基于嵌入的检索
- **分页注意力(PagedAttention)** —— 类似 vLLM 的块管理、副本写入、前后缀共享
### 多模态
- **视觉编码器** —— ViT 风格,采用隐式 GEMM(0 MB 中间显存)或传统 im2col + ToMe
- **EnCodec 音频编码器** —— 步长卷积编码器 + 残差向量量化(8 个码本)
- **跨模态注意力** —— 文本/视觉/音频融合,支持早/中/晚融合模式
- **VQ-VAE 码本** —— 最近邻查找、EMA 更新、多码本(多头 + 残差)
- **流式图像 I/O** —— 分块提取、分块读取以支持大图
- **流式音频 I/O** —— 分块窗口处理、环形缓冲捕获、流式 EnCodec
- **流式视频 I/O** —— 帧采样、时间缓冲、渐进式解码
- **视频 Token 压缩** —— 去除时间冗余、运动补偿残差、跨帧合并(4–8× 压缩)
- **3D/分解卷积** —— 时间(T×1×1)+ 空间(1×H×W)分解,带 WGSL 核
### 输出模态
- **VisionHead** —— VQ-VAE 码本对数几率,支持逐行渐进式解码
- **SpeechHead** —— 类 EnCodec 的 N 码本预测
- **VideoHead** —— I 帧与 P 帧残差预测,带 VideoStreamReconstructor
- **Streaming TTS** —— 带重叠相加、交叉淡入淡出、渐入渐出的音频流重建器
- **Robotics VLA** —— 动作头,支持离散(256 箱)与连续(tanh 压缩)模式,ControlMode(笛卡尔/关节),带安全检查器
- **ChemicalValidator** —— 基于 SMILES 价键感知的 Token 掩码(有机子集:C、N、O、P、S、卤素、B)
- **MeshHead** —— 稀疏网格上的 SDF 预测 + Marching Cubes 提取 → .obj 导出
- **GCodeValidator + GCodeGenerator** —— Klipper 风格解析、工作包络校验、32 Token 词汇表
- **TactileHead** —— 6 致动器(5 指 + 手掌)1000 Hz 触觉强度预测
- **VisualTactileBridge** —— 视觉到触觉纹理的余弦相似度映射
- **SpeculativeHapticDecoder** —— 草案-验证,用于低于 20 ms 延迟
### 安全(FerrisRes Armor)
- **L0:正则表达式 + Bloom 过滤器** —— 31 种 PII 识别器(邮箱、SSN、电话、信用卡、IP、IBAN、API 密钥等)+ 5 种提示注入启发式规则 + 1 MB Bloom 过滤器用于黑名单查找
- **L1:神经扫描器** —— ArmorGuardTiny:4 层 BERT(约 3.5 M 参数),用于二分类 SAFE/注入
- **L2:RepE 安全探针** —— 6 类线性探针(暴力、自残、性、仇恨、骚扰、注入),作用于 BlockSummary 隐藏状态
- **L3:输出清洗器** —— PII 脱敏(屏蔽/替换/截断策略),带注入启发式排除
- **ArmorLayer 编排器** —— 验证输入(L0+L1)、验证隐藏(L2)、清洗输出(L3)、自我学习反馈回路
### 训练
- **自动微分引擎** —— 计算图、反向传播、梯度累积
- **SGD / Adam 优化器** —— GPU 侧参数更新
- **交叉熵损失** —— GPU 侧损失计算
- **LoRA 适配器** —— 低秩微调,支持合并/取消合并填充、热插拔、`merge_all()`
- **QLoRA** —— 量化权重训练:NF4 基础 + LoRA 适配器,仅适配器参与训练
- **梯度检查点** —— 每块/每层/每注意力,支持 `recompute_block()`(ADR-010)
- **CPU/异步梯度卸载** —— CPU 侧累积与异步 GPU→CPU 传输,适用于 iGPU
- **分块梯度累积** —— 将批次拆分为 GPU 大小的块,累加部分和
- **部分反向传播** —— 冻结层、选择性反向、逐步解冻、LoRA 集成
- **配置驱动调度** —— `DispatchPlan` 根据模型大小与 GPU 限制计算每操作 CPU/GPU 决策,无需手动 `--gpu` 标志
- **Intel iGPU 检测** —— 自动检测并限制 Gen9/Gen11 等误报缓冲上限的 iGPU
- **GPU MatMul 自动分块** —— 大权重矩阵(如 LM 头)自动切分为 GPU 缓存块大小的列块
### Token 化器
- **BPE Tokenizer** —— 带领域词汇表(DomainVocabulary)的字节对编码
- **QA-Token** —— 质量感知 Token 化,带置信度加权的词汇表
- **BLT Tokenizer** —— 字节潜在 Transformer:原始 UTF-8 字节、熵驱动动态打补丁、跨补丁注意力
### 模型加载
- **Safetensors** —— F32/F16/BF16,多分片,架构自动检测
- **GGUF** —— v2/v3,Q8_0/Q4_0/Q4_K/Q5_K/Q6_K 量化,名称映射
- **标准 Transformer** —— O(n²) 兼容模式,支持 LLaMA/Mistral/Gemma
- **架构调度器** —— 自动从权重中检测模型类型,提供 `AnyModel` 统一接口
### 分布式与硬件
- **张量并行** —— 在 N 个 GPU 上切分权重矩阵,注意力/前馈网络后 All-Reduce
- **流水线并行** —— 将层分配到不同 GPU,支持 GPipe 与 1F1B 调度
- **权重切分** —— 行/列切分与重构,支持散射/收集原语
- **云 GPU 编排** —— 工作节点注册、分片分配、梯度聚合、容错、基于成本的 Spot 调度
- **Apple Neural Engine (ANE)** —— 自动算子放置(矩阵乘/注意力在 GPU,BN/激活在 ANE),统一内存缓冲
- **RDMA/DirectGPU** —— NVLink、RoCE、InfiniBand、TCP 回退,带带宽/延迟估算
### 计算核(WGSL)
| 核 | 用途 |
|---|---|
| Tiled MatMul | 16×16 工作组分块 + 双缓冲变体 |
| RMSNorm | 行归一化 |
| Softmax | 数值稳定的在线 Softmax |
| RoPE | 旋转位置编码 |
| FlashDecode + Tiled | 单查询解码注意力,带在线 Softmax |
| CausalMask | 上三角掩码 |
| Elementwise | 加、缩放、ReLU、复制 |
| im2col | 图像分块提取(遗留) |
| FusedPatchEmbed | 隐式 GEMM —— 融合分块提取 + 投影,0 MB 中间显存 |
| MoE | 专家路由与聚集 |
| TurboQuant | 旋转、量化、反量化、QJL 投影 |
| ToMeMerge | 用于 Token 减少的散射-合并 |
| FFT | 音频频谱的快速傅里叶变换 |
| Mel-spectrogram | 对数梅尔滤波器组 |
| Temporal/Spatial Conv | 视频处理的 3D 分解卷积 |
| Circular KV | KV 缓存的虚拟环形缓冲 |
| TurboQuant 核 | 旋转、量化、反量化、QJL 投影 |
### 硬件适配
FerrisRes 使用**配置驱动调度**系统。启动时,`DispatchPlan` 查询模型大小、GPU 显存与最大缓存大小,计算每个操作在 CPU/GPU 上的执行决策。无需手动 `--gpu` 标志。
| 配置 | 显存 | 默认批次 | KV 缓存 |
|---|---|---|---|
| `Integrated` | 共享/iGPU | 1 | 2 GB |
| `LowEnd` | < 4 GB | 2 | 4 GB |
| `MidRange` | 4–8 GB | 4 | 8 GB |
| `HighEnd` | > 8 GB | 8 | 16 GB |
**每操作调度** —— 小型矩阵乘(QKV、O、FFN)即使在 iGPU 上也优先走 GPU;大型操作(如 LM 头)自动切分为 GPU 缓存块大小的片段。自动检测并限制 Gen9/Gen11 等误报缓存上限的 Intel iGPU。
```
DispatchPlan: profile=LowEnd model=10.2GB vram=1.1GB max_buf=268MB
embed=CPU qkv=GPU attn=CPU o=GPU ffn=GPU lm_head=GPU*T grad=CPU
batch=2 per_sample=1.0MB gpu_available=true
```
启动时自动检测。可通过 `FERRIS_DEVICE_PROFILE=integrated cargo run` 覆盖。
## CLI
```
# 推理
cargo run -- infer --prompt "Explain transformers" --template chatml --max-tokens 128
# 多模态
cargo run -- infer --prompt "Describe this image" --image photo.jpg
# 扩展上下文
cargo run -- infer --prompt "Long document..." --yarn-scale 4.0
# 使用 LoRA 进行训练
cargo run -- train --epochs 3 --lora-rank 8 --data training.txt
# 基准测试
cargo run -- benchmark --iterations 100 --hidden-dim 512
# 蒸馏(完整流程 — GPU 自动检测)
cargo run -- distill \
--model-path ./model.safetensors \
--config 27b-mm \
--steps 10000 \
--tokenizer ./tokenizer.json \
--data training_data.txt \
--converge 0.001 \
--converge-patience 100
# 恢复蒸馏
cargo run -- distill \
--model-path ./model.safetensors \
--config 27b-mm \
--steps 5000 \
--resume distilled_model.bin.checkpoint.bin
```
## 快速开始
将 FerrisRes 添加到你的 `Cargo.toml`:
```
[dependencies]
ferrisres = { git = "https://github.com/shift/FerrisRes", tag = "v0.2.1" }
```
### 最小推理示例
```
use ferrisres::{
BlockAttnResConfig, TokenEmbedding, LMHead,
inference::generator::{TokenGenerator, GenerateConfig},
model::BlockAttnResModel,
};
use std::sync::Arc;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let instance = wgpu::Instance::default();
let adapter = instance
.request_adapter(&wgpu::RequestAdapterOptions::default())
.await?;
let (device, queue) = adapter
.request_device(&wgpu::DeviceDescriptor::default(), None)
.await?;
let device = Arc::new(device);
let queue = Arc::new(queue);
let vocab_size = 32_000;
let config = BlockAttnResConfig::new(512);
let model = Arc::new(BlockAttnResModel::new(
Arc::clone(&device), Arc::clone(&queue),
config.clone(), vocab_size,
)?);
let embedding = TokenEmbedding::new(
Arc::clone(&device), Arc::clone(&queue),
vocab_size, config.hidden_dim,
)?;
let lm_head = LMHead::new(
Arc::clone(&device), Arc::clone(&queue),
config.hidden_dim, vocab_size,
)?;
let generator = TokenGenerator::new(
model, lm_head, embedding,
Arc::clone(&device), Arc::clone(&queue),
2048,
)?;
let prompt_tokens: Vec = vec![1, 42, 7];
let output = generator.generate(
&prompt_tokens,
&GenerateConfig { max_tokens: 64, ..Default::default() },
)?;
println!("Generated token ids: {:?}", output);
Ok(())
}
```
### 流式生成
```
let rx = Arc::new(generator).generate_stream(
prompt_tokens, /*max_new_tokens=*/ 128,
);
for token_id in rx {
print!("{token_id} ");
}
```
### RAG 增强生成
```
use ferrisres::inference::rag::RagStore;
let rag_store = RagStore::default_store();
// ... add documents ...
let output = generator.generate_with_rag(
"What is attention?",
&rag_store,
&GenerateConfig::default(),
)?;
```
## API 服务器
FerrisRes 包含一个 OpenAI 兼容的 HTTP API 服务器:
```
# 启动 API 服务器
cargo run -- serve --port 8080
```
端点:
- `POST /v1/chat/completions` —— 以消息形式聊天
- `POST /v1/completions` —— 文本补全
- `GET /v1/models` —— 列出模型
- `GET /health` —— 健康检查
支持 SSE 流式传输、CORS 浏览器集成,并兼容任意
OpenAI 兼容客户端(Open WebUI、curl 等)。
## 蒸馏
FerrisRes 可将标准 Transformer 模型(Gemma 4、LLaMA、Mistral、Phi、Qwen)
通过结构线性化——一种蒸馏过程——转换为原生 Block AttnRes 模型,将注意力从 O(n²) 降至 O(n),同时保留 95–99% 的教师模型质量。
**在实际硬件上验证**:成功蒸馏 9.6 GB 的 Gemma 4 27B
多模态 IT 模型(2.66B 参数、35 层、GQA 8Q/1KV 头),运行在
32 GB 机器上的 Intel HD 530 iGPU。损失从 21.57 降至 21.34,经过
10 步真实 TinyStories 训练数据、冻结缓存状态、配置驱动的 GPU 分发与自动分块 LM 头(13 块 × 21845 列),以及
`matrixmultiply` 加速的 CPU GEMM。
```
# 使用真实数据和自动收敛的完整蒸馏
cargo run -- distill \
--model-path ./model.safetensors \
--config 27b-mm \
--steps 10000 \
--seq-len 32 \
--tokenizer ./tokenizer.json \
--data training_data.txt \
--converge 0.001 \
--converge-patience 100 \
--checkpoint-every 100
# 从检查点恢复(从最后一步继续)
cargo run -- distill \
--model-path ./model.safetensors \
--config 27b-mm \
--steps 1000 \
--resume distilled_model.bin.checkpoint.bin
# 用于测试的小型模型
cargo run -- distill \
--model-path ./model.safetensors \
--config e2b \
--steps 1000
```
### 蒸馏关键特性
- **配置驱动调度** —— `DispatchPlan` 根据模型大小与 GPU 限制决定每操作 CPU/GPU 路由,无需 `--gpu` 标志
- **GPU MatMul 自动分块** —— 超出 GPU 缓存限制的权重矩阵(如 iGPU 上 1.6 GB 的 LM 头)自动切分为列块
- **Intel iGPU 检测** —— 自动检测并限制 Gen9/Gen11 等误报 `max_buffer_size` 的 iGPU
- **缓存冻结状态** —— 基础模型权重不变,每层隐藏状态仅计算一次;训练步骤仅运行块摘要混合与 LM 头
- **`matrixmultiply` GEMM** —— 缓存分块 SIMD CPU 矩阵乘(约 5–10× 优于朴素循环)
- **完整 Adam 状态持久化** —— 检查点保存优化器动量(m、v、t),支持无缝恢复
- **中期检查点** —— `--checkpoint-every N` 增量保存进度
- **自动收敛** —— `--converge 0.001 --converge-patience 100` 在损失平台期停止训练
- **结构化日志** —— 所有日志行使用 `event=` 字段便于机器解析
- **检查点损坏弹性** —— 损坏或空检查点文件会被优雅处理(警告并重新开始)
详见 [docs/distillation.md](docs/distillation.md) 获取完整指南。
## 文档
| 指南 | 描述 |
|---|---|
| [开始](docs/quickstart.md) | 5 分钟内运行起来 |
| [架构](docs/architecture.md) | Block AttnRes 深度解析 |
| [蒸馏](docs/distillation.md) | Gemma 4 → Block AttnRes 转换 |
| [安全](docs/security.md) | FerrisRes Armor:4 层安全代理 |
| [API 参考](docs/api-reference.md) | 公共 API、稳定性等级、CLI |
| [部署](docs/deployment.md) | systemd、Docker、NixOS、安全 |
## 构建
FerrisRes 实现了一个闭环自校正系统:
1. **模型生成代码** → WASM 沙箱在 <1ms 内验证语法
2. **LSP-as-Oracle** 提供确定性编译器反馈
3. **镜像测试** —— 模型为自己编写测试,测试失败成为损失信号
4. **自动微分反向传播** —— 编译器错误在权重层面惩罚模型
5. **概念记忆** —— 学习到的模式被持久化以便后续会话检索
这创建了一个系统,AI 在编程逻辑定律上被物理束缚:
语法错误导致权重更新,而不仅仅是聊天修正。
FerrisRes 需要一个可用的 Vulkan 驱动。在 Linux 上推荐使用提供的 Nix 开发环境:
```
nix develop # enters the dev shell with Rust + Vulkan layers
cargo build
cargo test # 951 tests
cargo bench
```
## 项目结构
```
src/
├── main.rs # CLI (train/infer/benchmark/info)
├── lib.rs # Public API re-exports
├── autodiff/ # Reverse-mode autodiff graph
├── compute/
│ ├── kernels/ # 17+ WGSL compute shaders
│ │ ├── matmul.rs # Tiled + double-buffer matmul
│ │ ├── flash_decode # Single-query decode attention
│ │ ├── rope.rs # RoPE in-place
│ │ ├── fft.rs # FFT for audio
│ │ ├── conv3d.rs # 3D factored convolution (temporal + spatial)
│ │ └── ... # RMSNorm, softmax, causal, elementwise, etc.
│ ├── buffer.rs # GpuBuffer
│ ├── turboquant.rs # TurboQuant engine
│ ├── distributed.rs # Tensor/pipeline parallelism, weight sharding
│ ├── hardware.rs # Cloud GPU, ANE/NPU, RDMA/DirectGPU
│ └── async_pipeline.rs # FA3 double-buffer dispatch
├── device/
│ ├── profile.rs # DeviceProfile (Integrated/LowEnd/MidRange/HighEnd)
│ ├── capability.rs # GPU capability detection
│ └── dispatch.rs # DispatchPlan: model-size-aware per-op CPU/GPU decisions
├── inference/
│ ├── generator.rs # TokenGenerator (generate/stream/rag/tools)
│ ├── unified_generator # UnifiedTokenGenerator (AnyModel)
│ ├── speculative.rs # Speculative decoding (n-gram draft)
│ ├── paged_attention # vLLM-style block pool, COW, prefix sharing
│ ├── cross_modal.rs # Text/vision/audio cross-attention fusion
│ ├── video_compression # Temporal redundancy, motion compensation, merging
│ ├── logit_processors.rs
│ ├── prompt_templates.rs
│ ├── context_extension.rs
│ ├── rag.rs / matryoshka.rs / tool_search.rs
│ ├── token_merging.rs / paca.rs
│ ├── decs.rs / hull_kv_cache.rs / llm_computer.rs
│ ├── circular_kv.rs # Virtual circular KV buffer
│ ├── host_tools.rs # 7 host tools (web_fetch, math_eval, etc.)
│ ├── lsp_tools.rs # LSP JSON-RPC client + fallback checker
│ ├── wasm_sandbox.rs # WASM runtime (wasmi) + embedded checker
│ ├── mirror_test.rs # Recursive self-verification
│ ├── block_draft.rs # Speculative Block Decoding
│ ├── concept_memory.rs # Persistent concept memory + Hull-KV bridge
│ ├── pdf_ingestion.rs # Raw PDF text extraction
│ ├── acp.rs # Agent Capability Protocol router
│ ├── tts_stream.rs # Streaming TTS with overlap-add reconstruction
│ ├── vla.rs # Vision-Language-Action robotics controller
│ ├── scientific.rs # SMILES validator, Marching Cubes, G-Code validator/generator
│ ├── tactile.rs # TactileHead haptics + VisualTactileBridge
│ └── kv_cache.rs / sampling.rs
├── model/
│ ├── model.rs # BlockAttnResModel (forward + backward)
│ ├── block_attn_res.rs # BlockAttnResLayer
│ ├── standard_transformer.rs # O(n²) compatibility mode
│ ├── dispatcher.rs # Architecture auto-detection (AnyModel)
│ ├── gemma_mapper.rs # Gemma 4 weight mapper, GQA, distillation training
│ ├── gpu_forward.rs # GPU-accelerated forward pass with auto-tiling + Intel iGPU detection
│ ├── safetensors.rs # Safetensors + MmapedSafetensors loader
│ ├── gguf.rs # GGUF v2/v3 loader
│ ├── tokenizer.rs # BPE + DomainVocabulary
│ ├── blt.rs # Byte Latent Transformer tokenizer
│ ├── qa_tokenizer.rs # QA-Token
│ ├── vision.rs # VisionEncoder (Implicit GEMM + ToMe)
│ ├── audio.rs # EnCodec audio encoder (RVQ)
│ ├── vqvae.rs # VQ-VAE codebook (EMA, multi-codebook)
│ ├── streaming_image.rs # Progressive patch extraction
│ ├── streaming_audio.rs # Chunked audio processing + ring buffer
│ ├── streaming_video.rs # Frame sampling + temporal buffering
│ ├── generation_head.rs # VisionHead, SpeechHead, VideoHead output modalities
│ └── shard.rs # ModelShard + QuantizedBuffer
├── security/
│ ├── mod.rs # Armor module registration
│ ├── armor.rs # ArmorLayer orchestrator + self-learning feedback
│ ├── armor_l0.rs # Regex PII engine + Bloom filter
│ ├── armor_l1.rs # ArmorGuardTiny neural injection scanner
│ ├── armor_l2.rs # RepE safety probe (6 categories)
│ └── armor_l3.rs # PII redaction output sanitizer
├── tensor/ # GpuTensor
└── training/
├── optimizer.rs # SGD, Adam, CrossEntropyLoss
├── checkpointing.rs # CheckpointStore (recompute_block)
├── lora.rs # LoRA adapter
├── gradient_accum.rs # Tile-based gradient accumulation
├── partial_backprop # Layer freeze, selective backward
└── cpu_offload.rs / async_offload.rs
```
## 路线图
| 阶段 | 状态 | 描述 |
|---|---|---|
| 1–3 | ✅ 完成 | wgpu 基础、BlockAttnRes 模型、分级计算、缓存 |
| 4 | ✅ 完成 | 自动微分、训练、Token 化器、嵌入、基准测试 |
| 5 | ✅ 完成 | 流式推理、RoPE、KV 缓存、Flash-Decode、Logit 处理器 |
| 6 | ✅ 完成 | TurboQuant、LoRA、RAG、YaRN、模板、DECS、HullKVCache、LLM-Computer |
| 7 | ✅ 完成 | 视觉(隐式 GEMM、ToMe、PaCa)、Matryoshka、音频、跨模态、流式 I/O、VQ-VAE、BLT、视频压缩、3D 卷积 |
| 8 | ✅ 完成 | 分布式张量/流水线并行、云 GPU 编排、RDMA/DirectGPU、ANE/NPU |
| 9 | ✅ 完成 | 权重加载(safetensors、GGUF)、标准 Transformer 兼容、架构调度器 |
| 10 | ✅ 完成 | Gemma 4 蒸馏管线、GPU 前向传播、mmap 加载器、GQA、真实模型验证 |
| 11 | ✅ 完成 | 自我提升:WASM 沙箱、LSP-as-Oracle、镜像测试、块解码、概念记忆 |
| 12 | ✅ 完成 | v0.2.0:基准测试、API 稳定化、快速入门/架构/部署文档 |
| 13 | ✅ 完成 | 输出模态:VisionHead、SpeechHead、VideoHead、TTS 流、VLA 动作头、科学(SMILES/Mesh/GCode)、TactileHead |
| 14 | ✅ 完成 | FerrisRes Armor:L0 正则表达式+Bloom、L1 神经扫描器、L2 RepE 探针、L3 清洗器、GPU 加速蒸馏 |
| 15 | ✅ 完成 | 配置驱动调度:`DispatchPlan` 每操作 CPU/GPU,Intel iGPU 自动检测、自动分块,移除 `--gpu` 标志 |
| 16 | ✅ 完成 | 真实蒸馏验证:Gemma 4 27B 在 Intel HD 530 上,27M Token,检查点弹性,27M tokens,损失 21.57 → 21.34 |
**全部任务完成 —— 951 个测试通过。**
详见 [ROADMAP.md](ROADMAP.md) 获取完整技术细节。
## 许可证
FerrisRes 采用双重许可:
**AGPL-3.0-or-later** 用于免费及开源使用。详见 [`LICENSE`](LICENSE) 获取完整条款。
**商业许可** 用于专有或商业产品。联系:shift+licensing@someone.section.me
标签:2位量化, AI 推理, AI 训练, Block AttnRes, CPU卸载, GGUF, GPU适配, H100, Intel iGPU, KV缓存压缩, LoRA, Rust, SafeTensors, TurboQuant, wgpu, 信息收集, 关键词SEO, 内存优化, 可视化界面, 多模态, 安全Rust, 推理引擎, 无Python, 梯度检查点, 流式I/O, 纯Rust, 线性时间Transformer, 网络流量审计, 视觉, 视频, 训练引擎, 设备配置自动调优, 跨模态注意力, 边缘计算, 通知系统, 音频, 高性能计算