docs: refine Unified Tensor Protocol with Adapter+Facade patterns and Zero-Copy advantages
- Added precise design pattern description (Adapter Pattern for codec, Facade Pattern for TensorBus interface) - Dynamic grid-joining: register new subnets at runtime via TensorBus.register() - Hot-plug: add/remove subnets without interrupting system - Zero-Copy via kernel bypass on HarmonyOS 6.1 - Hardware affinity: NPU/GPU native tensor operations - High data fidelity: lossless transfer of high-dim feature maps & attention weights - Runtime training: support creating subnets on-demand while system runs
This commit is contained in:
56
README.md
56
README.md
@ -77,9 +77,45 @@ graph TB
|
||||
LTC -.-> Cold
|
||||
```
|
||||
|
||||
## 通信机制:自定义张量协议
|
||||
## 通信机制:统一张量协议 (Unified Tensor Protocol)
|
||||
|
||||
所有子网间不传递自然语言,而是通过**标准张量协议(Standard Tensor Protocol)**通信:
|
||||
所有子网间不传递自然语言,而是通过**统一张量协议**通信。该协议基于**适配器模式(Adapter Pattern)**和**门面模式(Facade Pattern)**设计,旨在解决模块异构性与通信效率问题。
|
||||
|
||||
### 核心设计模式
|
||||
|
||||
#### 适配器模式(编解码层)
|
||||
|
||||
每个子网通过一个**编解码层(Codec Layer)**与外部通信,负责将子网内部的私有数据格式(如 PyTorch Tensor、MindSpore Tensor 或自定义结构)转换为统一的标准张量格式:
|
||||
|
||||
```
|
||||
┌─────────────┐ ┌───────────────────┐ ┌─────────────┐
|
||||
│ 子网内部 │ ──→ │ 编码器 (Encoder) │ ──→ │ 标准张量 │
|
||||
│ 私有格式 │ │ 适配器: 内部→标准 │ │ (统一格式) │
|
||||
└─────────────┘ └───────────────────┘ └─────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐ ┌───────────────────┐ ┌─────────────┐
|
||||
│ 子网内部 │ ←── │ 解码器 (Decoder) │ ←── │ 标准张量 │
|
||||
│ 私有格式 │ │ 适配器: 标准→内部 │ │ (统一格式) │
|
||||
└─────────────┘ └───────────────────┘ └─────────────┘
|
||||
```
|
||||
|
||||
**作用**:屏蔽不同子网/框架的实现差异。新的子网只要实现对应的编解码器(Adapter),就能接入系统,无需修改调度 Core 或其他已有模块的代码。
|
||||
|
||||
#### 门面模式(统一张量接口)
|
||||
|
||||
协议对外暴露统一的、简单的接口,隐藏底层复杂的通信过程:
|
||||
|
||||
```python
|
||||
# 统一接口门面 (Facade)
|
||||
interface TensorBus:
|
||||
def send(tensor: StandardTensor, target: str) -> None
|
||||
def recv(source: str) -> StandardTensor
|
||||
```
|
||||
|
||||
调度 Core 和各子网无需关心数据是通过鸿蒙软总线、NPU 共享显存还是 TCP/IP 传输,只需与统一的张量门面交互。
|
||||
|
||||
### 标准张量格式
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────┐
|
||||
@ -92,7 +128,21 @@ graph TB
|
||||
└─────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
各模型通过**编码层(Encoder)**将内部张量转换为标准张量,通过**解码层(Decoder)**将标准张量还原为内部张量。
|
||||
### 核心优势
|
||||
|
||||
#### 动态并网与即插即用
|
||||
- 新的子网只需实现编解码器即可向 Core 注册,实现**运行时热插拔**
|
||||
- 各子网独立迭代算法,接口不变即不影响系统稳定性
|
||||
- 支持运行时动态创建/销毁子网
|
||||
|
||||
#### 零拷贝(Zero-Copy)
|
||||
在支持分布式能力的系统上,张量可通过**内核旁路技术**直接在设备间传递内存地址,避免将数据从 NPU/GPU 搬回 CPU 再打包的昂贵序列化开销。
|
||||
|
||||
#### 硬件亲和性
|
||||
张量是 NPU/GPU 的**原生计算单元**,协议允许数据在设备内存池中直接流转,无需格式转换,大幅降低延迟和 CPU 占用。
|
||||
|
||||
#### 高数据保真度
|
||||
相比于文本或 JSON 协议,张量能**无损传递高维特征图、注意力权重矩阵**等复杂数值结构,确保传递的是完整的
|
||||
|
||||
## 调度方式:启发式调度
|
||||
|
||||
|
||||
@ -49,9 +49,38 @@ NextAgent 采用**认知解耦架构(Cognitive Decoupled Architecture)**,
|
||||
└──────────┘ └─────────┘ └─────────┘ └─────────┘ └────────────────┘
|
||||
```
|
||||
|
||||
## 自定义张量协议(Standard Tensor Protocol)
|
||||
## 统一张量协议(Unified Tensor Protocol)
|
||||
|
||||
这是 NextAgent 的核心创新——子网间通过标准化的张量格式通信,不传递自然语言。
|
||||
这是 NextAgent 的核心创新——子网间通过标准化的张量格式通信,不传递自然语言。该协议基于**适配器模式(Adapter Pattern)**和**门面模式(Facade Pattern)**设计,旨在解决多子网架构中的模块异构性与通信效率问题。
|
||||
|
||||
### 核心设计模式
|
||||
|
||||
#### 适配器模式(编解码层)
|
||||
|
||||
每个子网通过一个编解码层(Codec Layer)与外部通信。该层充当**适配器**,负责将子网内部的私有数据格式(如 PyTorch Tensor、MindSpore Tensor 或自定义结构)转换为统一的标准张量格式。
|
||||
|
||||
**作用**:屏蔽不同子网/框架的实现差异。新的子网只要实现对应的编解码器(Adapter),就能接入系统,无需修改调度 Core 或其他已有模块的代码。
|
||||
|
||||
#### 门面模式(统一张量接口)
|
||||
|
||||
协议对外暴露统一的、简单的接口,隐藏底层复杂的通信过程:
|
||||
|
||||
```python
|
||||
class TensorBus:
|
||||
"""统一张量总线 - 门面模式"""
|
||||
def send(tensor: StandardTensor, target: str) -> None:
|
||||
# 隐藏了底层实现(共享内存/鸿蒙软总线/TCP/IP)
|
||||
pass
|
||||
|
||||
def recv(source: str) -> StandardTensor:
|
||||
pass
|
||||
|
||||
def register(subnet_id: str, codec: CodecAdapter) -> None:
|
||||
"""动态注册子网 - 运行时热插拔"""
|
||||
pass
|
||||
```
|
||||
|
||||
调度 Core 和各子网只需与统一的张量门面交互,无需关心底层通信细节。
|
||||
|
||||
### 标准张量格式
|
||||
|
||||
@ -94,21 +123,38 @@ NextAgent 采用**认知解耦架构(Cognitive Decoupled Architecture)**,
|
||||
|
||||
### 编/解码机制
|
||||
|
||||
每个子网都配备编码层和解码层:
|
||||
每个子网都配备适配器式的编解码层:
|
||||
|
||||
```
|
||||
┌─────────────┐ ┌───────────────────┐ ┌─────────────┐
|
||||
│ 子网内部 │ ──→ │ 编码层 (Encoder) │ ──→ │ 标准张量 │
|
||||
│ 内部张量 │ │ 内部格式→标准格式 │ │ (通信格式) │
|
||||
│ 子网内部 │ ──→ │ 编码适配器 │ ──→ │ 标准张量 │
|
||||
│ 内部格式 │ │ Adapter: 内部→标准 │ │ (统一格式) │
|
||||
└─────────────┘ └───────────────────┘ └─────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐ ┌───────────────────┐ ┌─────────────┐
|
||||
│ 子网内部 │ ←── │ 解码层 (Decoder) │ ←── │ 标准张量 │
|
||||
│ 内部张量 │ │ 标准格式→内部格式 │ │ (通信格式) │
|
||||
│ 子网内部 │ ←── │ 解码适配器 │ ←── │ 标准张量 │
|
||||
│ 内部格式 │ │ Adapter: 标准→内部 │ │ (统一格式) │
|
||||
└─────────────┘ └───────────────────┘ └─────────────┘
|
||||
```
|
||||
|
||||
### 核心优势
|
||||
|
||||
#### 动态并网与即插即用
|
||||
- 新的子网只需实现编解码适配器,通过 `TensorBus.register()` 向 Core 注册即可接入
|
||||
- 支持**运行时热插拔**:不中断系统运行即可添加/移除子网
|
||||
- 各子网独立迭代算法,只要编解码接口不变,不影响系统稳定性
|
||||
- 支持运行时根据需求训练新的子网并动态接入
|
||||
|
||||
#### 零拷贝(Zero-Copy)
|
||||
在 HarmonyOS 6.1 等具备分布式能力的系统上,张量可通过**内核旁路技术**直接在设备间传递内存地址,避免将数据从 NPU/GPU 搬回 CPU 再打包的昂贵序列化开销。
|
||||
|
||||
#### 硬件亲和性
|
||||
张量是 NPU/GPU 的**原生计算单元**。协议允许数据在设备内存池中直接流转,无需经过格式转换,大幅降低延迟和 CPU 占用。
|
||||
|
||||
#### 高数据保真度
|
||||
相比于文本或 JSON 协议,张量能**无损传递高维特征图、注意力权重矩阵**等复杂数值结构,确保传递的是完整的
|
||||
|
||||
## 调度 Core(前额叶皮层)
|
||||
|
||||
调度 Core 是整个架构的**总指挥**,类比人脑的前额叶皮层。
|
||||
|
||||
Reference in New Issue
Block a user