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, 网络流量审计, 视觉, 视频, 训练引擎, 设备配置自动调优, 跨模态注意力, 边缘计算, 通知系统, 音频, 高性能计算