S3nna13/Aurelius
GitHub: S3nna13/Aurelius
一个纯 PyTorch 实现的代码智能体模型家族,提供从训练、对齐到服务与安全评估的一站式解决方案。
Stars: 1 | Forks: 0
# Aurelius — 前沿 AI 研究平台
[](https://www.python.org/downloads/)
[](https://pytorch.org/)
[](https://react.dev/)
[](https://www.typescriptlang.org/)
[](https://www.rust-lang.org/)
[](LICENSE)
每一个组件 —— transformer 核心、训练 pipeline、对齐系统、推理引擎、API gateway 和前端 —— 均为纯手工编写。不依赖 HuggingFace Transformers,推理时不使用 flash-attn runtime 和 bitsandbytes。
## 技术栈
| 层级 | 位置 | 语言 | 职责 |
|-------|----------|----------|------|
| Rust Engine | `crates/` | Rust 2024 | Tokenization、搜索、向量相似度、会话管理、数据引擎 |
| Python Backend | `src/`, `agent/`, `gateway/` | Python 3.12 | 模型、训练、推理、对齐、API、CLI |
| Node.js BFF | `middle/` | TypeScript | 认证、速率限制、WebSocket、SSE、cron、文件服务 |
| Frontend | `frontend/` | React 19 + TypeScript | 任务控制台:仪表盘、聊天、分析、后台管理 |
**数据流:** 浏览器 → Node.js BFF (端口 3001) → Python API (端口 8080) → AureliusTransformer + Rust NAPI
前端绝不直接与 Python 通信。所有 API 调用均通过 BFF 路由。
## 模型架构
| 参数 | 值 |
|-----------|-------|
| Type | Decoder-only causal LM |
| Parameters | 1.395B (目标) |
| Layers | 24 transformer blocks |
| Hidden dim | 2,048 |
| Attention | Grouped-Query Attention (16 Q heads, 8 KV heads) |
| Head dim | 128 |
| FFN | SwiGLU, d_ff = 5,632 |
| Normalization | Pre-norm RMSNorm |
| Positional encoding | RoPE (θ = 500,000) + YaRN 上下文扩展 |
| Vocabulary | 8,192 tokens (BPE) |
| Embeddings | Tied input/output |
| KV cache | GQA 压缩;8 种热插拔策略 (KIVI, DuoAttention, EVICT, QUEST, Rocket KV, SAGE, TEAL, INT8) |
| MoE | SparseMoELayer — top-2 routing,8 个 experts,shared expert,EP 负载均衡 |
| MTP | Multi-Token Prediction (n=2,共享参数,分阶段训练) |
| Optimizer | Muon (Newton-Schulz 8+2 steps + Nesterov + RMS rescaling) |
| Checkpoint | safetensors (带有弃用警告的传统 .pt 回退方案) |
## 训练
- **全栈:** pretrain → SFT → DPO → GRPO → RLHF —— 全部从零开始
- **Muon optimizer** —— 混合 Newton-Schulz 正交化 (8+2 步)、Nesterov momentum、RMS rescaling;Polar Express (T=6) 开发中
- **Liger kernel** —— 融合 RMSNorm、SwiGLU、cross-entropy (~30% 吞吐量提升)
- **ZClip** —— z-score 梯度裁剪;**BAdam** —— block-coordinate 微调
- **Forward replay** —— 带有选择性层重放的 activation checkpointing
- **内存映射分片** —— `.npy` uint16 token 数组,通过 `searchsorted` 实现 O(log n) 分片查找
- **`torch.compile`** —— `AureliusTransformer.from_config(config, compile=True)` (CUDA)
**训练配置:** `train_1b.yaml`, `train_2.7b.yaml`, `train_3b.yaml`, `train_moe_5b.yaml`, `yarn_finetune.yaml`
## 对齐
**PRAXIS / MOSAIC v2** — 6 信号架构感知对齐:
- SteeringRewardCorrespondence (SRC)、ExpertSafetyAffinity (ESA)、MultiTokenAlignmentHorizon (MTAH)
- PrecisionFusion (贝叶斯逆方差加权)
- PRAXISLoss = DAPO + KL penalty + constitutional gate
**全套算法:** REINFORCE++, SAPO, TUR-DPO, AEM, DPO, GRPO, CPO, ORPO, PPO, SimPO, SPIN, KTO, constitutional AI
**MIS-PO** (开发中) — 在 token 级别 (KL 阈值门控) 和轨迹级别 (reward floor) 进行离散分布式过滤,并带有 KL penalty 项以使策略保持在参考附近。
## 推理与 KV Cache
8 种热插拔 KV cache 策略:
| 策略 | 描述 |
|----------|-------------|
| DuoAttention | 逐 Head 检索/流式分类;自动导出 JSON 配置 |
| EVICT (H2O) | 基于注意力分数的驱逐 |
| KIVI | 带有可配置残差长度的 INT4/INT8 量化缓存 |
| QUEST | Query 感知的稀疏 KV 访问 |
| Rocket KV | 重要性加权的预算分配 |
| SAGE Attention | SageAttention 内核集成 |
| TEAL | 基于稀疏性的 token 驱逐 |
| INT8 Sim | 微调期间的量化噪声模拟 |
**MTP 投机解码** (开发中) —— 通过 MTP heads 进行起草,单次验证 → 目标是在长上下文序列上实现 2-3 倍的吞吐量。
## Agent 系统
- **ReAct 循环** —— tool-call 解析、参数验证、有限预算终止;AST-walker 算术运算 (无动态代码执行)
- **AbsoluteZero** —— 自我博弈课程:在闭环反馈系统中的任务提出者 + 求解器
- **规划引擎** —— workstream DAG,`TaskStatus` / `PlanStatus` StrEnum,`get_workstream(missing_ok)` 守卫
- **任务调度器** —— cron / interval / delayed 任务;持久化到 `~/.cache/aurelius/jobs.json`
- **神经符号技能** —— 在符号规则引擎上进行 LLM 推理
- **信誉系统** —— 贝叶斯多智能体信任评分,抗 Sybil 攻击
- **跨越 5 个领域的 13 种人格** (GENERAL, CODING, SECURITY, THREAT_INTEL, AGENT);7 个可组合的 facet
## 可观测性
完整的生产级可观测性技术栈 (`src/observability/`):
| 模块 | 用途 |
|--------|---------|
| `AgentTelemetry` | 高级外观模式:在一次调用中完成审计 + 指标 + 追踪 |
| `AuditLogger` | 带有保留策略的结构化审计追踪 |
| `EventBus` | 进程内异步事件路由 |
| `MetricsCollector` | 带有标签的计数器、直方图、仪表 |
| `TraceContext` | 兼容 W3C 的分布式追踪传播 |
**SRE 指标** (`src/monitoring/`) —— 黄金信号:延迟 (p50/p99)、错误率、流量、饱和度。
**Prometheus** —— `/metrics` 端点:请求计数、延迟百分位数、活动连接数
### Prometheus 指标
`/metrics` 端点暴露以下计数器和仪表:
| 指标 | 类型 | 描述 |
|--------|------|-------------|
| `aurelius_requests_total` | counter | 接收到的 HTTP 请求总数 |
| `aurelius_requests_per_second` | gauge | 当前请求速率 |
| `aurelius_active_connections` | gauge | 并发活动连接数 |
| `aurelius_request_duration_ms` | gauge | 请求延迟 p50/p95/p99 |
| `aurelius_uptime_seconds` | gauge | 服务器运行时间 |
| `aurelius_http_status_total` | counter | 按 HTTP 状态代码分类的请求 (标签 `code`) |
| `aurelius_rate_limit_rejected_total` | counter | 被速率限制器拒绝的请求 |
| `aurelius_validation_failures_total` | counter | 参数验证失败 (超出范围) |
| `aurelius_rate_limiter_backend` | gauge | 速率限制器后端 (`0`=memory, `1`=redis) |
。
## 弹性容错
生产级容错原语 (`src/resilience/`):
| 模式 | 描述 |
|---------|-------------|
| `CircuitBreaker` | CLOSED / OPEN / HALF_OPEN FSM;可配置的失败阈值 + 恢复超时 |
| `Bulkhead` | 基于信号量的并发上限;隔离子系统故障 |
| `RetryPolicy` | 带有抖动的指数退避,可配置最大重试次数 |
| `RateLimiter` | Token bucket;内存 (单节点) 或 Redis (分布式) |
| `Pipeline` | 可组合的链式结构:熔断器 → 隔板 → 重试 |
## 安全与防护
**2026 年 5 月审计 —— 11 项严重、8 项高危修复:**
- 所有进程内执行模块中通过 `object.__subclasses__()` 的沙箱逃逸已被阻止
- SSRF:私有/保留 IP 黑名单;URL 验证已移至 `Request()` 构建之前
- 认证中间件默认 → `require_auth=True` (fail-closed)
- Shell 工具:`shell=True` + 黑名单 → `shell=False` + `shlex.split()` + 显式白名单
- PPO 训练器:修复了 `prompt_ids` NameError;纠正了 logit gather 中的 off-by-one 错误
- Constitutional AI:纠正了 KL divergence 参数顺序 (对齐信号之前被静默屏蔽)
- 插件沙箱:异常 → fail-closed `SandboxResult(success=False)`
- CI 门控:所有安全扫描步骤已移除 `continue-on-error: true`
**持续安全:** 拓扑安全 (persistent-homology 不变量)、叠加几何 (polysemanticity 检测)、24 个对抗性防御模块、越狱检测器、PII 扫描器、危害分类法 (9 个类别)。
所有 `torch.load` 调用均使用 `weights_only=True`。容器镜像使用非 root 用户 + 锁定的 base-image digests。
## API 与服务
**端点:**
- `POST /v1/chat/completions` —— 流式 + 非流式,兼容 OpenAI
- `GET /v1/models` —— 模型列表
- `GET /health` —— 存活探针 (返回 `engine_loaded` 标志;仅在服务器启动时返回 200)
- `GET /health/ready` —— 就绪探针 (仅在模型引擎完全初始化时返回 200;否则返回 503)
- `GET /healthz` —— 镜像 `/health` 的旧版别名 (用于向后兼容的健康检查)
- `GET /metrics` —— Prometheus 指标抓取端点
- `WebSocket /ws` —— 实时流式聊天
**Gateway 特性:**
CSP / HSTS (仅限生产环境) / X-Frame-Options: DENY / X-Content-Type-Options / Referrer-Policy 头;
基于 IP 的速率限制 (memory 或 Redis 后端);请求大小限制 (1 MiB JSON body,10 MiB 流式传输);
`X-Request-ID` 追踪;主机白名单强制执行;输入参数验证;响应清理。
**健康状态与就绪:**
- `GET /health` —— 存活状态。返回 `{"ok": true, "engine_loaded": , "version": "...", "uptime_seconds": ...}`。服务器运行时返回 HTTP 200。
- `GET /health/ready` —— 就绪状态。相同的 JSON schema;在模型引擎完成加载之前返回 503。Kubernetes `readinessProbe` 应指向此端点。
- `GET /healthz` —— 用于现有 HEALTHCHECK 集成的旧版别名 (行为与 `/health` 相同)。
**速率限制后端:**
- **Memory** (默认) —— 进程内 token bucket;适用于单实例部署
- **Redis** (设置 `AURELIUS_RATE_LIMIT_REDIS_URL`) —— 分布式 Lua 脚本 token bucket;在多个 API 副本之间保持限制一致
**可观测性:**
`/metrics` 上的 Prometheus 指标包括请求速率、延迟百分位数 (p50/p95/p99)、活动连接数、运行时间、HTTP 状态总数,以及 gateway 专属计数器:速率限制拒绝 (`aurelius_rate_limit_rejected_total`)、验证失败 (`urelius_validation_failures_total`) 和后端指示器 (`aurelius_rate_limiter_backend` — 0=memory, 1=redis)。
**部署目标:**
Docker Compose (`deployment/compose.yaml`)、Kubernetes (`k8s/aurelius-deployment.yaml`, `k8s/aurelius-service.yaml`)、Helm charts (`deployment/helm/aurelius/`)。
## 服务配置
Aurelius 支持针对不同部署规模优化的预设:
### `production` (默认)
具有研究级优化的全功能集 —— 投机解码 (如果 checkpoint 包含 draft model)、自动选择的 KV cache 策略、更大的 batch size (32),以及在有益处时使用 CUDA graphs。适用于多 GPU 或高内存单 GPU 服务器。
### 单 GPU
针对单 GPU 的内存保守配置:
- 投机解码 **已禁用** (无 draft model) —— 节省 15–25% VRAM
- KV cache 策略:`standard` —— 普通的 paged attention,无特殊技巧
- 默认 batch size:16 (可通过 `AURELIUS_BATCH_SIZE_MAX` 配置)
- GPU 显存利用率:85% (更安全的余量)
- Torch 优化:启用 TF32 + cuDNN benchmark
启用:
```
export AURELIUS_SERVING_PROFILE=single-gpu
aurelius serve
```
手动覆盖 (优先级高于 profile):
```
export AURELIUS_SPECULATIVE_DECODING=false
export AURELIUS_KV_CACHE_STRATEGY=standard
export AURELIUS_BATCH_SIZE_MAX=16
aurelius serve
```
## 批量推理
用于离线/同步工作负载的高吞吐量静态批处理端点:
**POST** `/v1/batch/completions`
请求体:
```
{
"prompts": ["Prompt A", "Prompt B"],
"temperature": 0.7,
"max_tokens": 256
}
```
响应:
```
{
"completions": ["Output A", "Output B"],
"count": 2
}
```
批处理端点会对所有 prompt 进行 tokenization,运行单次前向传递,并返回所有结果。需要 vLLM 后端;遵循配置的 `AURELIUS_BATCH_SIZE_MAX`。不支持流式传输 —— 交互式聊天请使用 `/v1/chat/completions`。
## 快速开始
```
git clone https://github.com/S3nna13/Aurelius.git
cd Aurelius
bash scripts/bootstrap.sh # full setup (Rust + Python + Node)
bash scripts/bootstrap.sh --fast # skip Rust builds
```
**前置条件:** Python 3.12+、Node 22+、Rust 1.81+、npm 10+
### CLI
```
aurelius # interactive chat
aurelius chat --persona aurelius-coding # coding persona
aurelius chat --react --model-path # ReAct tool-use loop
aurelius serve --port 8080 # API server
```
### OpenAI 客户端
```
import openai
client = openai.OpenAI(base_url="http://localhost:8080/v1", api_key="none")
resp = client.chat.completions.create(
model="aurelius",
messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)
```
### Docker
```
docker compose up # full stack
docker compose up --profile cache # with Redis
```
## 环境变量
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `AURELIUS_API_KEY` | — | 单个共享 API key |
| `AURELIUS_API_KEYS` | — | 多 key:`id:key:scope1,scope2;...` |
| `AURELIUS_AUTH_ENABLED` | `true` | 在非回环接口上要求认证 |
| `AURELIUS_ALLOWED_HOSTS` | `*` | 逗号分隔的主机白名单 |
| `AURELIUS_RATE_LIMIT` | `120` | 每个 IP 每个时间窗口的最大请求数 |
| `AURELIUS_RATE_WINDOW` | `60` | 速率限制窗口 (秒) |
| `AURELIUS_RATE_LIMIT_REDIS_URL` | — | 用于分布式速率限制的 Redis URL |
| `AURELIUS_RATE_LIMIT_PREFIX` | `rl:` | 用于速率限制 token 的 Redis 键前缀 |
| `AURELIUS_SERVING_PROFILE` | `production` | 服务预设:`production` (全功能) 或 `single-gpu` (吞吐量优化,无投机解码,batch 较小) |
| `AURELIUS_USE_CUDA_GRAPHS` | `auto` | 启用 CUDA graphs 进行内核融合:always/never/auto |
| `AURELIUS_GPU_MEM_UTIL` | `0.90 (production), 0.85 (single-gpu)` | 分配给 KV cache 的 GPU 显存比例 |
| `AURELIUS_BATCH_SIZE_MAX` | `32` | 静态批处理端点的最大 batch size;同时限制 vLLM max_num_seqs |
| `AURELIUS_MODEL_PATH` | — | checkpoint 目录的路径 |
| `AURELIUS_VERSION` | `0.1.0` | 版本字符串 (在 `/health` 可见) |
## DAIES 扩展计划
| 阶段 | 参数量 | 激活参数 | 策略 | 状态 |
|-------|--------|--------|----------|--------|
| v1 | 1.395B | 1.395B | Muon + grad_ckpt, bs=4 | 训练中 |
| v2 | 2.7B | 2.7B | Muon + grad_ckpt, bs=1 | 已规划 |
| v3 | 3.0B | 3.0B | 8-bit optim + MLX | 已规划 |
| v4 | ~5B MoE | ~2B | Sparse MoE + expert offload | 已规划 |
| v5 | 7-14B | 7-14B | bf16 / 4-bit quant | 未来 |
| v6 | 32B | ~8B MoE | Expert parallelism, 分布式 | 未来 |
Dense checkpoint 通过 `src/model/moe_upcycle.py` 为 MoE experts 提供种子。GGUF Q4_K_M 导出目标是在 Apple Silicon 上实现 25-35 tok/s。
## 目录结构
```
Aurelius/
├── src/
│ ├── model/ # Transformer, GQA, RoPE, SwiGLU, MoE, MTP — 200+ modules
│ ├── training/ # Muon, ZClip, BAdam, curriculum, RLHF trainers
│ ├── alignment/ # PRAXIS/MOSAIC v2, DPO, GRPO, PPO, MIS-PO
│ ├── inference/ # 8 KV cache strategies, speculative decoding, sampling
│ ├── agent/ # ReAct, AbsoluteZero, tool parser, planner
│ ├── persona/ # 13 personas, 7 facets, routing
│ ├── memory/ # MemCoE, semantic + episodic + unified orchestrator
│ ├── retrieval/ # BM25 + dense hybrid + re-ranking
│ ├── safety/ # Jailbreak, topology safety, superposition geometry, PII
│ ├── security/ # GCG adversarial, backdoor scan, MITRE ATT&CK
│ ├── observability/ # Telemetry, audit, event bus, metrics, trace
│ ├── resilience/ # Circuit breaker, bulkhead, retry, rate limiter, pipeline
│ ├── monitoring/ # SRE golden signals
│ ├── interpretability/# SAEs, activation patching, probing
│ ├── quantization/ # AWQ, GPTQ, SmoothQuant, NF4, FP8
│ └── reasoning/ # MCTS, chain-of-thought, structured reasoning
├── agent/ # Planning engine, task scheduler (canonical namespace)
├── gateway/ # FastAPI server + rate limiting + metrics middleware
├── aurelius_cli/ # CLI entry points, pipeline, scheduler commands
├── middle/ # Node.js BFF (TypeScript)
├── frontend/ # React 19 + Vite + TypeScript
├── crates/ # Rust NAPI-rs (11 crates: data-engine, token-counter, search, etc.)
├── k8s/ # Kubernetes manifests (Deployment, Service)
├── deployment/ # Docker Compose, Helm charts
├── configs/ # Training YAML configs
├── examples/ # Runnable scripts (scheduler, pipeline, SRE metrics)
├── scripts/ # Bootstrap, benchmark, GGUF export, data prep
├── tests/ # 33,000+ tests across all surfaces
├── data/ # Training shards (.npy uint16), tokenizer, corpus
└── checkpoints/ # Saved checkpoints (safetensors)
```
## 测试
```
make test # Python backend
make test-cov # With coverage
make frontend-test # Vitest
make middle-test # Node.js BFF
make rust-test # Rust crates
make test-all # All surfaces
make ci # lint + typecheck + security + all tests
```
## 入口点
| 命令 | 描述 |
|---------|-------------|
| `aurelius` | 交互式聊天 CLI |
| `aurelius-cli` | 带会话管理的终端聊天 |
| `aurelius-shell` | 带斜杠命令的 REPL |
| `aurelius-api` | Python API 服务器 |
| `aurelius-server` | 生产级服务技术栈 |
## 文档
| 文档 | 描述 |
|----------|-------------|
| [SECURITY.md](SECURITY.md) | 安全策略与漏洞报告 |
| [CONTRIBUTING.md](CONTRIBUTING.md) | 代码风格、测试、分支策略 |
| [CHANGELOG.md](CHANGELOG.md) | 发布历史 |
| [docs/MODEL_CARD.md](docs/MODEL_CARD.md) | 架构说明卡 |
| [docs/threat_model.md](docs/threat_model.md) | 安全威胁模型 |
| [examples/](examples/) | 可运行的示例脚本 |
[MIT 许可证](LICENSE) — 版权所有 © 2025 Aurelius Systems, Inc.
**GitHub:** [https://github.com/S3nna13/Aurelius](https://github.com/S3nna13/Aurelius)
标签:AI智能体, DLL 劫持, MCTS推理, Rust底层, 全栈架构, 大语言模型, 模型训练, 混合检索