Skip to content

Inference Network 去中心化推理网络

版本: v3.1.0 | 状态: ✅ 生产就绪 | 6 IPC Handlers | 2 数据库表 | 分布式 AI 计算

ChainlessChain Inference Network 是一个去中心化的推理网络,实现分布式 AI 计算的节点注册、任务调度和隐私保护。它支持 GPU/CPU 节点基准测试、延迟/成本/算力感知调度、TEE 隐私模式以及联邦学习,为多设备协同推理提供基础设施。

核心特性

  • 🖥️ 节点注册与基准: GPU/CPU 节点注册,自动硬件基准测试和能力评估
  • 智能任务调度: 延迟/成本/算力三维感知调度,最优节点匹配
  • 🔒 TEE 隐私模式: 可信执行环境保护推理数据,防止模型和数据泄露
  • 🧠 联邦学习支持: 分布式模型训练,梯度聚合与模型更新
  • 📊 网络统计: 节点状态监控、负载均衡、全网算力统计
  • 🔄 任务生命周期: 提交 → 调度 → 执行 → 完成,全程状态追踪

注册计算节点

javascript
const result = await window.electron.ipcRenderer.invoke(
  "inference:register-node",
  {
    nodeId: "node-gpu-01",
    capabilities: {
      gpu: "NVIDIA RTX 4090",
      vram: 24576, // MB
      cpu: "AMD Ryzen 9",
      ram: 65536, // MB
    },
    supportedModels: ["llama-3", "qwen-2", "mistral"],
    maxConcurrent: 3,
    pricePerToken: 0.001, // CCT/token
  },
);

提交推理任务

javascript
const result = await window.electron.ipcRenderer.invoke(
  "inference:submit-task",
  {
    model: "llama-3-70b",
    input: { prompt: "分析这段代码的性能瓶颈..." },
    requirements: {
      maxLatencyMs: 5000,
      privacyMode: "tee", // none | tee | federated
      maxCostCCT: 10,
    },
  },
);
// result.task = { id, status: "scheduled", assignedNode: "node-gpu-01", ... }

启动联邦学习

javascript
const result = await window.electron.ipcRenderer.invoke(
  "inference:start-federated-round",
  {
    modelId: "custom-classifier",
    participantNodes: ["node-01", "node-02", "node-03"],
    aggregationStrategy: "fedavg", // fedavg | fedprox | scaffold
    rounds: 10,
  },
);

系统架构

┌─────────────────────────────────────────────────┐
│              Inference Network                    │
│                                                   │
│  ┌──────────────┐    ┌─────────────────────────┐ │
│  │ Node Registry │    │   Inference Scheduler    │ │
│  │              │    │                          │ │
│  │ GPU/CPU 注册  │    │ 延迟/成本/算力调度       │ │
│  │ 基准测试      │    │ TEE 隐私模式             │ │
│  │ 能力评估      │    │ 联邦学习编排             │ │
│  └──────┬───────┘    └──────────┬───────────────┘ │
│         │                       │                  │
│  ┌──────┴───────────────────────┴───────────────┐ │
│  │              IPC Layer (6 handlers)            │ │
│  └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘

IPC 接口完整列表

Inference 操作(6 个)

通道功能说明
inference:register-node注册计算节点GPU/CPU 信息、支持模型、定价
inference:list-nodes列出网络节点含状态、负载、能力信息
inference:submit-task提交推理任务智能调度到最优节点
inference:get-task-status查询任务状态进度、结果、耗时
inference:start-federated-round启动联邦学习多节点协同训练
inference:get-network-stats获取网络统计节点数、总算力、任务统计

数据库 Schema

2 张核心表:

表名用途关键字段
inference_nodes节点注册表id, capabilities (JSON), status, supported_models, price
inference_tasks任务追踪id, model, status, assigned_node, input, output, duration

inference_nodes 表

sql
CREATE TABLE IF NOT EXISTS inference_nodes (
  id TEXT PRIMARY KEY,
  node_id TEXT NOT NULL,
  capabilities TEXT,              -- JSON: GPU/CPU/RAM 信息
  supported_models TEXT,          -- JSON: 支持的模型列表
  status TEXT DEFAULT 'offline',  -- online | offline | busy
  max_concurrent INTEGER DEFAULT 1,
  current_load INTEGER DEFAULT 0,
  price_per_token REAL DEFAULT 0.001,
  benchmark_score REAL DEFAULT 0.0,
  last_heartbeat INTEGER,
  created_at INTEGER DEFAULT (strftime('%s','now') * 1000)
);
CREATE INDEX IF NOT EXISTS idx_inference_nodes_status ON inference_nodes(status);

inference_tasks 表

sql
CREATE TABLE IF NOT EXISTS inference_tasks (
  id TEXT PRIMARY KEY,
  model TEXT NOT NULL,
  input TEXT,                      -- JSON
  output TEXT,                     -- JSON
  assigned_node TEXT,
  status TEXT DEFAULT 'pending',   -- pending | scheduled | running | completed | failed
  privacy_mode TEXT DEFAULT 'none',
  duration_ms INTEGER,
  tokens_used INTEGER,
  cost_cct REAL,
  created_at INTEGER DEFAULT (strftime('%s','now') * 1000)
);
CREATE INDEX IF NOT EXISTS idx_inference_tasks_status ON inference_tasks(status);

前端集成

InferenceNetworkPage 页面

功能模块:

  • 统计卡片: 在线节点数 / 运行中任务 / 总算力
  • 节点列表: 展示节点状态、GPU 信息、负载、价格
  • 任务提交表单: 选择模型、输入 prompt、设置隐私模式
  • 联邦学习面板: 启动联邦训练轮次

Pinia Store (inferenceNetwork.ts)

typescript
const useInferenceNetworkStore = defineStore("inferenceNetwork", {
  state: () => ({
    nodes: [],
    tasks: [],
    networkStats: null,
    loading: false,
    error: null,
  }),
  actions: {
    fetchNodes, // → inference:list-nodes
    registerNode, // → inference:register-node
    submitTask, // → inference:submit-task
    fetchTaskStatus, // → inference:get-task-status
    startFederatedRound, // → inference:start-federated-round
    fetchNetworkStats, // → inference:get-network-stats
  },
});

关键文件

文件职责行数
src/main/ai-engine/inference/inference-node-registry.js节点注册与基准测试~240
src/main/ai-engine/inference/inference-scheduler.js智能任务调度器~280
src/main/ai-engine/inference/inference-ipc.jsIPC 处理器(6 个)~150
src/renderer/stores/inferenceNetwork.tsPinia 状态管理~120
src/renderer/pages/ai/InferenceNetworkPage.vue推理网络页面~100

测试覆盖率

✅ inference-node-registry.test.js    - 节点注册/基准/心跳测试
✅ inference-scheduler.test.js        - 调度算法/TEE/联邦学习测试
✅ stores/inferenceNetwork.test.ts    - Store 状态管理测试
✅ e2e/ai/inference-network.e2e.test.ts - 端到端用户流程测试

相关文档

基于 MIT 许可发布