ARLE 项目架构

Rust 原生、设备中立的推理运行时 · 集成本地 Agent 与 On-Policy Distillation(OPD)· 热路径无 PyTorch / 无 Python

一句话

ARLE 把统一的推理运行时作为核心:一套设备中立的 Engine 调度器,通过一层"主机侧 only"的接缝(seam)对接两个后端执行器(CUDA / Metal)。同一个引擎既服务在线推理,也为 OPD 训练充当强 teacher 与低延迟 student 评分路径。

分层栈(infer-* 重写栈)

2026-06-04 删除了单体 infer/ 巨包(~167k LOC),收敛为编译期强制后端无关的 crate 切分:

infer-server / infer-apiHTTP 服务(OpenAI v1 兼容)+ 单一编程门面 LoadedInferenceEngine + OPD-teacher 接口
infer-cuda / infer-metal两个后端执行器:实现 seam 的两个 trait 即可接入新后端
infer-core · Engine<E,K>设备中立:scheduler、RadixCache 前缀缓存、chunked prefill、采样、KV 分层编排
infer-seam两个 host-only trait:BackendExecutor、KvPool(+ KvBatchDescriptor)— 接缝只过主机数据
infer-plan后端无关的前向 IR(ForwardPlan)

共享叶子:infer-topo(TP/EP 拓扑)、infer-moeinfer-util。关键不变量:engine↔executor 接缝只传主机数据(ForwardPlan 进、StepOutput 出,KV 以主机索引寻址),设备张量永远留在接缝之下。

两个后端,一个引擎

CUDA(Linux / NVIDIA)

连续批处理执行器,cudarc + 厂商官方内核(FlashMLA / DeepGEMM / DeepEP)+ TileLang AOT + 原生 CUDA C + NCCL。DSv4-Flash 跑 8×H20,TP=8 / EP=8。

Metal(Apple Silicon)

mlx-sys 的 C++ 桥(cmake + cc),连续批处理 + 变长打包 decode(mlx-lm BatchKVCache 模式)。canonical 模型 Qwen3.6-35B-A3B-4bit。

同一个 infer_core::Engine<E, K> 驱动两者;加后端 = 实现 seam 的两个 trait,不动 scheduler / cache / server。

前门与训练

模型:Qwen3.5/3.6 家族、DSv4-Flash。真值来源以 docs/codebase-map.mddocs/architecture.md 为准。

ARLE — 设备中立 Rust 推理运行时 · 本页由架构文档综合生成